DE60103535T2 - Graphisches system - Google Patents

Graphisches system Download PDF

Info

Publication number
DE60103535T2
DE60103535T2 DE60103535T DE60103535T DE60103535T2 DE 60103535 T2 DE60103535 T2 DE 60103535T2 DE 60103535 T DE60103535 T DE 60103535T DE 60103535 T DE60103535 T DE 60103535T DE 60103535 T2 DE60103535 T2 DE 60103535T2
Authority
DE
Germany
Prior art keywords
pixel
sample
values
virtual
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60103535T
Other languages
English (en)
Other versions
DE60103535D1 (de
Inventor
F. Michael DEERING
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE60103535D1 publication Critical patent/DE60103535D1/de
Publication of DE60103535T2 publication Critical patent/DE60103535T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/14Transformations for image registration, e.g. adjusting or mapping for alignment of images
    • G06T3/153Transformations for image registration, e.g. adjusting or mapping for alignment of images using elastic snapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/94Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3141Constructional details thereof
    • H04N9/3147Multi-projection systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3179Video signal processing therefor
    • H04N9/3185Geometric adjustment, e.g. keystone or convergence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Geometry (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Transforming Electric Information Into Light Information (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Description

  • 1. Technisches Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein das Gebiet der Computergrafik und insbesondere Hochleistungsgrafiksysteme, die Bilder für die Anzeige auf einer oder mehreren Anzeigeeinrichtungen, einschließlich Projektionseinrichtungen, erzeugen.
  • 2. Beschreibung des relevanten Standes der Technik
  • Mehrere Projektionsgeräte können verwendet werden, um ein einzelnes ganzheitliches Bild anzuzeigen, wie in 1 gezeigt ist. Jedes der Projektionsgeräte kann einen Teil des ganzen Bildes anzeigen. Beispielsweise können die Projektionsgeräte P1 und P2 auf einen gemeinsamen Anzeigeschirm SCR gerichtet sein und können den linken bzw. rechten Teil eines ganzheitlichen Bildes erzeugen. Die Projektionsgeräte können irgendeine einer Vielzahl von Technologien verwenden. Beispielsweise können die Projektionsgeräte auf Kathodenstrahlröhren (CRTs), Flüssigkristallanzeigen (LCDs), digitale Mikrospiegelanzeigen oder Flüssigkristall-auf-Silicium-Anzeigen (LCOs) usw. basieren.
  • Ein Computersystem CS kann verwendet werden, um die mehreren Projektionsgeräte P1 und P2 anzutreiben. Das Computersystem CS kann analoge oder digitale Videosignale bereitstellen, um die Projektionsgeräte P1 und P2 zu betreiben. Das Computersystem CS kann ein Grafiksystem beinhalten für das Darstellen und das Anzeigen von 2D-Grafik und/oder 3D-Grafik. Das Grafiksystem kann die Videosignale liefern, die die Projektionsgeräte P1 und P2 betreiben. Zusätzlich kann das Computersystem CS ein Monitorgerät MD, eine Systemeinheit SU und Eingabegeräte beinhalten, wie z.B. eine Tastatur KB und eine Maus MS. Das Monitorgerät MD und die Projektionsgeräte P1 und P2 können allgemein als Anzeigegeräte bezeichnet werden.
  • Es ist häufig notwendig, die Bilder, die von den zwei Projektionsgeräten P1 und P2 erzeugt werden, zu überlappen, wie in 2A gezeigt ist. Eine Vorderansicht der beiden sich überlappenden Bilder, wie sie auf dem Anzeigeschirm SCR erscheinen können, ist in 2B gezeigt. Das linke Bild, das durch das Rechteck ABCD dargestellt wird, überlappt das rechte Bild, das durch das Rechteck EFGH dargestellt wird.
  • 2 stellt ein fundamentales Problem dar, das mit der Überlappung von zwei projizierten Bildern verknüpft ist. Die Funktion I1 stellt die Verteilung der Lichtintensität über dem Schirm SCR dar aufgrund des Projektionsgerätes P1. In gleicher Weise stellt die Funktion I2 die Verteilung der Lichtintensität über dem Schirm SCR aufgrund des Projektionsgerätes P2 dar. In dem Überlappbereich (d.h. im Rechteck EBCH) addieren sich die Intensitätsfunktionen. Somit kann die Intensität in dem Überlappbereich größer sein als in den sich nicht überlappenden Bereichen des Schirms. Die erhöhte Helligkeit des Überlappbereichs kann einen Betrachter des ganzheitlichen Bildes AFGD stören.
  • Das Überlapp-Helligkeitsproblem besteht, wenn irgendeine Anzahl von projizierten Bildern sich überlappen. Beispielsweise stellt 3 die Überlappung von vier projizierten Bildern dar, die von vier Projektionsgeräten in einer "zwei-mal-zwei"-Konfiguration erzeugt werden. Eines der projizierten Bilder wird durch das Rechteck JLTR dargestellt. Die anderen drei projizierten Bilder haben dieselbe Größe wie das Rechteck JLTR und sind in den drei verbleibenden Ecken M, V und Y versetzt. Exakt zwei der projizierten Bilder überlappen sich in den Bereichen KLPO, NOSR, STXW und PQUT und somit können diese Regionen eine Lichtintensität zeigen, die doppelt so groß ist wie die der sich nicht überlappenden Bereiche JKON, LMQP, RSWV und TUYX. Alle vier projizierten Bilder überlappen sich in dem Zentralbereich OPST und somit kann der Zentralbereich eine Lichtintensität zeigen, die viermal größer ist als die Intensität in den sich nicht überlappenden Bereichen.
  • Es gibt gegenwärtig analoge Systeme, die "Videoboxen" genannt werden, die in gewissem Maße das Überlapp-Helligkeitsproblem angehen. Eine Videobox kann zwischen das Computersystem CS und die Projektionsgeräte P1 und P2 geschaltet sein, wie in 1 gezeigt ist, und kann die Intensität der projizierten Bilder in dem Überlappbereich reduzieren. Die Gesamtintensität in dem Überlappbereich kann somit nach der Installation einer Videobox eher gleich der Intensität der sich nicht überlappenden Bereiche sein. Obgleich Videoboxen ein gewisses Korrekturmaß für das Überlapp-Helligkeitsproblem bereitstellen, können sie teuer und nicht leicht zu konfigurieren sein. Weiterhin kann ihre Funktionalität begrenzt sein. Es besteht somit eine Notwendigkeit nach einem System und einem Verfahren, das ein verbessertes Mischen der Lichtintensität in den Überlappbereichen bereitstellt. Allgemeiner gesagt besteht die Notwendigkeit nach einem System und einem Verfahren, das die Intensitätsverteilung eines zusammengesetzten Bildes, das von mehreren Projektionsgeräten erzeugt wird, gleichförmig machen kann.
  • In 2C sind die Intensitätsverteilungen I1 und I2 mit rechteckigen Profilen dargestellt. In der Realität kann die Intensitätsverteilung eines projizierten Bildes aus einer Anzahl von unterschiedlichen Gründen stark ungleichmäßig sein. Als erstes strahlt ein typisches Projektionsgerät PD Licht mit einem nicht-gleichförmigen Strahlungsintensitätsmuster aus, wie in 4A gezeigt ist. Das Strahlungsintensitätsmuster kann ein Maximum in Richtung der Achse haben, d.h. die Richtung des zentralen Projektionsstrahls CPR, und kann als eine Funktion eines Strahlungswinkels RA, gemessen in Bezug auf den zentralen Projektionsstrahl CPR, abfallen.
  • Somit kann, wie in 4B gezeigt ist, eine realistischere Schirmintensitätsverteilung für ein projiziertes Bild ein Maximum an dem Punkt CM haben, wo der zentrale Projektionsstrahl den Schirm SCR schneidet, und kann als eine Funktion des horizontalen und vertikalen Schirmabstandes von dem zentralen Maximum CM abfallen. Verschiedene Höhenkurven der Schirmintensitätsverteilung sind auf dem projizierten Bild überlagert. 4C stellt die Schirmintensitätsverteilung ID entlang eines horizontalen Schnittes NS des Schirms durch das zentrale Maximum CM dar.
  • Wenn das Schirmmaterial stark streuend ist, kann die Schirmintensitätsverteilung ID relativ unabhängig von dem Blickwinkel und/oder der Blickposition sein. Streuung bedeutet, daß ein allge meiner Strahl R, der auf dem Schirm auftrifft, mit einer kugelförmigen Streuverteilung SD gestreut wird. Wenn das Schirmmaterial jedoch eine große Verstärkung hat, d.h. stärker reflektiert (oder transmittiert in dem Rückprojektionsfall), kann die Schirmintensitätsverteilung stark von der Position des Betrachters in Bezug auf das Projektor-Schirm-System abhängen.
  • Beispielsweise zeigt 5A die Schirmintensitätsverteilung IV1 und IV2, wie sie von den Betrachtem V1 bzw. V2 aufgenommen wird, die sich auf gegenüberliegenden Seiten des Projektionsgerätes PD in einem Front-Projektionsszenario befinden. Die Schirmintensitätsverteilung IV1 für den ersten Betrachter V1 kann einen Maximalwert an dem Punkt P1 erreichen, wo der Quellstrahl S1, der von dem Projektionsgerät ausgeht, einen Reflexionsstrahl R1 hat, den der Betrachter V1 abfängt. Der Betrachter V1 empfängt somit einen "Hot Spot" bzw. Lichtfleck auf dem Schirm am Punkt P1. In gleicher Weise kann die Schirmintensitätsverteilung IV2 für den zweiten Betrachter V2 einen Maximalwert an dem Punkt P2 erreichen, wo der Quellstrahl S2, der von dem Projektionsgerät ausgeht, einen Reflexionsstrahl R2 hat, der von dem Betrachter V2 aufgefangen wird. Somit empfängt der Betrachter V2 einen Hot Spot an dem Punkt P2 auf dem Schirm SCR.
  • 5B stellt die Schirmintensitätsverteilung IV1 und IV2 dar, die von den Betrachtern V1 bzw. V2 empfangen wird, die sich an unterschiedlichen Positionen in Bezug auf einen hochverstärkenden Schirm in einem Rückprojektionsszenario befinden. Die Schirmintensitätsverteilung IV1 für den ersten Betrachter V1 kann einen Maximalwert an dem Punkt Q1 erreichen, wo der direkte Strahl D1 von dem Projektionsgerät zu dem Betrachter V1 auf den Schirm trifft. In gleicher Weise kann die Schirmintensitätsverteilung IV2 für den zweiten Betrachter V2 einen Maximalwert an dem Punkt Q2 erreichen, wo der direkte Strahl D2 von dem Projektionsgerät zu dem Betrachter V2 den Schirm trifft.
  • Mehrere Projektorgeräte können verwendet werden, um ein integriertes Bild auf dem Projektionsschirm SCR zu erzeugen. Somit kann ein Betrachter zwei oder mehrere Lichtflecke auf dem Schirm beobachten, d.h. die Intensitätsverteilung kann zwei oder mehrere lokale Maxima haben. Somit besteht eine Notwendigkeit nach einem System und einem Verfahren, das die Lichtflecke, die von dem Beobachter auf dem Schirm SCR wahrgenommen werden, korrigiert.
  • Projektionsgeräte versuchen im allgemeinen, ein rechteckiges Array von physikalischen Pixeln auf dem Projektionsschirm SCR zu projizieren. Viele Verzerrungsmechanismen tun sich jedoch zusammen, um dieses gewünschte Ziel zu vereiteln. Beispielsweise kann die physikalische Pixelanordnung einen Trapezfehler KST, eine Kissenverzerrung (PMC) oder eine Tonnenverzeichnung BRL zeigen, wie durch 6A angedeutet. Grundlegende Verzerrungsmodi können sich kombinieren, um komplexere Verzerrungen zu bilden, wie durch die kombinierte Verzerrung CDSD angedeutet wird.
  • Eine Trapezverzerrung wird hier synonym als Trapezfehler bezeichnet. So wie der Begriff "Trapezverzerrung" hier verwendet wird, ist er dafür vorgesehen, jede Verzerrung zu umfassen, bei der das nominell rechteckige Pixelarray in ein Trapez verformt wird. Die parallelen Kanten des Trapezes können entweder die obere und die untere Kante oder die rechte und die linke Kante sein. Die Begriffe "Kissenverzerrung" und "Tonnenverzeichnung" sind Begriffe, die aus Gebieten wie z.B. der Optik und der Videoprojektion bekannt sind. Somit kann die exakte Definition dieser Begriffe von dem Kontext abhängen, in dem sie verwendet werden. So wie er hier verwendet wird, ist der Begriff "Kissenverzerrung" dafür vorgesehen, alle Verzerrungen zu umfassen, bei denen die rechte und die linke Kante und/oder die obere und die untere Kante des nominell rechteckigen Pixelarrays eine nach innen gerichtete Krümmung erfahren, wie auf dem Schirm SCR dargestellt. Beispielsweise wird eine CRT-Anzeigeverzerrung, wo die rechte und die linke Seite nach innen eingebogen sind, während die horizontalen Linien relativ gerade bleiben, hier als Kissenverzerrung bezeichnet. Als ein anderes Beispiel wird eine linseninduzierte Verzerrung, wo alle vier Kanten nach innen gebogen sind, hier ebenso als Kissenverzerrung bezeichnet. Der Begriff "Tonnenverzeichnung", so wie er hier verwendet wird, ist dafür vorgesehen, jede Verzerrung zu umfassen, bei der die rechte und die linke Kante und/oder die obere und untere Kante der nominell rechteckigen Pixelanordnung eine nach außen gerichtete Krümmung erfahren. Beispielsweise werden sowohl eine CRT-Verzerrung, wo die rechte und linke Seite nach außen gekrümmt sind als auch eine linseninduzierte Verzerrung, wo alle vier Seiten nach außen gekrümmt sind, hier als Tonnenverzeichnungen bezeichnet.
  • Verzerrungen der angezeigten Pixelanordnung können von einer Vielzahl von physikalischen Mechanismen herrühren und haben eine starke Größenvariation. Beispielsweise kann, in einem Szenario, wo ein Projektionsgerät auf einen Schirm projiziert, der nicht auf die Projektionsachse zentriert ist oder rechtwinklig zu dieser ist, die resultierende geometrische Verzerrung einen signifikanten Bruchteil der angezeigten Pixelanordnung ausmachen. Andere Verzerrungen der angezeigten Pixelanordnung können subtil, d.h. klein in der Größe sein. Es besteht somit die Notwendigkeit nach einem Grafiksystem und einer Methode, die willkürliche physikalische Pixelverzerrung kompensieren können, so daß dargestellte Objekte auf dem Schirm SCR nicht verzerrt erscheinen würden.
  • Wie oben angemerkt, können mehrere Projektionseinrichtungen verwendet werden, um ein ganzheitliches Bild oder eine ganzheitliche Sequenz von Videobildern auf dem Schirm SCR wie in 1 dargestellt zu erzeugen. Im allgemeinen überlappen sich die von den Projektionseinrichtungen erzeugten physikalische Pixelarrays, wie durch das Beispiel von 6B angedeutet. Das linke physikalische Array LPA (durch kleine Kreise gekennzeichnet) wird durch eine erste Projektionseinrichtung erzeugt, und das rechte physikalische Array RPA (durch kleine Dreiecke gekennzeichnet) wird von einer zweiten Projektionseinrichtung erzeugt. Jedes physikalische Array kann in einer beliebigen Weise verzerrt werden. Somit können die Bilder, die in den linken und rechten physikalischen Arrays angezeigt werden, verzerrt erscheinen. Zum Beispiel ist das linke physikalische Array LPA mit einer Tonnenverzerrung dargestellt, und das rechte physikalische Array mit einer Trapez(d.h. trapezartigen) Verzerrung dargestellt.
  • Auch wenn die Verzerrung jedes physikalischen Array klein ist, kann es relative Verzerrungen zwischen den linken und rechten physikalischen Arrays geben. Zum Beispiel kann es sein, daß die linken und rechten physikalischen Arrays nicht dieselbe vertikale und/oder horizontale Größe haben, oder ein physikalisches Array kann in Bezug auf das andere versetzt sein. Als ein weiteres Beispiel können die Verzerrungen der linken und rechten physikalischen Arrays von Unzulänglich keiten bei der Herstellung der lichtverarbeitenden Chips jeder Projektionseinrichtung herrühren. Somit können Bilder (oder Teile von Bildern), die in dem überlappenden Bereich erscheinen, verschwommen (d. h. unscharf) erscheinen. Daher gibt es einen Bedarf für ein graphisches System, das beliebige physikalische Verzerrungen (einschließlich relativer Verzerrungen) kompensieren kann, die Mehrfachprojektionskonfigurationen eigen sind, so daß das von den mehreren Projektionseinrichtungen erzeugte ganzheitliche Bild unverzerrt und konsistent erscheinen kann, speziell in Überlappungsbereichen. Mit anderen Worten besteht ein Bedarf für ein System und ein Verfahren, die die unabhängigen physikalischen Verzerrungen korrigieren können, die in Mehrfachprojektorszenarien auftreten.
  • Der von dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA überdeckte Bereich auf dem Schirm SCR ist der effektive Betrachtungsbereich. Um den Betrachtungsbereich zu maximieren, wäre es wünschenswert, die Größe der Überlappung zwischen dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA zu minimieren. Wenn jedoch der Überlappungsbereich minimiert wird, wird es schwierig, Edge-Blending bzw. Kantenverschmelzung mit der Videobox-Technologie nach dem Stand der Technik durchzuführen. Daher kann eine ungleichmäßige Helligkeitslinie entlang der Schnittstelle der physikalischen Arrays erscheinen. Die Helligkeit ist auf eine höhere Dichte von physikalischen Pixeln zurückzuführen. Daher besteht ein Bedarf für ein System und ein Verfahren, die die Grenzen der physikalischen Bilder ordentlich bzw. sauber anpassen, die von mehreren Projektionseinrichtungen erzeugt werden, die mit einer minimalen Überlappung eingerichtet sind und ohne eine Linie von Helligkeitsverzerrung entlang den Schnittstellen zu erzeugen.
  • Moderne Projektionseinrichtungen erzeugen Farbbilder durch eine Vielzahl von unterschiedlichen Mechanismen, die zu unterschiedlichen Modi von Farbverzerrung führen. So wie er hier verwendet wird, ist der Begriff „Farbverzerrung" dafür gedacht, jede Verzerrung zu umfassen, die zu einer räumlichen Trennung der angezeigten Farbkomponenten der physikalischen Pixel auf dem Schirm führt. Das Folgende ist eine Diskussion einiger ökonomisch praktikabler Projektionstechnologien und ihrer Farbverzerrungsmodi.
  • Gemäß einem Modell kann eine Projektionseinrichtung drei getrennte Farbstrahlen aufweisen, die durch drei entsprechende Linsen (oder Linsensysteme) auf den Schirm SCR projiziert werden. Zum Beispiel kann ein CRT-basierter Projektor separate rote, grüne und blaue Anzeigen haben, d. h. drei separate Strahlsysteme, die auf entsprechende Phosphoroberflächen zielen. Jede Anzeige erzeugt ein Quellbild der entsprechenden Farbe, das durch eine entsprechende Linse auf den Schirm SCR projiziert wird. Die Projektion jedes Quellbildes auf den Schirm SCR wird hier als ein physikalisches Bild bezeichnet. Zum Beispiel wird das rote Quellbild von der roten Anzeige auf ein rotes physikalisches Bild auf dem Schirm projiziert. Idealerweise würden sich die roten, grünen und blauen physikalischen Bilder exakt gegenseitig überlagern und dadurch ein einzelnes rechteckiges Array von Pixelpositionen erzeugen. Entsprechende Pixel in jedem der drei physikalischen Bilder würden denselben Bereich auf dem Schirm SCR überdecken. Reale Projektionseinrichtungen weichen jedoch wegen der den Anzeigen, den Linsen, der Ausrichtung der Anzeigen bezogen auf die Linsen, der Ausrichtung der Linsen bezogen auf den Schirm, etc. eigenen Verzerrungen von diesem idealen Verhalten ab. Dadurch werden die roten, grünen und blauen physikalischen Bilder auf dem SCR unabhängig verzerrt, und entsprechende Pixel der drei physikalischen Bilder überlappen sich nicht auf dem Schirm SCR.
  • Gemäß einem zweiten Modell kann eine Projektionseinrichtung eine einzelne, eingebettete Anzeige (z. B. eine integrierte LCD-Anzeige) und ein optisches Subsystem beinhalten. Die eingebettete Anzeige erzeugt ein Quellbild, das ein Array von Quellpixeln aufweist. Das optische Subsystem projiziert das Quellbild auf den Schirm SCR. Jedes Quellpixel kann eine Kombination von rotem, blauem und grünem Lichtspektrum abstrahlen. Weil optische Materialien (wie Linsen) in dem optischen Subsystem Lichtstrahlen in einer Wellenlängen-abhängigen Weise beugen, kann ein einzelnes Quellpixel in separate rote, grüne und blaue physikalische Pixel auf dem Schirm SCR fragmentiert werden. Dieser Effekt ist als chromatische Abweichung bekannt. Chromatische Abweichung ist für ein Verschwimmen von Bildern auf dem Schirm SCR verantwortlich.
  • Gemäß einem dritten Modell kann ein Hochleistungsprojektor dichromatische Optik wie folgt benutzen. Ein einzelner Quellstrahl von weißem Licht kann in drei Teilstrahlen aufgeteilt werden. Die drei Teilstrahlen werden unabhängig voneinander moduliert mit Farbinformation, was zu einem roten Teilstrahl, einem grünen Teilstrahl und einem blauen Teilstrahl führt. Zum Beispiel können die drei weißen Teilstrahlen durch drei entsprechende LDC-Platten übertragen werden oder von drei entsprechenden digitalen Mikrospiegel-Chips gebrochen werden. Die roten, grünen und blauen Teilstrahlen können mittels dichromatischer Spiegel kombiniert werden, und der kombinierte Strahl kann durch eine einzelne Linse auf dem Schirm SCR projiziert werden. Unter idealen Bedingungen würden entsprechende Pixel in den modulierten roten, grünen und blauen Teilstrahlen in dem kombinierten Strahl ausgerichtet sein. In der tatsächlichen Praxis kann man jedoch aufgrund von verschiedenen Unzulänglichkeiten bei der Herstellung unabhängige Verzerrungen und Teilung der roten, grünen und blauen Pixel in dem kombinierten Strahl beobachten. Zum Beispiel können die Zellen in jedem lichtverarbeitenden Chip unabhängig von einem nominellen rechteckigen Array weg verzerrt werden. Es kann leichte Schwankungen in der Ausrichtung und der Pfadlängenkalibrierung der lichtverarbeitenden Chips bezogen auf die dichromatischen Optiken, etc. geben. Die Verzerrungen und Teilung der roten, grünen und blauen Pixel in dem kombinierten Strahl können aufgrund von dichromatischer Abweichung (d. h. Wellenlängen-abhängiger Brechung) verschlimmert werden, wenn der kombinierte Strahl durch die Linse hindurchgeht und auf den Schirm SCR projiziert wird. Daher werden die roten, grünen und blauen physikalischen Bilder auf dem Schirm SCR unabhängig von einem idealen Rechteck weg verzerrt und entsprechende Pixel in den drei physikalischen Bildern überlappen sich nicht. Ferner schwanken die relativen Versetzungen zwischen entsprechenden Pixeln in den drei physikalischen Bildern wahrscheinlich in Größe und Richtung über den Schirm hinweg.
  • Gemäß einem vierten Modell kann eine Projektionseinrichtung einen einzelnen lichtverarbeitenden Chip (wie einen digitalen Mikrospiegel-Chip) mit einer Farbmodulationseinrichtung (wie einer Farbdrehscheibe) einsetzen, um einen einzelnen Ausgabestrahl zu erzeugen, der alle drei Farben in einer Zeitmultiplex-Weise in sich trägt. Das menschliche visuelle System führt die Farbintegration durch. Der einzelne Ausgabestrahl wird auf denn Schirm SCR durch eine einzelne Linse (oder Linsensystem) projiziert. Die roten, grünen und blauen Pixel in dem einzelnen Ausgabestrahl werden wegen der Farbabweichung in der Linse verzerrt. Da jedoch der Quellichtstrahl nicht geteilt und wieder kombiniert wird, werden viele der Verzerrungsmechanismen des obigen dritten Modells vermieden.
  • Gemäß einem fünften Modell kann eine Projektionseinrichtung zwei lichtverarbeitende Chips einsetzen. Ein Quellichtstrahl kann in zwei Teilstrahlen aufgeteilt werden. Der erste Teilstrahl kann mit Farbinformation für eine erste Farbe mittels des ersten lichtverarbeitenden Chips moduliert werden. Der zweite Teilstrahl kann mit der Farbinformation für die beiden verbleibenden Farben mittels des zweiten lichtverarbeitenden Chips und einer Farbdrehscheibe moduliert werden. Die zwei modulierten Teilstrahlen können mittels dichromatischer Optiken wieder kombiniert werden. Der kombinierte Strahl wird dann durch eine einzelne Linse (oder Linsensystem) auf den Schirm SCR projiziert. Die roten, grünen und blauen Pixel in dem kombinierten Strahl erfahren eine Farbabweichung beim Durchgang durch die Linse. Vor der Interaktion mit der Linse können die Verzerrungen und die Teilung der roten, grünen und blauen Pixel in dem kombinierten Strahl jedoch Größenordnungen haben, die niedriger sind als in dem dritten (Dreiwege-Aufteilungs- und Wiedervereinigungs-) Modell und größer als in dem vierten Modell (ohne Aufteilung).
  • Somit besteht ein Bedarf für ein System und ein Verfahren, die beliebige Farbverzerrungen (d. h. Verzerrungen, die Farbkomponenten eines zusammengesetzten physikalischen Bildes teilen) unabhängig von den Mechanismen, durch die solche Verzerrungen innerhalb einer Projektionseinrichtung entstanden sind, kompensieren können.
  • Das Computersystem CS kann sich auf ein Graphiksystem abstützen, um Ausgabevideosignale für die Projektionseinrichtungen P1 und P2 (und/oder ein Monitorgerät MD) erzeugen. Frühere Graphiksysteme waren nur für das Empfangen der von dem Hostprozessor produzierten Daten und deren Anzeige auf dem Monitorgerät MD verantwortlich. Im Wesentlichen fungierten sie als einfache Übersetzer oder Schnittstellen. Moderne Graphiksysteme beinhalten jedoch Graphikprozessoren mit einer großen Menge von Verarbeitungsleistung. Sie fungieren nun eher wie Coprozessoren als wie einfache Übersetzer. Diese Änderung liegt an dem jüngsten Anstieg sowohl der Komplexität als auch der Menge von Daten, die an ein Monitorgerät MD und/oder die Projektionseinrichtungen gesendet werden. Zum Beispiel haben moderne Anzeigeeinrichtungen viel mehr Pixel, eine größere Farbtiefe und sind in der Lage, komplexere Bilder mit höherer Bildwiederholfrequenz anzuzeigen, als frühere Modelle. In gleicher Weise sind die angezeigten Bilder nun komplexer und beziehen fortgeschrittene Techniken wie das Anti-Aliasing und die Texturabbildung ein.
  • Als eine Folge davon würde ein Hostprozessor ohne beträchtliche Verarbeitungsleistung in Graphiksystemen eine große Menge an Zeit verwenden, Graphikberechnungen durchzuführen. Dies könnte den Hostprozessor der Verarbeitungsleistung berauben, die zum Durchführen anderer mit der Programmausführung verbundener Aufgaben benötigt wird und damit die Gesamtleistungsfähigkeit des Computersystems CS dramatisch verringern. Mit einem leistungsfähigen Graphiksystem kann jedoch der Hostprozessor, wenn der Hostprozessor angewiesen wird, einen Kasten auf den Schirm zu zeichnen, eine Anforderung an das Graphiksystem senden, die angibt „zeichne einen Kasten bei diesen Koordinaten." Das Graphiksystem kann dann die Position und die Farbe jedes Pixels, das den Kasten ausmacht, berechnen. Der Hostprozessor wird somit von dem zeitaufwendigen Zeichen- oder Darstellungsprozeß befreit.
  • Im allgemeinen ist ein Graphiksystem eine Art von Videoadapter, der seinen eigenen Prozessor enthält, um Leistungsstufen zu erhöhen. Diese Prozessoren sind auf das Berechnen graphischer Transformationen spezialisiert, und sie erreichen somit tendenziell bessere Ergebnisse als die Allzweck-CPU, die von dem Computersystem CS verwendet wird. Darüber hinaus machen sie die CPU des Computers frei, andere Kommandos auszuführen, während das Graphiksystem Graphikberechnungen behandelt. Die Beliebtheit von Graphikanwendungen und speziell von Multimedia-Anwendungen hat Hochleistungs-Graphiksystem zu einem allgemeinen Bestandteil von Computersystemen gemacht. Die meisten Computerhersteller bündeln nun ein Hochleistungs-Graphiksystem mit ihren Computersystemen.
  • Da Graphiksysteme typischerweise nur einen beschränkten Satz von Funktionen durchführen, können sie an Kundenbedürfnisse angepaßt werden und sind daher weit effizienter bei Graphikoperationen als die Allzweck-CPU des Computers. Während frühere Graphiksysteme auf das Durchführen von zweidimensionaler (2D) Graphik beschränkt waren, ist ihre Funktionalität angestiegen, um dreidimensionale (3D) Drahtgitter-Graphik, 3D-Festkörper zu unterstützen und enthält jetzt die Unterstützung für dreidimensionale (3D) Graphik mit Texturen und Spezialeffekten wie hochentwickeltes Schattieren, Schleierbildung, Alpha-Mischung und spektrale Hervorhebung.
  • Graphiksysteme nach dem Stand der Technik verwenden einen herkömmlichen Bildspeicher zum Aktualisieren der Pixel/Video-Daten auf einer Anzeigeeinrichtung (z. B. einem Monitorgerät MD oder einer Projektionseinrichtung P1 oder P2). Der Bildspeicher speichert Zeilen und Spalten von Pixeln, die genau den entsprechenden Zeilen- und Spaltenpositionen auf der Anzeigeeinrichtung entsprechen. Graphiksysteme nach dem Stand der Technik stellen 2D- und/oder 3D-Bilder oder -Objekte in dem Bildspeicher in Pixelform dar und lesen dann die Pixel während einer Schirmaktualisierung aus dem Bildspeicher, um die Anzeigeeinrichtung zu aktualisieren. Somit speichert der Bildspeicher die Ausgabepixel, die an die Anzeigeeinrichtung übergeben werden. Um visuell wahrnehmbare Artefakte zu reduzieren, die durch Aktualisieren des Schirms zur selben Zeit, zu der der Bildspeicher aktualisiert wird, zu reduzieren, sind Bildspeicher in den meisten Graphiksystemen doppelt gepuffert.
  • Um realistischere Bilder zu erhalten, gingen einige Graphiksysteme nach dem Stand der Technik weiter, indem sie mehr als eine Abtastung pro Pixel erzeugten. Wie er hier verwendet wird, bezieht sich der Begriff „Abtastung" auf Information, die an einem bestimmten Punkt auf einem Objekt oder Bild berechnet wird, d. h. Information wie eine oder mehrere von Farbe, Tiefe (z), Transparenz, etc. Zum Beispiel kann eine Abtastung die folgenden Komponentenwerte aufweisen: einen Rotwert, einen Grünwert, einen Blauwert, einen z-Wert und eine Alpha-Wert (der z. B. die Transparenz der Abtastung repräsentiert). Eine Abtastung kann auch andere Information aufweisen, z. B. einen z-Tiefenwert, einen Verschwommenheitswert, einen Intensitätswert, Heller-als-Hell-Information und eine Anzeige, daß die Abtastung teilweise oder als Ganzes Steuerinformation anstelle von Farbinformation aufweist (d. h. „Abtaststeuerinformation"). Durch Berechnung von mehr Abtastungen als Pixeln (d. h. Überabtastung bzw. Super-Sampling) wird ein detaillierteres Bild berechnet, als auf der Anzeigeeinrichtung angezeigt werden kann. Zum Beispiel kann ein Graphiksystem vier Abtastungen für jedes Pixel, das an die Anzeigeeinrichtung auszugeben ist, berechnen. Nachdem die Abtastungen berechnet sind, werden sie kombiniert oder gefiltert, um die Pixel zu bilden, die in dem Bildspeicher gespeichert und dann an die Anzeigeeinrichtung geschickt werden. Das Verwenden von auf diese Weise gebildeten Pixeln kann ein realistischeres endgültiges Bild erstellen, weil übermäßig abrupte Änderungen in dem Bild durch den Filtervorgang geglättet werden können.
  • Diese Überabtastungssysteme nach dem Stand der Technik erzeugen typischerweise eine Anzahl von Abtastungen, die weit größer ist als die Anzahl von Pixelpositionen auf der Anzeige. Diese Systeme nach dem Stand der Technik haben typischerweise Darstellungs- bzw. Darstellungsprozessoren , die die Abtastungen berechnen und in einen Darstellungs- bzw. Darstellungspuffer speichern. Filterungs-Hardware liest dann die Abtastungen aus dem Darstellungspuffer, filtert die Abtastungen zum Erzeugen von Pixeln und speichert dann die Pixel in einem herkömmlichen Bildspeicher. Der herkömmliche Bildspeicher ist typischerweise doppelt gepuffert, wobei eine Seite zum Aktualisieren der Anzeigeeinrichtung verwendet wird und die andere Seite von der Filterungs-Hardware aktualisiert wird. Diese Systeme litten jedoch im allgemeinen unter Einschränkungen, die durch den herkömmlichen Bildspeicher und von der zusätzlichen von dem Darstellungspuffer und der Filterungs-Hardware verursachten Verzögerung auferlegt wurden. Daher ist ein verbessertes Graphiksystem wünschenswert, das die Vorzüge der Pixel-Überabtastung einbezieht, während es die Nachteile des herkömmlichen Bildspeichers vermeidet.
  • Die U.S.-Patentanmeldungs-Seriennummer 09/251.844 mit dem Titel „Graphics System with a Variable Resolution Sample Buffer" beschreibt ein Computergraphiksystem, das einen überabgetasteten Abtastpuffer und eine Abtastung-zu-Pixel-Berechnungseinheit zum Aktualisieren einer Anzeigeeinrichtung verwendet. Der Graphikprozessor erzeugt eine Mehrzahl von Abtastungen und speichert sie in einen Abtastpuffer. Der Graphikprozessor erzeugt und speichert vorzugsweise mehr als eine Abtastung für mindestens eine Teilmenge der Pixelpositionen auf der Anzeigeeinrichtung. Somit ist der Abtastpuffer ein überabgetasteter Abtastpuffer, der ein Anzahl von Abtastungen speichert, die viel größer sein kann als die Anzahl von Pixelpositionen auf der Anzeigeeinrichtung. Die Abtastung-zu-Pixel-Berechnungseinheit ist dafür ausgelegt, die Abtastungen aus dem überabgetasteten Abtastpuffer zu lesen und die Abtastungen in entsprechende Ausgabepixel zu filtern oder zu falten , wobei die Ausgabepixel dann bereitgestellt werden, um die Anzeigeeinrichtung zu aktualisieren. Die Abtastung-zu-Pixel-Berechnungseinheit wählt eine oder mehrer Abtastungen aus und filtert sie, um ein Ausgabepixel zu erzeugen. Die Abtastung-zu-Pixel-Berechnungseinheit kann betrieben werden, um Abtastungen zu erhalten und Ausgabepixel zu erzeugen, die direkt an die Anzeigeeinrichtung übergeben werden ohne Bildspeicher dazwischen.
  • Daher ist ein System und ein Verfahren zum Bereitstellen verbesserter Anzeigefähigkeiten einschließlich verbessertem Edge-Blending, Lichtfleck- bzw. Hotspotkorrektur, Kantenanpassung bzw. Edge-Matching, Verzerrungskorrektur und Farbverzerrungskompensation in einem System mit einem überabgetasteten Abtastpufter erwünscht.
  • US 4731865 offenbart einen Zweischritt-Bildglättungsvorgang, bei dem ein Bild auf einer Pixel-für-Pixel-Basis mit der Inversen einer Helligkeitsabbildung bzw. -karte multipliziert wird, um Bildhelligkeitsschwankungen aufgrund des Abbildungssystems zu korrigieren. Die Helligkeitskarte wird durch Glätten des ursprünglichen Bildes über ein Fenster hinweg erzeugt.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Graphiksystem gemäß der vorliegenden Erfindung kann einen Graphikprozessor, einen überabgetasteten Abtastpufter und eine oder mehrere Abtastung-zu-Pixel-Berechnungseinheiten aufweisen. Der Graphikprozessor erzeugt eine Mehrzahl von Abtastungen und speichert sie in dem Abtastpuffer. Jede Abtastung-zu-Pixel-Berechnungseinheit arbeitet auf Abtastungswerten, um Pixelwerte zu erzeugen. Der Graphikprozessor erzeugt und speichert vorzugsweise mehr als eine Abtastung pro Pixel für mindestens eine Teilmenge der Pixelpositionen auf der Anzeigeoberfläche. Somit ist der Abtastpuffer ein überabgetasteter Abtastpuffer, der ein Anzahl von Abtastungen speichert, die nach einigen Ausführungsformen viel größer sein kann als die Anzahl von Pixelpositionen auf der Anzeigeoberfläche. Nach anderen Ausführungsformen kann die gesamte Anzahl von Abtastungen näher an der, gleich der oder kleiner als die gesamte Anzahl von Pixelpositionen auf der Anzeigeoberfläche sein. Darüber hinaus können die Abtastungen für bestimmte Bereiche der Anzeigeoberfläche dichter und in anderen Bereichen weniger dicht positioniert sein.
  • Die Abtastung-zu-Pixel-Berechnungseinheit ist dafür ausgelegt, die Abtastungen aus dem überabgetasteten Abtastpuffer zu lesen und die Abtastungen zu filtern, um entsprechende Ausgabepixelwerte zu erzeugen. Die Ausgabepixelwerte stehen dann bereit, um die Anzeigeeinrichtung (z. B. den Monitor oder die Projektionseinrichtung) zu aktualisieren. Die Abtastung-zu-Pixel-Berechnungseinheit wählt eine oder mehrer Abtastungen aus und filtert sie, um einen Ausgabepixelwert zu erzeugen. Man beachte, daß die Anzahl von Abtastungen, die von der Abtastung-zu-Pixel-Berechnungseinheit ausgewählt und gefiltert werden, größer als eins (wie in der bevorzugten Ausführungsform), gleich eins oder kleiner als eins sein kann.
  • Die Abtastung-zu-Pixel-Berechnungseinheit kann auf die Abtastungen aus dem Abtastpuffer zugreifen, eine Echtzeit-Filteroperation durchführen und dann die resultierenden Ausgabepixelwerte der Anzeigeeinrichtung bereitstellen, vorzugsweise in Echtzeit. Das Graphiksystem kann berechnete Pixelwerte an die Anzeigeeinrichtung übermitteln, ohne sie in einem zwischenliegenden Bildspeicher zu speichern. Somit kann die große Verzögerung eines Bildspeichers vermieden werden. Man beachte, daß einige Anzeigeeinrichtungen interne Bildspeicher besitzen können, aber diese werden als integraler Bestandteil der Anzeigeeinrichtung, nicht jedoch des Graphiksystems betrachtet. Somit kann die Abtastung-zu-Pixel-Berechnungseinheit jedes Pixel für jedes Videoeinzelbild auf einer Echtzeitbasis oder während der Übertragung berechnen.
  • Nach einer Ausführungsform kann das Graphiksystem dafür ausgelegt sein, Edge-Blending durch Glätten der Verteilung der von einem Betrachter wahrgenommenen Lichtenergie von zwei oder mehr Bildern durchzuführen, die auf einer Anzeigeoberfläche von zwei oder mehr entsprechenden Projektionseinrichtungen erzeugt werden. Das Graphiksystem kann eine erste Abtastung-zu-Pixel-Berechnungseinheit und eine zweite Abtastung-zu-Pixel-Berechnungseinheit aufweisen. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, eine erste Mehrzahl von ersten virtuellen Pixelpositionen in einem zweidimensionalen Darstellungsfeld zu erzeugen, das mit Abtastungen belegt wird, um erste Pixelwerte durch Filtern der Abtastungen an der ersten Mehrzahl von ersten virtuellen Pixelpositionen zu berechnen, eine erste Teilmenge der ersten Pixelwerte mittels erster Intensitätsskalierungswerte zu skalieren und die ersten Pixelwerte einer ersten Projektionseinrichtung bereitzustellen. Die zweite Abtastung-zu-Pixel-Berechnungseinheit kann in ähnlicher Weise dafür ausgelegt sein, eine zweite Mehrzahl von zweiten virtuellen Pixelpositionen in einem zweidimensionalen Darstellungsfeld zu erzeugen, um zweite Pixelwerte durch Filtern der Abtastungen an der zweiten Mehrzahl von zweiten virtuellen Pixelpositionen zu berechnen, eine zweite Teilmenge der zweiten Pixelwerte mittels zweiter Intensitätsskalierungswerte zu skalieren und die zweiten Pixelwerte einer zweiten Projektionseinrichtung bereitzustellen.
  • Die erste Projektionseinrichtung kann dafür ausgelegt sein, als Reaktion auf die ersten Pixelwerte ein erstes Array von ersten physikalischen Pixeln auf der Anzeigeoberfläche zu erzeugen. In ähnlicher Weise kann die zweite Projektionseinrichtung dafür ausgelegt sein, als Reaktion auf die zweiten Pixelwerte ein zweites Array von zweiten physikalischen Pixeln auf der Anzeigeoberfläche zu erzeugen. Die erste Teilmenge der ersten Pixelwerte, die mittels der ersten Intensitätsskalierungswerte skaliert sind, kann Intensitäten einer ersten Teilmenge der ersten physikalischen Pixel in einem ersten Überlappungsbereich zwischen dem ersten Array und dem zweiten Array regeln. Die zweite Teilmenge der zweiten Pixelwerte, die mittels der zweiten Intensitätsskalierungswerte skaliert sind, kann Intensitäten einer zweiten Teilmenge der zweiten physikalischen Pixel in dem ersten Überlappungsbereich regeln.
  • Die ersten Intensitätsskalierungswerte können von eins nach Null von einer ersten Seite des ersten Überlappungsbereiches zu einer zweiten Seite des ersten Überlappungsbereiches übergehen. Umgekehrt können die zweiten Intensitätsskalierungswerte von Null nach eins von der ersten Seite des ersten Überlappungsbereiches zu der zweiten Seite des ersten Überlappungsbereiches übergehen. Die ersten Intensitätsskalierungswerte können linear (stückweise linear, nicht-linear, etc.) von eins nach Null von der ersten Seite des ersten Überlappungsbereiches zu der zweiten Seite des ersten Überlappungsbereiches übergehen. Umgekehrt können die zweiten Intensitätsskalierungswerte linear (stückweise linear, nicht-linear, etc.) von Null nach eins von der ersten Seite des ersten Überlappungsbereiches zu der zweiten Seite des ersten Überlappungsbereiches übergehen.
  • Den ersten Intensitätsskalierungswerten und den zweiten Intensitätsskalierungswerten können numerische Werte zugewiesen werden, so daß die gesamte Lichtintensität in dem ersten Überlappungsbereich ungefähr gleich der Lichtintensität in den nicht überlappenden Bereichen des ersten Array und des zweiten Array ist. Die ersten Intensitätsskalierungswerte können basierend auf einer ersten Intensitätsskalierungsfunktion berechnet werden, und die zweiten Intensitätsskalierungswerte können basierend auf einer zweiten Intensitätsskalierungsfunktion berechnet werden. Vorzugsweise addieren sich die erste Intensitätsskalierungsfunktion und die zweite Intensitätsskalierungsfunktion auf dem ersten Überlappungsbereich zu eins. Die oben mittels zweier Projektionseinrichtungen beschriebene Intensitätsskalierung kann zu einer beliebigen Anzahl von Projektionseinrichtungen verallgemeinert werden, deren Schirmbilder sich überlappen, eventuell mit mehrfachen Überlappungen.
  • In einer alternativen Ausführungsform weist das Graphiksystem eine erste Berechnungseinheit und eine zweite Berechnungseinheit auf. Die erste Berechnungseinheit kann dafür ausgelegt sein, erste Pixelwerte zu erzeugen und die ersten Pixelwerte einer ersten Projektionseinrichtung zur Verfügung zu stellen. Die erste Projektionseinrichtung kann dafür ausgelegt sein, ein erstes Array von ersten physikalischen Pixeln auf einer Anzeigeoberfläche zu erzeugen. Die zweite Berechnungseinheit kann dafür ausgelegt sein, zweite Pixelwerte zu erzeugen und die zweiten Pixelwerte einer zweiten Projektionseinrichtung zur Verfügung zu stellen. Die zweite Projektionseinrichtung kann dafür ausgelegt sein, ein zweites Array von zweiten physikalischen Pixeln auf einer Anzeigeoberfläche zu erzeugen. Das erste physikalische Pixelarray und das zweite physikalische Pixelarray überlappen sich in einem ersten Überlappungsbereich auf der Anzeigeoberfläche. Die ersten Pixelwerte regeln die Intensitäten der ersten physikalischen Pixel. Die zweiten Pixelwerte regeln die Intensitäten der zweiten physikalischen Pixel. Die erste Berechnungseinheit ist dafür ausgelegt, eine erste Teilmenge der ersten Pixelwerte, die dem ersten Überlappungsbereich entsprechen, mit ersten Intensitätsskalierungswerte zu multiplizieren, bevor die ersten Pixelwerte der ersten Projektionseinrichtung zur Verfügung gestellt werden. Die zweite Berechnungseinheit ist dafür ausgelegt, eine zweite Teilmenge der zweiten Pixelwerte, die dem ersten Überlappungsbereich entsprechen, mit zweiten Intensitätsskalierungswerte zu multiplizieren, bevor die zweiten Pixelwerte der zweiten Projektionseinrichtung zur Verfügung gestellt werden. In dieser alternativen Ausführungsform können die erste Berechnungseinheit und die zweite Berechnungseinheit als Reaktion auf 3D-Graphikdaten Pixelwerte mittels irgendeines herkömmlichen Mechanismus' berechnen.
  • In einer zweiten Ausführungsform kann das Graphiksystem dafür ausgelegt sein, eine Lichtfleck- bzw. Hotspot-Korrektur durch Glätten der Verteilung der Lichtenergie durchzuführen, die von einem Betrachter eines von einer oder mehreren Anzeigeeinrichtungen auf einer Anzeigeoberfläche erzeugten Bildes wahrgenommen wird. Das Graphiksystem kann eine erste Abtastung-zu-Pixel-Berechnungseinheit aufweisen, die dafür ausgelegt ist, eine erste Mehrzahl von ersten virtuellen Pixelpositionen in einem zweidimensionalen Darstellungsfeld zu erzeugen, das mit Abtastungen belegt wird, um erste Pixelwerte durch Filtern der Abtastungen an einer ersten Mehrzahl von ersten virtuellen Pixelpositionen zu berechnen, die ersten Pixelwerte mit ersten Intensitätsskalierungswerten zu multiplizieren, um erste skalierte Pixelwerte zu erzeugen, und die ersten skalierten Pixelwerte einer ersten Projektionseinrichtung zur Verfügung zu stellen. Die ersten Intensitätsskalierungswerte können dafür ausgelegt sein, eine Ungleichmäßigkeit (z. B. einen Lichtfleck bzw. Hotspot) in der von einem Betrachter wahrgenommenen Verteilung der Lichtintensität zu korrigieren.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, die von einem Betrachter wahrgenommene Verteilung (der Lichtintensität von der Schirmoberfläche SCR) als Reaktion auf empfangenen Sensordaten zu bestimmen. Die Sensordaten können von einer Positionserkennungseinrichtung , die bei dem Betrachter angeordnet ist (z. B. am Kopf des Benutzers) empfangen werden. Die Position des Betrachters in dem Projektor-Schirm-Geometriesystem kann verwendet werden, um die von dem Betrachter wahrgenommene Verteilung basierend auf bekannten und/oder gemessenen optischen Eigenschaften der Projektionseinrichtung und des Schirmes SCR zu berechnen. Darüber hinaus kann die von dem Betrachter wahrgenommene Verteilung verwendet werden, um die ersten Intensitätsskalierungswerte zu erzeugen. Zum Beispiel kann die erste Abtastung-zu-Pixel-Berechnungseinheit dafür ausgelegt sein, ein Minimum der Verteilung des Betrachters auf eins zu normalisieren, die normalisierte Verteilung zu invertieren und die invertierte, normalisierte Verteilung auszuwerten, um die ersten Intensitätsskalierungswerte zu erzeugen. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, wiederholt Sensordaten zu empfangen und wiederholt basierend auf den Sensordaten erste Intensitätsskalierungswerte zu erzeugen, wenn der Betrachter sich bezogen auf die Anzeigeoberfläche bewegt.
  • Die ersten Intensitätsskalierungswerte können zwischen Null und eins inklusive liegen und können verwendet werden, um eine erste Teilmenge der ersten Pixelwerte zu glätten, die auf einen ersten Lichtfleck- bzw. Hotspot-Bereich der Anzeigeoberfläche abgebildet werden. Eine erste Teilmenge der ersten Intensitätsskalierungswerte kann in einem Speicher gespeichert werden und eine zweite Teilmenge der ersten Intensitätsskalierungswerte kann basierend auf der ersten Teilmenge der in dem Speicher gespeicherten ersten Intensitätsskalierungswerte interpoliert werden.
  • Die oben beschriebene Ausführungsform eines Graphiksystems kann verallgemeinert werden, um mit jeder beliebigen Anzahl von Projektionseinrichtungen zu arbeiten. Zum Beispiel kann das Graphiksystem ferner eine zweite Abtastung-zu-Pixel-Berechnungseinheit aufweisen, die dafür ausgelegt ist, eine zweite Mehrzahl von zweiten virtuellen Pixelpositionen in einem zweidimensionalen Darstellungsfeld zu erzeugen, zweite Pixelwerte durch Filtern der Abtastungen an der zweiten Mehrzahl von zweiten virtuellen Pixelpositionen zu berechnen, die zweiten Pixelwerte mit zweiten Intensitätsskalierungswerten zu multiplizieren, um zweite skalierte Pixelwerte zu erzeugen, und die zweiten skalierten Pixelwerte einer zweiten Projektionseinrichtung zur Verfügung zu stellen. Die ersten Intensitätsskalierungswerte und die zweiten Intensitätsskalierungswerte können dafür ausgelegt sein, die Ungleichmäßigkeit in der von dem Betrachter wahrgenommenen Lichtverteilung zu korrigieren. Die zweiten Intensitätsskalierungswerte können dafür ausgelegt sein, die zweiten Pixelwerte in der Nachbarschaft eines zweiten Lichtfleckes bzw. Hotspots, der von der zweiten Projektionseinrichtung erzeugt wird, zu glätten.
  • In einer dritten Ausführungsform kann das Graphiksystem dafür ausgelegt sein, beliebige Anzeigeverzerrungen zu korrigieren, d. h. beliebige Verzerrungen der physikalischen Pixel (d. h. der angezeigten Pixel) auf der Anzeigeoberfläche zu kompensieren ungeachtet der Mechanismen, durch die diese Verzerrungen entstehen. Das Graphiksystem kann einen Graphikprozessor, einen Abtastpuffer und eine erste Abtastung-zu-Pixel-Berechnungseinheit aufweisen. Der Graphikprozes sor kann betrieben werden, (a) um Graphikdaten zu empfangen, (b) um Abtastpositionen in einem zweidimensionalen Darstellungsfeld auszuwählen und (c) um basierend auf den empfangenen Graphikdaten Abtastwerte an Abtastpositionen zu berechnen. Der Abtastpuffer kann an den Graphikprozessor angeschlossen und dafür ausgelegt sein, die Abtastwerte zu speichern. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann an den Abtastpuffer angeschlossen sein und betrieben werden, um eine erste Mehrzahl von ersten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auszuwählen. Für jede erste virtuelle Pixelposition in der ersten Mehrzahl kann die erste Abtastung-zu-Pixel-Berechnungseinheit betrieben werden, (d) um auf eine erste Teilmenge der Abtastwerte zuzugreifen, die einer ersten Umgebung des ersten virtuellen Pixelzentrums entspricht, (e) um die erste Teilmenge der Abtastwerte zu filtern, um einen ersten Pixelwert zu erzeugen, und (f) um den ersten Pixelwert als Ausgabe einer ersten Anzeigeeinrichtung zur Verfügung zu stellen. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann die erste Mehrzahl von ersten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auswählen, um eine physikalische Verzerrung einer ersten Menge von physikalischen Pixel zu korrigieren, die von der ersten Anzeigeeinrichtung auf einer Anzeigeoberfläche erzeugt werden.
  • Die physikalische Verzerrung der ersten Menge von physikalischen Pixeln kann bezogen auf eine nominale Menge von Schirmpositionen (z. B. ein rechteckiges Array, ein sechseckiges Array, etc.) bestimmt werden. Die physikalischen Verzerrungen, die von den hier offenbarten Methoden behandelt werden, können beliebige Größenordnungen haben. Mit anderen Worten können sowohl geringe physikalische Verzerrungen in der Größenordnung eines Bruchteils eines Pixelabstandes ausgeglichen werden als auch große physikalische Verzerrungen, die eine große Anzahl von Pixelabständen überdecken. Während kleine Verzerrungen in der Größenordnung eines Bruchteils eines Pixelabstandes unter Umständen für den Betrachter in einem einzelnen Mono-Video-Projektionsszenario nicht wahrnehmbar sind, haben solche Verzerrungen einen abträglichen Einfluß auf die optische Qualität von überlappendem Video und geschichtetem Video aus mehreren Projektoren. Die Behandlung von überlappendem Video und geschichtetem Video wird untenstehend beschrieben.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, von einem Benutzer/Operator Kalibrierungssignale zu empfangen und die erste Mehrzahl von ersten physikalischen Pixelpositionen in dem 2-D-Darstellungsfeld in Reaktion auf die Kalibrierungssignale anzupassen. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, die erste Mehrzahl von ersten virtuellen Pixelpositionen in dem 2-D-Darstellungsfeld entlang einer Ein-Parameter-Familie von geometrischen Verzerrungen in Reaktion auf die Kalibrierungssignale anzupassen. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, die erste Mehrzahl von ersten virtuellen Pixelpositionen expandierend (und/oder kontrahierend) anzupassen.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann weiter dafür ausgelegt sein, Sensordaten zu empfangen, die die physikalischen Positionen der ersten Menge physikalischer Pixel auf der Anzeigeoberfläche angeben, und als Reaktion auf die Sensordaten die erste Mehrzahl von ersten virtuellen Pixelpositionen zu berechnen.
  • Ein Hersteller von Anzeigeeinrichtungen (z. B. Monitoren oder Projektionseinrichtungen) kann die ersten virtuellen Pixelpositionen für die erste Anzeigeeinrichtung zum Zeitpunkt der Herstellung kalibrieren. Die kalibrierten ersten virtuellen Pixelpositionen für die erste Anzeigeeinrichtung können auf einem Speichermedium gespeichert werden, das intern oder extern zu der ersten Anzeigeeinrichtung ist. Der Hersteller kann das Speichermedium zusammen mit der ersten Anzeigeeinrichtung an einen Benutzer schicken. Der Benutzer kann die kalibrierten ersten virtuellen Pixelpositionen aus dem Speichermedium in das Graphiksystem übertragen. Die kalibrierten ersten virtuellen Pixelpositionen können es dem Benutzer ermöglichen, sofort (oder schneller) eine unverzerrte Darstellung von Bildern mittels des Graphiksystems und der ersten Anzeigeeinrichtung zu erreichen. Man beachte, daß die Notwendigkeit einer Kalibrierung zum Herstellungszeitpunkt von der Größenordnung der Schwankungen bei den Anzeigeverzerrungen von Einheit zu Einheit abhängt.
  • Ein geschulter Arbeiter bei einer Herstellungseinrichtung kann die ersten virtuellen Pixelpositionen durch Auswählen eines oder mehrerer Kalibrierungsmodi (z. B. Trapezmodus, Tonnenmodus, Kissenmodus, etc.) und durch Liefern von Plus/Minus-Anpassungseingaben für jeden Kalibrierungsmodus kalibrieren, bis angezeigte Objekte unverzerrt erscheinen. Alternativ kann die Kalibrierung des Herstellers automatisiert sein. Zum Beispiel kann ein adaptives Steuerungssystem dafür ausgelegt sein, den geschulten Arbeiter zu ersetzen.
  • Zusätzlich zu oder vielleicht anstelle einer Kalibrierung zum Herstellungszeitpunkt kann das Graphiksystem einen Mechanismus (wie die oben vorgeschlagenen) zur Kalibrierung der ersten virtuellen Pixelpositionen Benutzer zur Verfügung stellen. Die Notwendigkeit eines Mechanismus zur Kalibrierung durch den Benutzer kann von der Größenordnung der Zeitschwankung bei den Anzeigeverzerrungen abhängen.
  • Wenn die Zeitschwankung der Anzeigeverzerrungen ausreichend groß ist, kann das Graphiksystem für kontinuierliche (d. h. Echtzeit-)Kalibrierung ausgelegt sein. Das Graphiksystem kann zum Beispiel dafür ausgelegt sein, in Abständen unterschwellige Kalibrierungsmuster über die erste Anzeigeeinrichtung anzuzeigen. Eine Videokamera kann die Darstellung der Kalibrierungsmuster auf der ersten Anzeigeeinrichtung (oder dem Schirm SCR) überwachen. Das Graphiksystem kann die Videobilder analysieren und als Reaktion auf die Videobilder korrigierte erste virtuelle Pixelpositionen in dem 2-D-Anzeigefeld erzeugen. Eine solche kontinuierliche Kalibrierung kann die Verwendung von Anzeigeeinrichtungen mit hoher Drift erleichtern, was ansonsten den Betrachter stören würde.
  • Die vorliegende Erfindung betrachtet verschiedene Ausführungsformen des Graphiksystems, wobei jede Kombination von Kalibrierung zur Herstellungszeitpunkt, Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrerung unterstützt werden kann.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann einen ersten Cachespeicher beinhalten. Der erste Cachespeicher kann dafür ausgelegt sein, eine erste Anzahl von Speicherbehältern zu speichern, wobei die erste Anzahl von Speicherbehältern von der maximal erwarteten Versetzung der ersten Mehrzahl von ersten virtuellen Pixelpositionen gegenüber den entsprechenden Positionen in einem rechteckigen Array abhängt.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann die erste Mehrzahl von ersten virtuellen Pixelpositionen mit einem ersten Verzerrungsmuster auswählen, das geometrisch ähnlich (oder annähernd ähnlich) der physikalischen Verzerrung der ersten Menge von physikalischen Pixeln auf der Anzeigeoberfläche ist.
  • Darüber hinaus kann das Graphiksystem dafür ausgelegt sein, eine beliebige Verzerrung der von mehreren Anzeigeeinrichtungen erzeugten physikalischen Pixel zu korrigieren. Daher kann das Graphiksystem auch eine zweite Abtastung-zu-Pixel-Berechnungseinheit beinhalten, die an den Abtastpuffer angeschlossen ist und betrieben wird, um eine zweite Mehrzahl von zweiten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auszuwählen. Für jede zweite virtuelle Pixelposition in der zweiten Mehrzahl kann die zweite Abtastung-zu-Pixel-Berechnungseinheit betrieben werden, (g) um auf eine zweite Teilmenge von Abtastwerten zuzugreifen, die einer zweiten Umgebung des zweiten virtuellen Pixelzentrums entspricht, (h) um die zweite Teilmenge von Abtastwerten zu filtern, um einen zweiten Pixelwert zu berechnen, und (i) um den zweiten Pixelwert als Ausgabe einer zweiten Anzeigeeinrichtung zur Verfügung zu stellen. Die zweite Abtastung-zu-Pixel-Berechnungseinheit kann die zweite Mehrzahl von zweiten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auswählen, um eine physikalische Verzerrung einer zweiten Menge von physikalischen Pixeln zu korrigieren, die von der zweiten Anzeigeeinrichtung auf der Anzeigeoberfläche erzeugt werden. Die erste Abtastung-zu-Pixel-Berechnungseinheit und die zweite Abtastung-zu-Pixel-Berechnungseinheit können dafür ausgelegt sein, Kalibrierungseingaben von einem Benutzer entgegenzunehmen und die ersten virtuellen Pixelpositionen bzw. die zweiten virtuellen Pixelpositionen in dem 2-D-Darstellungsfeld anzupassen. Die erste und zweite Anzeigeeinrichtung können Projektionseinrichtungen sein.
  • Die zweite Abtastung-zu-Pixel-Berechnungseinheit kann die zweiten virtuellen Pixelpositionen mit einem zweiten Verzerrungsmuster auswählen, das geometrisch ähnlich (oder annähernd ähnlich) der physikalischen Verzerrung der zweiten Menge von physikalischen Pixel auf der Anzeigeoberfläche ist.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit und die zweite Abtastung-zu-Pixel-Berechnungseinheit können dafür ausgelegt sein, als Reaktion auf die Kalibrierungseingaben die ersten virtuellen Pixelpositionen relativ zu den zweiten virtuellen Pixelpositionen in dem 2-D-Darstellungsfeld anzupassen. Die erste Abtastung-zu-Pixel-Berechnungseinheit und die zweite Abtastung-zu-Pixel-Berechnungseinheit können zum Beispiel dafür ausgelegt sein, als Reaktion auf die Kalibrierungseingaben die ersten virtuellen Pixelpositionen relativ zu den zweiten virtuellen Pixelpositionen in dem 2-D-Darstellungsfeld zu versetzen und/oder zu skalieren (vertikal und/oder horizontal).
  • Ein Hersteller von Mehrfachprojektor-(oder Mehrfachanzeige-)-Anzeigesystemen kann die virtuellen Pixelpositionen für jede Projektionseinrichtung in einem Anzeigesystem zum Herstellungszeitpunkt kalibrieren. Die Menge von kalibrierten virtuellen Pixelpositionen für jede Projektionseinrichtung in dem Anzeigesystem kann auf einem Speichermedium gespeichert werden, das intern oder extern zu der Projektionseinrichtung ist. Der Hersteller kann das Speichermedium zusammen mit dem Anzeigesystem an einen Benutzer ausliefern. Der Benutzer kann jeden Satz von kalibrierten virtuellen Pixelpositionen aus dem Speichermedium in das Graphiksystem übertragen. Die Sätze von kalibrierten virtuellen Pixelpositionen können es dem Benutzer ermöglichen, sofort (oder schneller) eine unverzerrte Darstellung von ganzheitlichen Bildern auf dem Schirm SCR zu erreichen, indem er das Graphiksystem zum Auftreiben der mehreren Projektionseinrichtung verwendet, die das Anzeigesystem aufweist.
  • Zusätzlich zu oder vielleicht anstelle einer Kalibrierung zum Herstellungszeitpunkt kann das Graphiksystem einen Mechanismus zur Kalibrierung der virtuellen Pixelpositionen durch den Benutzer für jede Projektionnseinrichtung zur Verfügung stellen. Die Notwendigkeit eines Mechanismus' zur Kalibrierung durch den Benutzer kann von der Größenordnung der Zeitschwankung bei den physikalischen Anzeigeverzerrungen abhängen.
  • Wenn die zeitliche Schwankung der physikalischen Anzeigeverzerrungen hinreichend groß ist, kann das Graphiksystem für eine kontinuierliche (d. h. Echtzeit-)Kalibrierung ausgelegt sein. Das Graphiksystem kann zum Beispiel dafür ausgelegt sein, in Abständen unterschwellige Kalibrierungsmuster über die: mehreren Projektionseinrichtungen anzuzeigen. Eine Videokamera kann die Darstellung der Kalibrierungsmuster, die von den mehreren Projektionseinrichtungen auf dem Schirm SCR erzeugt werden, überwachen. Das Graphiksystem kann die Videobilder analysieren und als Reaktion auf die Videobilder einen korrigierten Satz von virtuellen Pixelpositionen für jede Projektionseinrichtung erzeugen.
  • Die vorliegende Erfindung betrachtet verschiedene Ausführungsformen des Graphiksystems, wobei jede Kombination von Kalibrierung zum Herstellungszeitpunkt, Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrierung unterstützt werden kann.
  • In einer vierten Ausführungsform kann das Graphiksystem dafür ausgelegt sein, Kantenanpassung bzw. Edge Matching durchzuführen (d. h. die Grenzen bzw. Ränder von Bildern, die von zwei oder mehr Projektionseinrichtungen auf eine Anzeigeoberfläche erzeugt werden, auszurichten). Das Graphiksystem kann eine erste Abtastung-zu-Pixel-Berechnungseinheit und eine zweite Abtastung-zu-Pixel-Berechnnungseinheit aufweisen. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, (i) eine erste Mehrzahl von ersten virtuellen Pixelpositionen in einem zweidimensionalen Darstellungsfeld auszuwählen, (ii) einen ersten Strom von ersten Pixelwerten durch Filtern von Abtastungen, die über das zweidimensionale Darstellungsfeld verteilt sind, an der ersten Mehrzahl von ersten virtuellen Pixelpositionen zu erzeugen, und (iii) den ersten Strom von ersten Pixelwerten einer ersten Projektionseinrichtung zur Verfügung zu stellen. Die erste Projektionseinrichtung kann dafür ausgelegt sein, als Reaktion auf den Empfang des ersten Stromes von ersten Pixelwerten ein erstes physikalisches Pixelarray auf der Anzeigeoberfläche zu erzeugen.
  • Die zweite Abtastung-zu-Pixel-Berechnungseinheit kann dafür ausgelegt sein, (iv) eine zweite Mehrzahl von zweiten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auszuwählen, (v) einen zweiten Strom von zweiten Pixelwerten durch Filtern von Abtastungen, die über das zweidimensionale Darstellungsfeld verteilt sind, an der zweiten Mehrzahl von zweiten virtuellen Pixelpositionen zu erzeugen, und (vi) den zweiten Strom von zweiten Pixelwerten einer zweiten Pro jektionseinrichtung zur Verfügung zu stellen. Die zweite Projektionseinrichtung kann dafür ausgelegt sein, als Reaktion auf den Empfang des zweiten Stromes von zweiten Pixelwerten ein zweites physikalisches Pixelarray auf der Anzeigeoberfläche zu erzeugen. Eine erste physikalische Barriere bzw. Absperrung kann senkrecht zu der Anzeigeoberfläche und entlang der Schnittstelle zwischen dem ersten physikalischen Pixelarray und dem zweiten physikalischen Pixelarray positioniert werden. Die erste physikalische Barriere kann ein dünner Streifen von lichtabsorbierendem Material sein. Die erste physikalische Barriere kann in physikalischem Kontakt mit der Anzeigeoberfläche (d. h. einem Projektionsschirm) stehen.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann eine Teilmenge der ersten Mehrzahl von ersten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auswählen, um eine erste physikalischen Verzerrung des ersten physikalischen Pixelarray auf der Anzeigeoberfläche zu korrigieren. In ähnlicher Weise kann die zweite Abtastung-zu-Pixel-Berechnungseinheit eine Teilmenge der zweiten Mehrzahl von zweiten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auswählen, um eine zweite physikalische Verzerrung des zweiten physikalischen Pixelarray auf der Anzeigeoberfläche zu korrigieren. Teilmengen der ersten und zweiten virtuellen Pixelpositionen können entlang der Kante des ersten und zweiten Pixelarray ausgewählt werden, um die Kantenanpassung durchzuführen.
  • Die erste Projektionseinrichtung und die zweite Projektionseinrichtung können so eingerichtet werden, daß die Überlappung des ersten physikalischen Pixelarray und des zweiten physikalischen Pixelarray geringer ist als ein vorgegebener Maximalwert. Insbesondere können die erste Projektionseinrichtung und die zweite Projektionseinrichtung so eingerichtet werden, daß sich das erste physikalische Pixelarray und das zweite physikalische Pixelarray minimal überlappen.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit und die zweite Abtastung-zu-Pixel-Berechnungseinheit können dafür ausgelegt sein, Kalibrterungssignale von einem Benutzer entgegenzunehmen und als Reaktion auf die Kalibrierungssignale eine Teilmenge der ersten Mehrzahl von ersten virtuellen Pixelpositionen bzw. eine Teilmenge der zweiten Mehrzahl von zweiten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld anzupassen. Die erste Abtastung-zu-Pixel-Berechnungseinheit und die zweite Abtastung-zu-Pixel-Berechnungseinheit können dafür ausgelegt sein, als Reaktion auf die Kalibrierungseingaben die ersten virtuellen Pixelpositionen relativ zu den zweiten virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld zu versetzen (vertikal und/oder horizontal) und/oder zu skalieren (vertikal und/oder horizontal).
  • Darüber hinaus können die erste Abtastung-zu-Pixel-Berechnungseinheit und die zweite Abtastung-zu-Pixel-Berechnungseinheit dafür ausgelegt sein, Sensordaten zu empfangen, die die physikalischen Positionen physikalischer Pixel angeben, die das erste physikalische Pixelarray und das zweite physikalische Pixelarray auf der Anzeigeoberfläche aufweisen; und als Reaktion auf die Sensordaten die ersten virtuellen Pixelpositionen bzw. die zweiten virtuellen Pixelpositionen zu berechnen.
  • Die erste Abtastung-zu-Pixel-Berechnungseinheit kann die erste Mehrzahl von ersten virtuellen Pixelpositionen mit einem ersten Verzerrungsmuster auswählen, das geometrisch ähnlich (oder annähernd ähnlich) einer ersten physikalischen Verzerrung ausgedrückt durch das erste physikalische Pixelarray ist. In ähnlicher Weise wählt die zweite Abtastung-zu-Pixel-Berechnungseinheit die zweite Mehrzahl von zweiten virtuellen Pixelpositionen mit einem zweiten Verzerrungsmuster aus, das geometrisch ähnlich (oder annähernd ähnlich) einer zweiten physikalischen Verzerrung ausgedrückt durch das zweite physikalische Pixelarray ist.
  • Nach einer Ausführungsform kann das Graphiksystem dafür ausgelegt sein, Farbverzerrungsmechanismen (wie Farbabweichung) zu kompensieren. Daher kann die erste Abtastung-zu-Pixel-Berechnungseinheit dafür ausgelegt sein, eine separate Menge von virtuellen Pixelpositionen für jede Farbe zu verwenden. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann NC Mengen von virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auswählen, wobei NC der Anzahl der von der Anzeigeeinrichtung verwendeten Farben entspricht. Für jede virtuelle Pixelposition in der K-ten Menge wird die erste Abtastung-zu-Pixel-Berechnungseinheit betrieben, um auf Abtastungen in der Umgebung der virtuellen Pixelposition zuzugreifen, die Nachbarabtastungen zu filtern, um einen entsprechenden Pixelwert zu erzeugen, und um den Pixelwert als Ausgabe der Anzeigeeinrichtung zur Verfügung zu stellen. Die als Reaktion auf die K-te Menge von virtuellen Pixelpositionen erzeugten Pixelwerte steuern die K-te Farbe von den NC Farben. Die erste Abtastung-zu-Pixel-Berechnungseinheit kann die NC Mengen von virtuellen Pixelpositionen in dem zweidimensionalen Darstellungsfeld auswählen, um beliebige Farbverzerrungen, die in der Anzeigeeinrichtung entstehen, zu korrigieren.
  • Jede Menge von virtuellen Pixelpositionen kann in Reaktion auf Sensordaten berechnet werden, die physikalische Positionen von physikalischen Pixeln auf der Anzeigeoberfläche angeben, wenn sie mit der entsprechenden Farbe angeregt bzw. erregt wird. Die erste Abtastung-zu-Pixel-Berechnungseinheit wählt jede Menge von virtuellen Pixelpositionen aus, so daß sie geometrisch ähnlich der gemessenen physikalischen Pixelposition ist, wenn die erste Anzeigeeinrichtung nur mit der entsprechenden Farbe angeregt wird. Alternativ kann jede Menge von virtuellen Pixelpositionen in Reaktion auf Kalibrierungseingaben berechnet werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Sowohl das Vorstehende als auch andere Ziele, Eigenschaften und Vorteile dieser Erfindung können umfassender unter Bezug auf die folgende detaillierte Beschreibung verstanden werden, wenn sie zusammen mit den beigefügten Zeichnungen gelesen wird, wobei:
  • 1 ein Computersystem CS gemäß dem Stand der Technik darstellt, das zum Betreiben einer oder mehrerer Anzeigeeinrichtungen (einschließlich der Projektionseinrichtungen P1 und P2) eingerichtet ist, um ein kombiniertes Bild auf dem Schirm SCR zu bilden;
  • 2A stellt die Überlappung zweier von zwei Projektionseinrichtungen erzeugter Bilder dar;
  • 2B stellt ein von den zwei überlappenden Bildern auf dem Projektionsschirm SCR erzeugtes, zusammengesetztes Bild dar;
  • 2C stellt die Intensitätsverteilung auf dem Schirm SCR, die auf jede Projektionseinrichtung zurückzuführen ist, als eine Funktion der horizontalen Position und die kombinierte Intensitätsverteilung dar, die eine addierte Helligkeit in dem Überlappungsbereich zeigt;
  • 3 stellt das Überlappen von vier Bildern, die von vier Projektionseinrichtungen in einer „2-mal-2"-Konfiguration erzeugt werden, dar;
  • 4A stellt die Ungleichmäßigkeit des Strahlungsintensitätsmusters dar, das von einer Projektionseinrichtung erzeugt wird;
  • 4B stellt einen Lichtfleck bzw. Hotspot dar, der von dem Strahlungsmuster von 4A auf dem Schirm SCR herbeigeführt wird;
  • 4C stellt eine Intensitätsverteilung als eine Funktion der horizontalen Position entlang eines horizontalen Schnittes HS des Schirms SCR dar;
  • 5A stellt das empfangene Intensitätsmuster für zwei Betrachter dar, die an verschiedenen Positionen bezüglich einer Aufprojektion positioniert sind;
  • 5B stellt das empfangene Intensitätsmuster für zwei Betrachter dar, die an verschiedenen Positionen bezüglich eines Rück- bzw. Durchprojektionssystems positioniert sind;
  • 6A stellt einige Beispiele der vielen verschiedenen Arten von durch eine Projektionseinrichtung erzeugter Verzerrung dar, die ein physikalisches Array von Pixeln auf einem Schirm SCR aufweisen kann;
  • 6B stellt ein Beispiel der Überlappung verzerrter physikalischer Pixelarrays dar, die von zwei entsprechenden Projektionseinrichtungen erzeugt werden;
  • 7 stellt ein Computersystem dar, das ein Graphiksystem 112 gemäß der vorliegenden Erfindung zum Betreiben von einer oder mehrerer Anzeigeeinrichtungen (einschließlich eines Monitorgerätes 84 und/oder von Projektionseinrichtungen PD1 bis PD2) beinhaltet;
  • 8A ist ein vereinfachtes Blockdiagramm des Computersystems von 7;
  • 8B stellt eine Ausführungsform des Graphiksystems 112 dar, bei der Graphikkarten den Projektionseinrichtungen in einer Eins-zu-Eins-Weise entsprechen;
  • 8C stellt eine andere Ausführungsform des Graphiksystems 112 dar, bei der jede Graphikkarte zwei Projektionseinrichtungen betreibt;
  • 8D stellt noch eine andere Ausführungsform des Graphiksystems 112 dar, bei der zwei Graphikkarten zusammenwirken, um die Videoausgabe für jede Projektionseinrichtung zu erzeugen;
  • 9 ist ein Blockdiagramm, das eine Ausführungsform einer Graphikkarte 116 darstellt;
  • 10 stellt eine herkömmliche Konfiguration zur Berechnung von Pixelwerten dar;
  • 11A stellt ein Beispiel einer Ausführungsform von Überabtastung bzw. Super-Sampling dar;
  • 11B stellt eine Zufallsverteilung von Abtastungen in einem zweidimensionalen Darstellungsfeld dar;
  • 12 stellt eine Ausführungsform für den Datenfluß durch die Graphikkarte 116 dar;
  • 13 stellt eine andere Ausführungsform für den Datenfluß durch die Graphikkarte 116 dar;
  • 14 stellt drei unterschiedliche Abtastungspositionierungsschemata dar;
  • 15 stellt eine Ausführungsform eines „gestörten regulären" Abtastungspositionierungsschemas dar;
  • 16 stellt eine andere Ausführungsform eines gestörten regulären Abtastungspositionierungsschemas dar;
  • 17 stellt ein Verfahren zum gleichzeitigen Konvertieren von Abtastwerten in Pixelwerte dar;
  • 18A stellt das Traversieren eines Filterkerns 400 über eine generische Spalte I von 17 dar;
  • 18B stellt ein verzerrtes Traversieren eines Filterkerns 400 über eine generische Spalte I von 17 dar;
  • 18C stellt eine Ausführungsform eines Verfahrens zum Umgang mit Randbedingungen dar;
  • 18D stellt eine Ausführungsform eines zweiten Verfahrens zum Umgang mit Randbedingungen dar;
  • 19 ist ein Flußdiagramm, das eine Ausführungsform eines Verfahrens zum Ziehen von Abtastungen in einen überabgetasteten Abtastpuffer darstellt;
  • 20 stellt eine Ausführungsform zum Kodieren von Dreieck-Eckpunkten bzw. -Vertices dar;
  • 21 stellt eine Ausführungsform eines Verfahrens zum Berechnen von Pixelwerten aus Abtastwerten dar;
  • 22 stellt Details einer Ausführungsform einer Faltung für einen Beispielsatz von Abtastungen an einem virtuellen Pixelzentrum in dem 2-D-Darstellungsfeld dar;
  • 23A stellt ein Array von physikalischen Pixeln dar, das auf dem Schirm SCR von einer einzelnen Projektionseinrichtung in einem idealen Projektionsszenario erzeugt wird und gleichzeitig ein Array von virtuellen Pixeln in dem 2-D-Darstellungsfeld, das in Übereinstimmung bzw. Abstimmung mit der Struktur des physikalischen Pixelarray eingerichtet ist;
  • 23B stellt eine Konfiguration von virtuellen Pixelzentren dar, die ein sichtbares Teilfenster des 2-D-Darstellungsfeldes überdecken;
  • 24A stellt ein Verfahren zum Entgegenwirken gegen eine Verzerrung von physikalischen Pixeln auf dem Schirm SCR durch Verzerren der virtuellen Pixelzentren in dem 2-D-Darstellungsfeld in Abstimmung mit den physikalischen Pixelverzerrungen dar;
  • 24B stellt ein Bild dar, das in dem physikalischen Fenster PW entsprechend dem in 24A angegebenen, trapezförmigen, virtuellen Pixelbereich (VPR) angezeigt wird;
  • 25A & 25B stellen kontrahierendes Morphing virtueller Pixelzentren in dem 2-D-Darstellungsfeld entlang einer Ein-Parameter-Familie von Trapezen und eine Ein-Parameter-Familie von Pin-Balance-Verzerrungen als Reaktion auf Plus/Minus-Anpassungssignale vom Benutzer dar;
  • 25C & 25D stellen expandierendes Morphing virtueller Pixelzentren in dem 2-D-Darstellungsfeld entlang einer Ein-Parameter-Familie von Trapezen und einer Ein-Parameter- Familie von Pin-Balance-Verzerrungen als Reaktion auf Plus/Minus-Anpassungssignale vom Benutzer dar;
  • 26A stellt einen virtuellen Pixelbereich (VPR) dar, der das Ergebnis eines expandierendes Morphings eines anfänglich rechteckigen VPR wiedergibt;
  • 26B stellt einen rechteckigen Betrachtungsbereich GHJK dar, der einem physikalischen Fenster GHIL einbeschrieben ist, wobei der rechteckige Betrachtungsbereich GHJK dem 2-D-Darstellungsfeld ABDE von 26A entspricht;
  • 27A stellt den Effekt der Farbabweichung auf einem physikalischen Bild dar, das von einer Projektionseinrichtung erzeugt wird;
  • 27B stellt ein Verfahren zum Entgegenwirken gegen den Effekt der Farbabweichung durch geeignete Wahl separater Positionen für rote, blaue und grüne Pixelzentren in dem 2-D-Darstellungsfeld dar;
  • 27C stellt die Darstellung roter, blauer und grüner Pixelzentren mittels Versetzen bezogen auf die nominalen Positionen auf einem rechteckigen Gitter dar;
  • 28 stellt zwei Arrays von physikalischen Pixeln dar, die von zwei entsprechenden Projektionseinrichtungen in einer idealen und überlappenden Konfiguration erzeugt werden, und gleichzeitig zwei Arrays von virtuellen Pixeln in dem 2-D-Darstellungsfeld, die in Übereinstimmung mit der Struktur der physikalischen Pixelarrays eingerichtet sind;
  • 29 stellt zwei Mengen von virtuellen Pixelzentren (d. h. Faltungszentren) dar, eine Menge für jede der beiden Projektionseinrichtungen, die ein sichtbares Teilfenster 442 des 2-D-Darstellungsfeldes 420 überdecken;
  • 30A & 30B liefern Beispiele zweier physikalischer Pixelarrays, die entsprechend von zwei Projektionseinrichtungen auf dem Schirm SCR in einer Seite-an-Seite-überlappten Konfiguration erzeugt werden;
  • 31 stellt ein Verfahren zum Entgegenwirken gegen physikalische Verzerrung (von zwei Projektionseinrichtungen erzeugten physikalischen Pixel eigen) durch richtige Auswahl der virtuellen Pixelzentren in dem 2-D-Darstellungsfeld dar;
  • 32A stellt die Definition von Skalierungsfunktionen dar, die in einer Ausführungsform des Graphiksystems 112 verwendet werden und die zum Durchführen von Edge-Blending über einen nominal rechteckigen Überlappungsbereich hinweg eingerichtet sind;
  • 32B stellt die Definition von Skalierungsfunktionen dar, die in einer anderen Ausführungsform des Graphiksystems 112 verwendet werden und die zum Durchführen von Edge-Blending über einen verzerrten Überlappungsbereich hinweg eingerichtet sind;
  • 33 stellt eine duale Sicht auf virtuelle Pixelzentren in dem 2-D-Darstellungsfeld und physikalische Pixel auf dem Schirm SCR unter Annahme einer idealen, nicht überlappenden Konfiguration zweier Projektionseinrichtungen dar;
  • 34 stellt eine Konfiguration von virtuellen Pixelzentren (d. h. Faltungszentren) dar, die unter der Annahme zweier Projektionseinrichtungen ein sichtbares Teilfenster 422 des 2-D-Darstellungsfeldes überdecken;
  • 35A und 35B stellen Beispiele einer minimalen Überlappung zwischen den physikalischen Pixelarrays dar, die von zwei Projektionseinrichtungen auf dem Schirm SCR in einer Seite-an-Seite-Konfiguration erzeugt werden;
  • 36 stellt eine doppelte Sicht auf virtuelle Pixelzentren in dem 2-D-Darstellungsfeld und physikalische Pixel auf dem Schirm SCR unter Annahme einer minimal überlappenden (oder leicht überlappenden) Konfiguration der beiden Projektionseinrichtungen dar;
  • 37A & 37B stellen die Steuerung von Pixeln überkreuz durch die Verwendung einer physikalischen Barriere senkrecht zu dem Schirm SCR dar, die oberhalb der Begrenzungslinie L liegt;
  • 38 stellt eine Ausführungsform eines Verfahrens zum Durchführen von Lichtfleck- bzw. Hotspot-Korrektur gemäß der vorliegenden Erfindung dar;
  • 39 stellt eine "2-mal-2"-Konfiguration von vier Projektionseinrichtungen dar, die durch das Graphiksystem 112 der vorliegenden Erfindung betrieben werden;
  • 40 stellt die Entsprechung zwischen virtuellen Pixelarrays in dem 2-D-Darstellungsfeld 420 und physikalischen Pixelarrays auf dem Schirm SRC in einer Ausführungsform des Graphiksystems 112 dar, wobei vier Projektionseinrichtungen in einer überlappten "2-mal-2"-Konfiguration verwendet werden;
  • 41 stellt die Koordinaten von Begrenzungslinien für die Überlappungsbereiche in dem 2-D-Darstellungsfeld 420 für eine Ausführungsform des Graphiksystems 112 dar, wobei vier Projektionseinrichtungen in einer überlappten "2-mal-2"-Konfiguration verwendet werden;
  • 42 stellt die Entsprechung zwischen virtuellen Pixelarrays in dem 2-D-Darstellungsfeld und physikalischen Pixelarrays auf dem Schirm SRC in einer alternativen Ausführungsform des Graphiksystems 112 dar, wobei vier Projektionseinrichtungen in einer minimal überlappten (oder wenig überlappten oder möglicherweise nicht überlappten) "2-mal-2"-Konfiguration verwendet werden.
  • Während die Erfindung für verschiedene Änderungen und alternative Formen offen ist, werden spezifische Ausführungsformen davon als Beispiel in den Zeichnungen gezeigt und hier im Detail beschrieben. Es sollte sich jedoch verstehen, daß die Zeichnungen und die detaillierte Beschreibung hierzu nicht dazu gedacht ist, die Erfindung auf die bestimmten offenbarten Formen zu beschränken, sondern es im Gegenteil die Absicht ist, alle Änderungen, Äquivalenzen und Alternativen abzudecken, die in den Geist und Anwendungsbereich der vorliegenden Erfindung wie durch die angefügten Ansprüche definiert fallen. Man beachte bitte, daß die Überschriften nur Gliederungszwecken dienen und nicht dazu gedacht sind, die Beschreibung oder die Ansprüche einzuschränken. Das Wort „kann" wird in dieser Anmeldung in einem zulassenden Sinn verwendet (d. h. das Potential haben, in der Lage sein), nicht in einem verbindlichen Sinn (d. h. muß). Ähnlich werden das Wort „beinhalten" bzw. „umfassen" und Ableitungen davon hier verwendet, um „einschließlich, jedoch nicht begrenzt auf" zu bedeuten.
  • DETAILLIERTE BESCHREIBUNG VERSCHIEDENER AUSFÜHRUNGSFORMEN
  • Computersystem Figur 7
  • 7 stellt eine Ausführungsform eines Computersystems 80 dar, das dreidimensionale (3-D) Graphik gemäß der vorliegenden Erfindung durchführt. Das Computersystem 80 weist eine Systemeinheit 82 auf, die an eine Anzeigeeinrichtung 84 und/oder eine oder mehrere Projektionseinrichtungen PD1 bis PDL angeschlossen ist. Die Projektionseinrichtungen PD1 bis PDL können durch irgendeine von einer Vielzahl von Projektionstechnologien realisiert werden. Zum Beispiel können die Projektionseinrichtungen PD1 bis PDL CRT-basierte Projektoren, LCD-Projektoren, Lichtröhren- bzw. LightValve-Projektoren, Gas-Plasma-Projektoren, digitale Mikrospiegel-(DMM)-Projektoren, LCOS-Projektoren, etc. oder irgendeine Kombination davon sein. In ähnlicher Weise kann die Anzeigeeinrichtung 84 durch irgendeine aus einer Vielzahl von Anzeigetechnologien realisiert werden. Zum Beispiel kann die Anzeigeeinrichtung 84 eine CRT-Anzeige, eine LCD-Anzeige, eine Gas-Plasma-Anzeige, eine digitale Mikrospiegel-Anzeige, eine LCOS-Anzeige, etc. sein.
  • Ein Graphiksystem, das in dem Computersystem 80 beinhaltet ist, treibt die Projektionseinrichtungen PD1 bis PDL mit Videosignalen. Jede der Projektionseinrichtungen PD1 bis PDL empfängt ein entsprechendes Videosignal und zeigt einen Teil des zusammengefaßten Bildes IMG auf dem Projektionsschirm SCR an. Man beachte, daß die Projektionseinrichtungen PD1 bis PDL ihre entsprechenden Komponentenbilder auf eine andere Oberfläche als einen herkömmlichen Projektionsschirm und auf Oberflächen, die gewölbt sind, projizieren können. Zum Beispiel kann nach einer Ausführungsform der Schirm SCR optische Elemente besitzen, die dafür ausgelegt sind, das Fokussieren oder Lenken von Licht an den Betrachter zu unterstützen. Nach einer anderen Ausführungsform (nicht abgebildet) sind die Projektionseinrichtungen PD1 bis PDL auf dem Kopf eines Betrachters montiert und projizieren ihre Komponentenbilder direkt in die Augen des Betrachters. Somit stellt der Schirm SCR die Retina des Betrachters dar. Mehrere Projektionseinrichtungen (z. B. ein lineares Array von LEDs mit oszillierenden Spiegeln) können für jedes Auge verwendet werden. Die mehreren Projektionseinrichtungen, die einem einzelnen Auge entsprechen, können so eingerichtet werden, daß ihre Komponentenbilder separate Teile der Retina überdecken.
  • Verschiedene Eingabeeinrichtungen können mit dem Computersystem 80 verbunden sein einschließlich einer Tastatur 86, einer Maus 88, einer Videokamera, eines Trackballs, eines Digitalisierer, eines Tabletts, einer Sechs-Freiheitsgrad-Eingabeeinrichtung, eines Kopfnachführers, eines Augennachführers, eines Datenhandschuhs, Körpersensoren, etc. Anwendungssoftware kann von dem Computersystem 80 ausgeführt werden, um graphische 3-D-Objekte auf dem Projektionsschirm SCR und/oder der Anzeigeeinrichtung 84 anzuzeigen.
  • Wie weiter unten beschrieben kann das in dem Computersystem 80 enthaltene 3-D-Graphiksystem einen überabgetasteten Abtastpuffer und eine Mehrzahl von programmierbaren Abtastung-zu-Pixel-Berechnungseinheiten beinhalten, um die Qualität und Realitätsnähe der von den Projektionseinrichtungen PD1 bis PDL und der Anzeigeeinrichtung 84 angezeigten Bilder zu verbessern. Jede Abtastung-zu-Pixel-Berechnungseinheit kann eine Filter-Pipeline (z. B. eine Faltungs-Pipeline) oder andere Hardware zum Erzeugen von Pixelwerten (z. B. von roten, grünen und blauen Werten) basierend auf Abtastungen in dem Abtastpuffer beinhalten. Jede Abtastung-zu-Pixel- Berechnungseinheit kann Abtastungen aus dem Abtastpuffer erhalten und Pixelwerte erzeugen, die irgendeiner der Projektionseinrichtungen PD1 bis PDL oder der Anzeigeeinrichtung 84 zur Verfügung gestellt werden. Die Abtastung-zu-Pixel-Berechnungseinheiten können in einer „Echtzeit"- oder „On-the-Fly"-Weise betrieben werden.
  • Wie er hier verwendet wird, bezieht sich der Begriff „Echtzeit" auf einen Vorgang oder eine Operation, der bzw. die bei oder nahe bei der Bildwiederholfrequenz der Projektionseinrichtungen PD1 bis PDL oder der Anzeigeeinrichtung 84 durchgeführt wird. Der Begriff „On-the-Fly" bezieht sich auf einen Vorgang oder eine Operation, der bzw. die Bilder mit einer Geschwindigkeit nahe bei oder oberhalb der Minimalrate erzeugt, die für angezeigte Bewegung notwendig ist, um glatt zu erscheinen (d. h. Bewegungsverschmelzung bzw. Motion Fusion), und damit die Lichtintensität kontinuierlich erscheint (d. h. Flimmerverschmelzung bzw. Flicker Fusion). Diese Konzepte sind in dem Buch „Spatial Vision" von Russel L. De Valois und Karen K. De Valois, Oxford University Press, 1988 weiter beschrieben.
  • Blockdiagramm des Computersystems Figur 8A
  • 8A stellt ein vereinfachtes Blockdiagramm für das Computersystem 80 dar. Elemente des Computersystems 80, die für das Verständnis der vorliegenden Erfindung nicht notwendig sind, sind der Einfachheit halber unterdrückt. Das Computersystem 80 weist eine zentrale Hostverarbeitungseinheit (Central Processing Unit, CPU) 102 und ein 3-D-Graphiksystem 112 auf, das an den Systembus 104 angeschlossen ist. Ein Systemspeicher 106 kann ebenfalls an den Systembus 104 angeschlossen sein. Ein nicht-flüchtiger Speicher (nicht abgebildet) kann außerdem an den Systembus 104 angeschlossen sein.
  • Die Host-CPU 102 kann mit irgendeiner aus einer Vielzahl von Prozessortechnologien realisiert werden. Zum Beispiel kann die Host-CPU 102 einen oder mehrer Allzweck-Mikroprozessoren, parallele Prozessoren, Vektorprozessoren, digitale Signalprozessoren, etc. oder irgendeine Kombination davon aufweisen. Der Systemspeicher 106 kann ein oder mehrere Speichersubsysteme umfassen, die unterschiedliche Arten von Speichertechnologie repräsentieren. Zum Beispiel kann der Systemspeicher 106 nur-lesbaren Speicher (Read-only Memory. ROM), wahlfrei zugreifbaren Speicher (Random Access Memory, RAM) – wie statischen, wahlfrei zugreifbaren Speicher (Static Random Access Memory, SRAM), synchronen, dynamischen, wahlfrei zugreifbaren Speicher (Synchronous Dynamic Random Access Memory, SDRAM) oder dynamischen, wahlfrei zugreifbaren Rarnbus-Speicher (RDRAM) beinhalten.
  • Der Systembus 104 kann einen oder mehrere Kommunikationsbusse oder Hostcomputer-Busse aufweisen (zur Kommunikation zwischen Hostprozessoren und Speichersubsystemen). Darüber hinaus können verschiedene Peripherieeinrichtungen und Peripheriebusse mit dem Systembus 104 verbunden sein.
  • Das Graphiksystem 112 weist eine oder mehrere Graphikkarten auf, die gemäß der Prinzipien der vorliegenden Erfindung eingerichtet sind. Die Graphikkarten können an den Systembus 104 über Kreuzschienen-Umschalter bzw. Crossbar Switches oder irgendeine andere Art von Busverbindungslogik angeschlossen sein. Die Graphikkarten erzeugen einen Satz von Videosignalen, d. h.
  • ein Videosignal für jede der Projektionseinrichtungen PD1 bis PDL und die Anzeigeeinrichtung 84. Nach einer Ausführungsform weist das Graphiksystem 112 die Graphikkarten 113-1 bis 113-L auf, die an die Projektionseinrichtungen PD1 bis PDL in einer Eins-zu-Eins-Art angeschlossen sind, d. h. die generische Graphikkarte 113-I ist an die Projektionseinrichtung PDI angeschlossen und erzeugt Videosignale für sie, wie in 8B abgebildet. Darüber hinaus kann das Graphiksystem 112 eine Graphikkarte 113-0 beinhalten, die die Anzeigeeinrichtung 84 treibt.
  • Nach einer zweiten Ausführungsform weist das Graphiksystem 112 die Graphikkarten 114-1 bis 114-M auf, die an die Projektionseinrichtungen PD1 bis PDL in einer Eins-zu-Zwei-Art angeschlossen sind, d. h. die generische Graphikkarte 114-I ist an die beiden Projektionseinrichtungen PDI bis PDI-1 angeschlossen und erzeugt Videosignale für sie, wie in 8C abgebildet. Somit ist die ganze Zahl M gleich L/2.
  • Nach einer dritten Ausführungsform weist das Graphiksystem 112 die Graphikkarten 115-1 bis 115-R auf, die an die Projektionseinrichtungen PD1 bis PDL in einer Zwei-zu-Eins-Art angeschlossen sind, d. h. die Graphikkarten 115-I und 115-(I+1) können hintereinander geschaltet sein, um ein Videosignal für die Projektionseinrichtung PDI zu erzeugen, wie in 8D abgebildet. Somit ist die ganze Zahl R gleich 2L.
  • Die Graphikkarten 113, 114 und 115 können zwischen den drei soeben beschriebenen Ausführungsformen austauschbar sein. Mit anderen Worten können die Graphikkarten 113, 114 und 115 identisch oder im Wesentlichen gleich sein und können in irgendeiner der drei Ausführungsformen von oben abhängig von Änderungen in der Softwarekonfiguration verwendet werden. Alternativ können die Graphikkarten 113, 114 und 115 für ihre entsprechenden Ausführungsformen optimiert sein.
  • Die vorliegende Erfindung betrachtet eine breite Verteilung möglicher Abbildungen zwischen Graphikkarten und Projektionseinrichtungen. An einem Ende der Verteilung kann eine einzelne Graphikkarte L Projektionseinrichtungen treiben, wobei die Größe von L durch die Rechenbandbreite der Graphikkarte beschränkt ist. Am anderen Ende der Verteilung können X Graphikkarten eine einzelne Projektionseinrichtung treiben. Die Größe der ganzen Zahl X wird durch Eingangsvideobandbreite der Projektionseinrichtung festgelegt. Die X Graphikkarten können hintereinander geschaltet sein und den Aufwand für das Erzeugen des Videosignals für die einzelne Projektionseinrichtung aufteilen.
  • Darüber hinaus können die X Graphikkarten auf L Projektionseinrichtungen abgebildet werden, wobei weder X noch L gleich eins sind. Zum Beispiel können drei Graphikkarten zwei Projektionseinrichtungen treiben. Eine erste Graphikkarte und die Hälfte der Ressourcen/Bandbreite einer zweiten Graphikkarte können verwendet werden, um ein Videosignal für eine erste Projektionseinrichtung PD1 zu erzeugen, und eine dritte Graphikkarte zusammen mit der verbleibenden Hälfte der Ressourcen/Bandbreite der zweiten Graphikkarte können verwendet werden, um ein Videosignal für eine zweite Projektionseinrichtung PD2 zu erzeugen.
  • Ein Benutzer kann das Graphiksystem 112 mit irgendeiner Kombination der oben vorgeschlagenen Karte-zu-Projektor-Abbildungen konfigurieren. Zum Beispiel kann der Benutzer fünf Projektoren haben: einen mit großer Eingangsbandbreite, zwei mit mäßiger Eingangsbandbreite und zwei mit kleiner Eingangsbandbreite. Somit kann der Benutzer wählen, zwei oder mehr Graphikkarten dem Projektor mit großer Eingangsbandbreite, eine Graphikkarte jedem der Projektoren mit mäßiger Eingangsbandbreite und eine Graphikkarte den beiden Projektoren mit kleiner Eingangsbandbreite zuzuweisen.
  • Man beachte, daß die Graphikkarten, die das 3-D-Graphiksystem 112 aufweist, zusätzlich zu dem Systembus 104 an einen oder mehrere Busse verschiedener Art angeschlossen sein können. Darüber hinaus können einige oder alle Graphikkarten an einen Kommunikationsanschluß angeschlossen sein und dadurch direkt Graphikdaten aus einer externen Quelle wie dem Internet oder einem lokalen Netzwerk empfangen.
  • Die Host-CPU 102 kann Information zu/von dem Graphiksystem 112 gemäß einem programmierten Eingabe/Ausgabe-(Input/Output, I/O)-Protokoll über den Systembus 104 übertragen. Alternativ kann das Graphiksystem 112 gemäß einem Speicherdirektzugriffs-(Direct Memory Access, DMA)-Protokoll oder durch intelligentes) Buszuordnung bzw. Bus-Mastering auf den Systemspeicher 106 zugreifen.
  • Ein Graphikanwendungsprogramm, das zu einer Anwendungsprogrammschnittstelle (Application Programming Interface, API) wie OpenGL® oder Java 3D konform ist, kann auf der Host-CPU 102 ausgeführt werden und Kommandos und Daten erzeugen, die ein geometrisches Grundelement wie ein Polygon zur Ausgabe auf den Projektionseinrichtungen PD1 bis PDL und/oder der Anzeigeeinrichtung 84 definieren. Die Host-CPU 102 kann diese Graphikdaten an den Systemspeicher 106 übertragen. Danach kann die Host-CPU 102 die Graphikdaten über den Systembus 104 an das Graphiksystem 112 übertragen. Nach einer anderen Ausführungsform kann das Graphiksystem 112 Geometriedatenarrays mittels DMA-Zugriffszyklen aus dem Systemspeicher 106 lesen. Nach noch einer anderen Ausführungsform kann das Graphiksystem 112 über einen direkten Anschluß wie einen von Intel Corporation veröffentlichten Advanced Graphics Port (AGP) an den Systemspeicher 106 angeschlossen sein.
  • Das Graphiksystem 112 kann Graphikdaten aus irgendeiner von verschiedenen Quellen einschließlich der Host-CPU 102, des Systemspeichers 106 oder irgendeines anderen Speichers, externer Quellen wie ein Netzwerk (z. B. das Internet) oder eines Rundfunkmediums (z. B. Television) empfangen.
  • Wie untenstehend beschrieben wird, kann das Graphiksystem 112 dafür ausgelegt sein, effizientere Mikrocodesteuerung zu ermöglichen, was zu gesteigerter Leistungsfähigkeit zum Behandeln von eintreffenden Farbwerten führt, die von der Host-CPU 102 erzeugten Polygonen entsprechen.
  • Während das Graphiksystem 112 als Teil des Computersystems 80 abgebildet ist, kann das Graphiksystem 112 ebenso als eine alleinstehende Einrichtung ausgelegt sein. Das Graphiksystem 112 kann außerdem als eine Einzelchip-Einrichtung oder als Teil eines System-auf-einem-Chip oder eines Mehrchip-Moduls ausgelegt sein.
  • Das Graphiksystem 112 kann in irgendeinem von verschiedenen Systemen einschließlich eines Netzwerk-PC, einer Internet-Vorrichtung, eines Fernsehers (einschließlich eines HDTV- Systems oder eines interaktiven Fernsehsystems), eines Personal Digital Assistant (PDA) oder anderer Einrichtungen, die 2D- und/oder 3D-Graphik anzeigen, beinhaltet sein.
  • Graphikkarte 116 – Figur 9
  • 9 stellt ein Blockdiagramm für eine Ausführungsform einer Graphikkarte 116 gemäß der vorliegenden Erfindung dar. Die folgende Beschreibung der Graphikkarte 116 beschreibt im allgemeinen irgendeine der Graphikkarten 113, 114 und 115. Die Graphikkarte 116 kann eine Graphikverarbeitungseinheit (Graphics Processing Unit, GPU) 90, einen oder mehrere überabgetasteten Abtastpuffer 162 und eine oder mehrere Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-V aufweisen. Die Graphikkarte 116 kann außerdem zwei Digital-zu-Analog-Wandler (Digital-to-Analog Converters, DACs) 178A und 178B aufweisen. Nach anderen Ausführungsformen kann die Graphikkarte 116 mehr als zwei Digital-zu-Analog-Wandler aufweisen.
  • Die Graphikverarbeitungseinheit 90 kann irgendeine Kombination von Prozessortechnologien aufweisen. Zum Beispiel kann die Graphikverarbeitungseinheit 90 spezialisierte Graphikprozessoren oder Berechnungseinheiten, Multimedia-Prozessoren, DSPs, Allzweck-Prozessoren, programmierbare Logik, rekonfigurierbare Logik oder diskrete Logik aufweisen.
  • Nach einer Ausführungsform kann die Graphikverarbeitungseinheit 90 eine oder mehrere Darstellungseinheiten 150A-D aufweisen. Die Graphikverarbeitungseinheit 90 kann außerdem eine oder mehrere Steuereinheiten 140, einen oder mehrere Datenspeicher 152A-D und eine oder mehrere Zeitplan- bzw. Schedule-Einheiten 154 aufweisen. Der Abtastpuffer 162 kann einen oder mehrere Abtastspeicher 160A-160N aufweisen.
  • A. Steuereinheit 140
  • Die Steuereinheit 140 fungiert als die Schnittstelle zwischen der Graphikkarte 116 und dem Computersystem 80, indem sie die Datenübertragung zwischen der Graphikkarte 116 und dem Computersystem 80 steuert. In Ausführungsformen der Graphikkarte 116, die zwei oder mehr Darstellungseinheiten 150A-D aufweisen, kann die Steuereinheit 140 außerdem den von dem Computersystem 80 empfangenen Datenstrom in eine entsprechende Zahl von parallelen Strömen aufteilen, die zu den einzelnen Darstellungseinheiten 150A-D gelenkt werden. Die Graphikdaten können von dem Computersystem 80 in komprimierter Form empfangen werden. Graphikdatenkompression kann vorteilhafterweise die erforderliche Übertragungsbandbreite zwischen dem Computersystem 80 und der Graphikkarte 116 reduzieren. Nach einer Ausführungsform kann die Steuereinheit 140 dafür ausgelegt sein, den empfangenen Datenstrom in komprimierter Form aufzuteilen und zu den Darstellungseinheiten 150A-D zu lenken.
  • Die Graphikdaten können ein oder mehrere Graphikgrundelemente aufweisen. Wie er hier verwendet wird, umfaßt der Begriff Graphikgrundelemente Polygone, parametrische Oberflächen, Splines, NURBS (Non-uniform Rational B-Splines), Unterteilungsoberflächen, Fraktale, Volumengrundelementen und Partikelsysteme. Diese Graphikgrundelemente werden in dem Buch mit dem Titel „Computer Graphics: Principles and Practice" von James D. Foley et al, herausgegeben von Addison-Wesley Publishing Co., Inc., 1996, im Detail beschrieben.
  • Man beachte, daß die hier dargestellten Ausführungsformen und Beispiele der Erfindung der Einfachheit halber mittels Polygonen beschrieben werden. Es kann jedoch jede Art von Graphikgrundelementen anstelle von oder in Ergänzung zu Polygonen in diesen Ausführungsformen und Beispielen verwendet werden.
  • B. Darstellungseinheiten
  • Die Darstellungseinheiten 150A-D (hier auch als Zeicheneinheiten bezeichnet) sind dafür ausgelegt, Graphikbefehle und Daten von der Steuereinheit 140 entgegenzunehmen und dann eine Anzahl von Funktionen durchzuführen, die von der genauen Implementierung abhängen. Zum Beispiel können die Darstellungseinheiten 150A-D dafür ausgelegt sein, Dekomprimierung (wenn die empfangenen Graphikdaten in komprimierter Form übergeben werden), Transformation, Abschneiden, Beleuchtung, Texturbildung, Tiefenabschwächung bzw. Depth Cueing, Transparenzverarbeitung, Einrichtung bzw. Set-Up, Bestimmen sichtbarer Objekte und virtuelle Schirmwiedergabe graphischer Grundelemente durchzuführen, die innerhalb der Graphikdaten vorkommen.
  • Abhängig von der Art der empfangenen, komprimierten Graphikdaten können die Darstellungseinheiten 150A-D dafür ausgelegt sein, arithmetische Dekodierung, Lauflängendekodierung, Huffman-Dekodierung und Verzeichnisdekodierung (z. B. LZ77, LZSS, LZ78 und LZW) durchzuführen. Die Darstellungseinheiten 150A-D können außerdem dafür ausgelegt sein, Graphikdaten zu dekodieren, die mittels geometrische Kompression komprimiert wurden. Eine geometrische Kornpression von 3D-Graphikdaten kann eine beträchtliche Reduktion der Datengröße erzielen, während das meiste der Bildqualität erhalten bleibt. Eine Reihe von Verfahren zum Komprimieren und Dekomprimieren von 3D-Geometrie wird beschrieben in:
    U.S.-Patent-Nr. 5.793.371, Anmeldungs-Seriennr. 08/511.294, eingereicht am 4. August 1995, mit dem Titel „Method And Apparatus For Geometric Compression Of Three-Dimensional Graphics Data," 00;
    und
    U.S.-Patent-Anmeldungs-Seriennr. 09/095.777, eingereicht am 11. Juni 1998, mit dem Titel „Compression of Three-Dimensional Geometry Data Representing a Regulary Tiled Surface Portion of a Graphical Object."
  • In Anwendungsformen der Graphikkarte 116, die Dekompression unterstützen, werden die von jeder Darstellungseinheit 150 entgegengenommenen Graphikdaten in eine oder mehrere Graphik-„Grundelemente" dekomprimiert, die danach wiedergegeben werden. Der Begriff Grundelemente bezieht sich auf Komponenten von Objekten, die deren Form definieren (z. B. Punkte, Linien, Dreiecke, Polygone in zwei und drei Dimensionen, Polyeder oder Freiform-Oberflächen in drei Dimensionen). Jede Darstellungseinheit 150 kann irgendeine geeignete Art von Hochleistungs-Prozessor sein (z. B. ein spezialisierter Graphikprozessor oder eine Berechnungseinheit, ein Multimedia-Prozessor, ein digitaler Signalprozessor oder ein Allzweck-Prozessor).
  • Transformation bezieht sich auf das Anwenden einer geometrischen Operation auf ein Grundelement oder ein Objekt, das einen Satz von Grundelementen aufweist. Zum Beispiel kann ein Objekt, das von einem Satz von Eckpunkten in einem lokalen Koordinatensystem repräsentiert wird, mittels einer geeigneten Folge von Verschiebungs-, Rotations- und Skalierungstransformationen mit beliebiger Position, Orientierung und Größe in einen Weltraum bzw. den wirklichen Raum eingebettet werden. Transformation kann außerdem Spiegelung, Verdrehen oder irgendeine andere affine Transformation umfassen. Allgemeiner können Transformationen nicht-lineare Operationen umfassen.
  • Belichtung bezieht sich auf das Berechnen der Ausleuchtung von Objekten. Belichtungsberechnungen führen zu einer Zuweisung von Farbe und/oder Helligkeit zu Objekten oder zu ausgewählten Punkten (z. B. Eckpunkten) auf Objekten. Abhängig vom verwendeten Schattierungsalgorithmus (z. B. konstante, Gourand- oder Phong-Schattierung) kann die Belichtung an einer Reihe von unterschiedlichen Punkten ausgewertet werden. Wenn zum Beispiel konstante Schattierung verwendet wird (d. h. der beleuchteten Oberfläche eines Polygons wird ein konstanter Ausleuchtungswert zugewiesen), dann braucht die Belichtung nur einmal je Polygon berechnet zu werden. Wenn Gourand-Schattierung verwendet wird, dann wird die Belichtung einmal je Eckpunkt berechnet. Die Phong-Schattierung berechnet die Belichtung auf Basis jeder Abtastung.
  • Abschneiden bezieht sich auf das Entfernen von Graphikgrundelementen oder Teilen von Graphikgrundelementen, die außerhalb eines 3-D-Betrachtungs- bzw. Blickvolumen im wirklichen Raum liegen. Das 3-D-Betrachtungsvolumen kann denjenigen Teil des wirklichen Raumes repräsentieren, der für einen virtuellen Beobachter sichtbar ist, der im wirklichen Raum positioniert ist. Zum Beispiel kann das Betrachtungsvolumen ein Vollkegel sein, der von einem 2-D-Betrachtungsfenster und einem in dem wirklichen Raum gelegenen Blickpunkt erzeugt wird. Den Vollkegel kann man sich als die Vereinigung aller Strahlen vorstellen, die von dem Blickpunkt ausgehen und das Betrachtungsfenster passieren. Der Blickpunkt kann die Stelle des virtuellen Beobachters im wirklichen Raum repräsentieren. Grundelemente und Teile von Grundelementen, die außerhalb des 3-D-Betrachtungsvolumens liegen, sind aktuell nicht sichtbar und können von der weiteren Verarbeitung ausgeschlossen werden. Grundelemente und Teile von Grundelementen, die innerhalb des 3-D-Betrachtungsvolumens liegen, sind Kandidaten für die Projektion auf das 2-D-Blickfenster.
  • Um die Abschneide- und Projektionsberechnungen zu vereinfachen, können Grundelemente in ein zweites, bequemeres Koordinatensystem transformiert werden, das hier als das Darstellungsfeld-Koordinatensystem bezeichnet wird. In Darstellungsfeld-Koordinaten wird das Betrachtungsvolumen auf ein kanonisches 3-D-Darstellungsfeld abgebildet, das bequemer sein kann, um mit bzw. im Bezug dazu abzuschneiden.
  • Graphikgrundelemente oder Teile von Grundelementen, die die Abschneideberechnung überstehen, können auf ein 2-D-Darstellungsfeld abhängig vom Ergebnis der Bestimmung der Sichtbarkeit projiziert werden. Anstelle von Abschneiden in 3-D können Graphikgrundelemente auf eine 2-D-Darstellungsebene projiziert werden (die das 2-D-Darstellungsfeld enthält) und dann bezogen auf das 2-D-Darstellungsfeld abgeschnitten werden.
  • Virtuelle Anzeigewiedergabe bezieht sich auf Berechnungen, die durchgeführt werden, um Abtastungen für projizierte Graphikgrundelemente zu erzeugen. Zum Beispiel können die Eckpunkte eines Dreiecks in 3-D auf das 2-D-Darstellungsfeld projiziert werden. Das projizierte Dreieck kann mit Abtastungen besetzt werden, und Werte (z. B. Rot-, Grün-, Blau- und z-Werte) können den Abtastungen basierend auf die entsprechende Werte zugewiesen werden, die bereits für die projizierten Eckpunkte bestimmt wurden. (Zum Beispiel kann der Rotwert für jede Abtastung in dem projizierten Dreieck aus den bekannten Rotwerten der Eckpunkte interpoliert werden.) Diese Abtastwerte für das projizierte Dreieck können in dem Abtastpufter 162 gespeichert werden. Ein virtuelles Bild akkumuliert sich in dem Abtastpuffer 162, während aufeinanderfolgende Grundelemente wiedergegeben werden. Somit sagt man, das 2-D-Darstellungsfeld ist ein virtueller Schirm, auf dem das virtuelle Bild wiedergegeben wird. Die Abtastwerte, aus denen das virtuelle Bild besteht, werden in dem Abtastpuffer 162 gespeichert. Punkte in dem 2-D-Darstellungsfeld werden mittels virtueller Schirmkoordinaten X und Y beschrieben und man sagt, sie befinden sich in dem virtuellen Schirmraum.
  • Wenn das virtuelle Bild vollständig ist, z. B. wenn alle Graphikgrundelemente wiedergegeben wurden, können die Abtastung-zu-Pixel-Berechnungseinheiten 170 auf die Abtastungen, aus denen das virtuelle Bild besteht, zugreifen und können die Abtastungen filtern, um Pixelwerte zu erzeugen. Mit anderen Worten können die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein räumliche Faltung des virtuellen Bildes bezogen auf einen Faltungskern C(X,Y) durchführen, um Pixelwerte zu erzeugen. Zum Beispiel kann ein Rotwert RP für ein Pixel P an jeder Stelle (XP, YP) in dem virtuellen Schirmraum basierend auf folgender Relation berechnet werden
    Figure 00310001
    wobei die Summe an den Abtastungen (Xk,Yk) in der Umgebung der Stelle (XP,YP) ausgewertet wird. Da der Faltungskern C(X,Y) nur in einer Umgebung der Ursprungs ungleich Null ist, kann der verschobene Kern C(X-XP, Y-YP) nur in einer Umgebung der Stelle (XP,YP) Werte ungleich Null annehmen. Ähnliche Summierungen können parallel zu der Summierung der roten Pixelwerte durchgeführt werden, um grüne und blaue Pixelwerte mittels der grünen bzw. blauen Abtastwerte zu berechnen.
  • Der Wert E ist ein Normalisierungswert, der gemäß der folgenden Relation berechnet werden kann: E = ΣC(Xk - Xp,Yk -Yp)wobei die Summe für dieselben Abtastungen (Xk,Yk) wie bei der Summierung der roten Pixelwerte oben ausgewertet wird. Die Summierung für den Normalisierungswert E kann parallel zu den Surnmierungen der roten, grünen und/oder blauen Pixelwerte durchgeführt werden. Die Stelle (XP,YP) kann als ein Pixelzentrum oder ein Pixelursprung bezeichnet werden. In dem Fall, daß der Faltungskern C(X,Y) symmetrisch bezüglich des Ursprungs (0,0) liegt, wird der Begriff Pixelzentrum bevorzugt.
  • Die Pixelwerte können an eine oder mehrere Projektionseinrichtungen PD1 bis PDL zur Anzeige auf dem Projektionsschirm SCR übergeben werden. Jede der Projektionseinrichtungen erzeugt einen Teil des ganzheitlichen Bildes IMG. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können außerdem Pixelwerte für die Anzeige auf der Anzeigeeinrichtung 84 erzeugen.
  • In der in 9 abgebildeten Ausführungsform der Graphikkarte 116 berechnen die Darstellungseinheiten 150A-D Abtastwerte anstelle von Pixelwerten. Dies ermöglicht es den Darstellungseinheiten 150A-D, Überabtastung durchzuführen, d. h. mehr als eine Abtastung je Pixel zu berechnen. Überabtastung im Kontext der vorliegenden Erfindung wird unten ausführlicher diskutiert. Mehr Einzelheiten über Überabtastung werden in den folgenden Büchern diskutiert: „Principles of Digital Image Synthesis" von Andrew S. Glassner, 1995, Morgan Kaufman Publishing (Band 1); „The Renderman Companion" von Steve Upstill, 1990, Addison Wesley Publishing; und „Advanced Renderman: Beyond the Companion" von Anthony A. Apodaca.
  • Der Abtastpuffer 162 kann doppelt gepuffert sein, so daß die Darstellungseinheiten 150A-D Abtastungen für ein erstes virtuelles Bild in einen ersten Teil des Abtastpuffers 162 schreiben können, während ein zweites virtuelles Bild gleichzeitig von den Abtastung-zu-Pixel-Berechnungseinheiten 170 aus einem zweiten Teil des Abtastpuffers 162 gelesen wird.
  • Man beachte, daß das 2-D-Darstellungsfeld und das virtuelle Bild, das mit Abtastungen in den Abtastpuffer 162 wiedergegeben wird, einem Bereich entsprechen können, der größer ist als derjenige Bereich, der physikalisch als ganzheitliches Bild IMG oder angezeigtes Bild DIM angezeigt wird. Zum Beispiel kann das 2-D-Darstellungsfeld ein sichtbares Teilfenster enthalten. Das sichtbare Teilfenster kann dem ganzheitlichen Bild IMG und/oder dem angezeigten Bild DIM entsprechen, während der Randbereich des 2-D-Darstellungsfeldes (außerhalb des sichtbaren Teilfensters) verschiedene Effekte wie Schwenken und Zoomen ermöglichen kann. Mit anderen Worten wird nur derjenige Teil des virtuellen Fensters, der innerhalb des sichtbaren Teilfensters liegt, physikalisch angezeigt. Nach einer Ausführungsform ist das sichtbare Teilfenster gleich dem gesamten 2-D-Darstellungsfeld. In diesem Fall wird das gesamte virtuelle Bild physikalisch angezeigt.
  • C. Datenspeicher
  • Jede der Darstellungseinheiten 150A–D kann an eine entsprechende Instanz der Befehls- und Datenspeicher 152A–D angeschlossen sein. Nach einer Ausführungsform kann jeder der Speicher 152A–D dafür ausgelegt sein, sowohl Daten als auch Befehle für eine entsprechende Instanz der Darstellungseinheiten 150A–D zu speichern. Während Implementierungen voneinander abweichen können, kann nach einer Ausführungsform jeder Datenspeicher 152A–D zwei 8Mbyte SDRAMs aufweisen, die eine Gesamtheit von 16 MByte an Speicher für jede Darstellungseinheit 150A–D bereitstellen. Nach einer anderen Ausführungsform können RDRAMs (Rambus-DRAMs) verwendet werden, um die Dekompressions- und Einricht-Operationen jeder Darstellungseinheit zu unterstützen, während SDRAMs verwendet werden können, um die Zeichenfunktionen jeder Darstellungseinheit zu unterstützen. Die Datenspeicher 152A–D können auch als Textur- und Darstellungsspeicher 152A–D bezeichnet werden.
  • D. Zeitplan- bzw. Schedule-Einheit
  • Die Zeitplan-Einheit 154 kann zwischen die Darstellungseinheiten 150A–D und die Abtastspeicher 160A–N geschaltet sein. Die Zeitplan-Einheit 154 ist dafür ausgelegt, die vervollständigten Abtastungen in eine Reihenfolge zu bringen und sie in den Abtastspeichern 160A–N zu speichern. Man beachte, daß in größeren Konfigurationen mehrere Zeitplan-Einheiten 154 parallel verwendet werden können. Nach einer Ausführungsform kann die Zeitplan-Einheit 154 als ein Kreuzschienen-Umschalter bzw. Crossbar-Switch implementiert werden.
  • E. Abtastspeicher
  • Der überabgetastete Abtastpuffer 162 weist Abtastspeicher 160A–160N auf, die dafür ausgelegt sind, die Mehrzahl von Abtastungen zu speichern, die von den Darstellungseinheiten 150A-D erzeugt wurden. Wie er hier verwendet wird, bezieht sich der Begriff „Abtastpuffer" auf einen oder mehrere Speicher, die Abtastungen speichern. Wie zuvor angemerkt, können Abtastungen gefiltert werden, um jeden Ausgabe-Pixelwert zu bilden. Die Ausgabe-Pixelwerte können einer oder mehreren von den Projektionseinrichtungen PD1 bis PDL zur Anzeige auf dem Projektionsschirm SCR zur Verfügung gestellt werden. Die Ausgabe-Pixelwerte können außerdem der Anzeigeeinrichtung 84 zur Verfügung gestellt werden. Der Abtastpuffer 162 kann dafür ausgelegt sein, Überabtastung, kritische Abtastung oder Unterabtastung bezüglich der Pixelauflösung zu unterstützen. Mit anderen Worten kann der durchschnittliche Abstand zwischen den Abtastungen (Xk,Yk) in dem virtuellen Bild (gespeichert in dem Abtastpuffer 162) kleiner als, gleich oder größer als der durchschnittliche Abstand zwischen den Pixelzentren in dem virtuellen Schirmraum sein. Darüber hinaus kann eine einzelne Abtastung zu mehreren Ausgabe-Pixelwerten beitragen, weil der Faltungskern C(X,Y) über eine Umgebung hinweg, die mehrere Pixelzentren überspannt, funktionale Werte ungleich Null annehmen kann.
  • Die Abtastspeicher 160A–160N können jede von verschiedenen Speicherarten (z. B. SDRAMs, SRAMs, RDRAMs, 3DRAMs oder 3DRAMs der nächsten Generation) in unterschiedlichen Größen aufweisen. Nach einer Ausführungsform ist jede Zeitplan-Einheit 154 an vier Bänke von Abtastspeichern angeschlossen, wobei jede Bank vier 3DRAM-64-Speicher aufweist. Zusammen können die 3DRAM-64-Speicher einen 116 Bit tiefen, überabgetasteten Abtastpuffer bilden, der mehrere Abtastungen je Pixel speichert. Zum Beispiel kann nach einer Ausführungsform jeder Abtastspeicher 160A–160N bis zu sechzehn Abtastungen je Pixel speichern.
  • Die 3DRAM-64-Speicher sind spezialisierte Speicher, die dafür ausgelegt sind, vollständige interne Doppelpufferung mit einfach gepuffertem Z in einem Chip zu unterstützen. Der doppelt gepufferte Teil weist zwei RGBX-Puffer auf, wobei X ein vierter Kanal ist, der verwendet werden kann, um andere Information (z. B. Alpha) zu speichern. Die 3DRAM-64-Speicher verfügen außerdem über eine Abgleichtabelle, die Fenster-ID-Information aufnimmt und einen internen 2-1- oder 3-1-Multiplexer steuert, der auswählt, von welchem Speicher Inhalte ausgegeben werden. Die 3DRAM-64-Speicher sind 3DRAM-Speicher der nächsten Generation, die bald bei der Halbleitergruppe der Mitsubishi Electric Corporation verfügbar sein sollen. Nach einer Ausführungsform sind 32 in Kombination verwendete Chips ausreichend, um einen 1280×1024 großen, doppelt gepufferten, überabgetasteten Abtastpuffer zu erstellen, der Abtastdichten bis zu acht Abtastungen je Pixel unterstützt.
  • Da die 3DRAM-64-Speicher intern doppelt gepuffert sind, sind die Eingangsstifte für jeden der beiden Bildspeicher in dem doppelt gepufferten System per Zeitmultiplex gesteuert (mittels Multiplexern innerhalb der Speicher). Die Ausgangsstifte können in gleicher Weise per Zeitmultiplex gesteuert sein. Dies ermöglicht eine reduzierte Stiftanzahl, während immer noch die Vorteile der doppelten Pufferung zur Verfügung stehen. Die 3DRAM-64-Speicher reduzieren die Stiftanzahl ferner dadurch, daß sie keine z-Ausgangsstifte haben. Da der z-Vergleich und die Speicherpufferauswahl intern abgehandelt werden, kann die Verwendung der 3DRAM-64-Speicher die Konfiguration des Abtastpuffers 162 vereinfachen. Zum Beispiel kann der Abtastpuffer 162 nur wenig oder keine Auswahllogik auf der Ausgangsseite der 3DRAM-64-Speicher erfordern. Die 3DRAM-64-Speicher reduzieren außerdem die Speicherbandbreite, da Information in einen 3DRAM-64-Speicher ohne den traditionellen Vorgang des Auslesens von Daten, Durchführens eines z-Vergleichs und anschließendem Zurückschreibens der Daten geschrieben werden kann. Stattdessen können die Daten einfach in den 3DRAM-64-Speicher geschrieben werden, wobei der Speicher die oben beschriebenen Schritte intern durchführt.
  • In anderen Ausführungsformen der Graphikkarte 116 können jedoch andere Speicher (z. B. SDRAMs, SRAMs, RDRAMs oder 3DRAMs der aktuellen Generation) verwendet werden, um den Abtastpuffer 162 zu bilden.
  • Die Graphikverarbeitungseinheit 90 kann dafür ausgelegt sein, eine Mehrzahl von Abtastpositionen gemäß eines bestimmten Abtastpositionierungsschemas zu erzeugen (z. B. ein reguläres Gitter, ein gestört reguläres Gitter, etc.). Alternativ können die Abtastpositionen (oder Abstände bzw. Offsets, die zu regulären Gitterpositionen addiert werden, um die Abtastpositionen zu bilden) aus einem Abtastpositionsspeicher (z. B. einer RAM/ROM-Tabelle) gelesen werden. Beim Empfang eines darzustellenden Polygons bestimmt die Graphikverarbeitungseinheit 90, welche Abtastungen basierend auf den Abtastpositionen innerhalb des Polygons liegen. Die Graphikverarbeitungseinheit 90 gibt die Abtastungen, die innerhalb des Polygons liegen, wieder und speichert die wiedergegebenen Abtastungen in den Abtastspeichern 160A–N. Man beachte, daß die Begriffe darstellen und zeichnen, wie sie hier verwendet werden, austauschbar verwendet werden und sich auf das Berechnen von Farbwerten für die Abtastungen beziehen. Tiefenwerte, Alphawerte und andere Werte je Abtastung können ebenso in dem Darstellungs- oder Zeichenvorgang berechnet werden.
  • F. Abtastung-zu-Pixel-Berechnungseinheiten
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-V (gemeinsam als Abtastung-zu-Pixel-Berechnungseinheiten 170 bezeichnet) können zwischen die Abtastspeicher 160A–N und die DACs 178-1 bis 178-L geschaltet sein. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 sind dafür ausgelegt, ausgewählte Abtastungen aus den Abtastspeichern 160A–N zu lesen und dann eine Filteroperation (z. B. eine Faltung) auf den Abtastungen durchzuführen, um die Ausgabepixelwerte zu erzeugen, die den DACs 178-1 bis 178-L zur Verfügung gestellt werden. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können programmierbar sein, um zu ermöglichen, daß sie verschiedene Filterfunktionen zu unterschiedlichen Zeitpunkten abhängig von der Art der gewünschten Ausgabe durchführen.
  • Nach einer Ausführungsform können die Abtastung-zu-Pixel-Berechnungseinheiten 170 einen Überabtastungs-Rekonstruktions-Bandpaßfilter implementieren, um die überabgetasteten Abtastpufferdaten (in den Abtastspeichern 160A–160N gespeichert) in Pixelwerte zu konvertieren. Die Unterstützung des Bandpaßfilters kann einen rechteckigen Bereich in dem virtuellen Schirmraum überdecken, der MP Pixel hoch und NP Pixel breit ist. Somit ist die Anzahl von Abtastungen, die von dem Bandpaßfilter überdeckt werden, ungefähr gleich MPNPS, wobei S die Anzahl von Abtastungen je Pixel ist. Eine Vielzahl von Werten für MP, NP und S werden betrachtet. Zum Beispiel ist nach einer Ausführungsform des Bandpaßfilters MP=NP=5. Man beachte, daß bei gewissen Abtastungspositionierungsschemata (siehe die Diskussion in Verbindung mit den 10 & 11) die Anzahl von Abtastungen, die innerhalb der Filterunterstützung liegen, variieren kann, wenn das Filterzentrum (d. h. Pixelzentrum) in dem virtuellen Schirmraum bewegt wird.
  • Nach anderen Ausführungsformen können die Abtastung-zu-Pixel-Berechnungseinheiten 170 eine ausgewählte Anzahl von Abtastungen filtern, um ein Ausgabepixel zu berechnen. Die ausgewählten Abtastungen können mit einer räumlichen Gewichtungsfunktion multipliziert werden, die basierend auf ihrer Position bezüglich des Zentrums des Pixels, das berechnet wird, Gewichte liefert.
  • Die von den Abtastung-zu-Pixel-Berechnungseinheiten 170 durchgeführten Filteroperationen können irgendeinen von einer Vielzahl von Filtern verwenden, entweder allein oder in Kombination. Zum Beispiel können die Filteroperationen Faltung mit einem Schachtelfilter, einem Zeltfilter, einem zylindrischen Filter, einem Konusfilter, einem Gaußschen Filter, einem Catmull-Rom-Filter, einem Mitchell-Netravali-Filter, einem Spaltfilter mit Fenstern, etc. umfassen. Darüber hinaus kann die Unterstützung der von den Abtastung-zu-Pixel-Berechnungseinheiten 170 verwendeten Filter zirkulär, elliptisch, rechteckig (z. B. quadratisch), dreieckig, sechseckig, etc. sein.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können außerdem mit einem oder mehreren der folgenden Eigenschaften bzw. Funktionen konfiguriert sein: Farbabgleich mittels Pseudo-Farbtabellen, direkte Farbe, inverse Gammakorrektur, Filterung von Abtastungen zu Pixeln und Konvertierung von Pixeln in nicht-linearen Lichtraum. Andere Eigenschaften bzw. Funktionen der Abtastung-zu-Pixel-Berechnungseinheiten 170 können programmierbare Videotaktgeneratoren, programmierbare Pixeltakt-Synthetisierer, Cursorgeneratoren und Kreuzschienenfunktionen einschließen. Sobald die Abtastung-zu-Pixel-Berechnungseinheiten 170 die Zeitsteuerung und Farbe jedes Pixels behandelt haben, werden die Pixel an die DACs 178A und 178B ausgegeben.
  • G. Digital-zu-Analog-Wandler
  • Die Digital-zu-Analog-Wandler (Digital-to-Analog Converters, DACs) 178A und 178B – gemeinsam als DACs 178 bezeichnet – fungieren als die letzte Ausgabestufe der Graphikkarte 116. Die DACs 178 übersetzen digitale Pixeldaten, die von den Berechnungseinheiten 170 entgegengenommen werden, in analoge Videosignale. Der DAC 178A ist an den Ausgabevideokanal A angeschlossen, und der DAC 178B ist an den Ausgabevideokanal B angeschlossen. Der DAC 178A kann einen ersten Strom von digitalen Pixeldaten aus einer oder mehreren Berechnungseinheiten 170 empfangen und konvertiert den ersten Strom in ein erstes Videosignal, das auf dem Ausgabevideokanal A aktiv wird. In ähnlicher Weise kann der DAC 178B einen zweiten Strom von digitalen Pixeldaten aus einer oder mehreren Berechnungseinheiten 170 empfangen und konvertiert den zweiten Strom in ein zweites Videosignal, das auf dem Ausgabevideokanal B aktiv wird. Anstatt die Zuordnung von Berechnungseinheiten 170 zu Ausgabevideokanälen zu fixieren, hat die bevorzugte Aus führungsform der Graphikkarte 116 eine Hardwarearchitektur, die es ermöglicht, daß jede Berechnungseinheit 170 jeweils pro Session zu einem der beiden Ausgabevideokanäle zugewiesen werden kann. Zum Beispiel können alle Berechnungseinheiten 170 dem Videokanal A zugewiesen werden, wobei die Graphikkarte 116 in dem in 8B abgebildeten Szenario mit einer Karte pro Projektor zu verwenden ist. In Situationen, in denen die Graphikkarte in dem Szenario mit zwei Projektoren pro Karte von 18C zu verwenden ist, kann eine erste Teilmenge der Berechnungseinheiten 170 dem Videokanal A zugewiesen werden, und die verbleibenden Berechnungseinheiten können dem Videokanal B zugewiesen werden.
  • Nach der bevorzugten Ausführungsform stellen die Abtastung-zu-Pixel-Berechnungseinheiten 170 ohne einen dazwischen liegenden Bildspeicher den DACs 178 Pixelwerte zur Verfügung. Nach einer alternativen Ausführungsform geben die Abtastung-zu-Pixel-Berechnungseinheiten 170 jedoch die Pixelwerte vor der Anzeige an einen herkömmlichen Bildspeicher aus.
  • Man beachte, daß in einer Ausführungsform die DACs 178 umgangen oder völlig weggelassen werden können, um die digitalen Pixeldaten anstatt analoger Videosignale auszugeben. Dies kann nützlich sein, wo die Projektionseinrichtungen PD1 bis PDL auf einer digitalen Technologie basieren (z. B. eine LCD-artige Anzeige, eine LCOS-Anzeige oder eine digitale Mikrospiegel-Anzeige).
  • Wie oben angedeutet können mehrere Graphikkarten zusammen verkettet werden, so daß sie sich den Aufwand des Erzeugens von Videodaten für eine Projektions-/Anzeigeeinrichtung teilen. Somit beinhalten in der bevorzugten Ausführungsform die Graphikkarte 116 eine erste Schnittstelle zum Empfang zweier digitaler Pixeldatenströme von irgendeiner vorhergehenden Graphikkarte in der Kette und eine zweite Schnittstelle zum Übertragen zweier digitaler Pixeldatenströme an irgendeine nachfolgende Graphikkarte in der Kette.
  • Man beachte, daß verschiedene Ausführungsformen der Graphikkarte 116 mit variierender Anzahl von Darstellungseinheiten 150, variierender Anzahl von Berechnungseinheiten 170, mehr als zwei Videoausgabekanälen, etc. betrachtet werden.
  • Überabtastung: Figuren 10–11
  • 10 stellt einen Teil eines virtuellen Schirmraumes in einem nicht überabgetasteten Beispiel dar. Die Punkte bezeichnen Abtastpositionen und die rechteckigen Kästen, die dem virtuellen Schirmraum überlagert sind, definieren Pixelgrenzen bzw. -ränder. Eine Abtastung ist im Zentrum jedes Pixels gelegen, und Werte von Rot, Grün, Blau, z, etc. werden für die Abtastung berechnet. Zum Beispiel ist die Abtastung 74 dem Zentrum von Pixel 70 zugewiesen. Obwohl die Darstellungseinheiten 150 möglicherweise Werte für nur eine Abtastung je Pixel berechnen, können die Abtastung-zu-Pixel-Berechnungseinheiten 170 immer noch Ausgabepixelwerte basierend auf mehreren Abtastungen berechnen, z. B. indem sie einen Faltungsfilter verwenden, dessen Träger einige Pixel überspannt.
  • In 11A ist ein Beispiel einer Ausführungsform von Überabtastung dargestellt. In dieser Ausführungsform werden zwei Abtastungen je Pixel berechnet. Die Abtastungen sind gemäß einem regulären Gitter verteilt. Auch wenn es in der Figur mehr Abtastungen als Pixel gibt, könnten Ausga bepixelwerte mittels einer Abtastung je Pixel berechnet werden, z. B. indem alle bis auf die dem Zentrum jedes Pixels am nächsten gelegene Abtastung hinausgeworfen werden. Es ergeben sich jedoch eine Reihe von Vorteilen aus dem Berechnen von Pixelwerten basierend auf mehreren Abtastungen.
  • Ein Unterstützungs- bzw. Trägerbereich 72 wird über das Pixel 70 gelegt und stellt den Träger eines Filters dar, das bei dem Pixel 70 lokalisiert ist. Der Träger eines Filters ist die Menge von Positionen, über die der Filter (d. h. der Filterkern) Werte ungleich Null annimmt. In diesem Beispiel ist der Trägerbereich 72 eine runde Scheibe. Die Ausgabepixelwerte (d. h. die Rot-, Grün-, Blau- und z-Werte) für das Pixel 70 werden nur durch die Abtastungen 74A und 74B bestimmt, weil diese die einzigen Abtastungen sind, die in den Trägerbereich 72 fallen. Diese Filteroperation kann vorteilhafterweise die Realitätsnähe eines angezeigten Bildes durch Glätten abrupter Kanten in dem angezeigten Bild verbessern (d. h. durch Durchführen von Anti-Aliasing). Die Filteroperation kann einfach den Durchschnitt der Werte der Abtastungen 74A–B nehmen, um die entsprechenden Ausgabewerte der Pixels 70 zu bilden. Allgemeiner kann die Filteroperation eine gewichtete Summe der Werte der Abtastungen 74A–B erzeugen, wobei der Beitrag jeder Abtastung gemäß einer bestimmten Funktion der Abtastpositionen (oder des Abstandes der Abtastungen) bezogen auf das Zentrum von Pixel 70 gewichtet wird. Der Filter und somit der Trägerbereich 72 kann für jedes Ausgabepixel, das berechnet wird, neu positioniert werden. Mit anderen Worten kann das Filterzentrum das Zentrum jedes Ausgabepixels, für das Pixelwerte zu berechnen sind, aufsuchen. Andere Filter und Filterpositionierungsschemata sind ebenso möglich und werden auch betrachtet.
  • In dem Beispiel von 11A gibt es zwei Abtastungen je Pixel. Im allgemeinen gibt es jedoch keine Notwendigkeit, daß die Anzahl von Abtastungen zu der Anzahl von Pixeln in Beziehung steht. Die Anzahl von Abtastungen kann völlig unabhängig von der Anzahl von Pixeln sein. Zum Beispiel kann die Anzahl von Abtastungen kleiner als die Anzahl von Pixeln sein.
  • In 11B wird eine andere Ausführungsform von Überabtastung dargestellt. In dieser Ausführungsform sind die Abtastungen zufällig positioniert. Somit kann die Anzahl von Abtastungen, die zum Berechnen der Ausgabepixelwerte verwendet werden, von Pixel zu Pixel schwanken. Die Darstellungseinheiten 150A-D berechnen die Farbinformation an jeder Abtastposition.
  • Überabgetasteter Abtastpuffer mit Echtzeit-Faltung Figuren 12–19
  • 12 stellt eine mögliche Konfiguration für den Datenfluß durch eine Ausführungsform der Graphikkarte 116 dar. Wie die Figur zeigt, werden Geometriedaten 350 von der Graphikkarte 116 empfangen und verwendet, um den Zeichenvorgang 352 durchzuführen. Der Zeichenvorgang 352 wird von einer oder mehreren Steuereinheiten 140, Darstellungseinheiten 150, Datenspeichern 152 und der Zeitplaneinheit 154 implementiert. Die Geometriedaten 350 umfassen Daten für ein oder mehrere Polygone. Jedes Polygon weist eine Mehrzahl von Eckpunkten bzw. Vertices auf (z. B. drei Eckpunkte im Fall eines Dreiecks), wovon einige zwischen mehreren Polygonen gemeinsam genutzt werden können. Daten wie z.B. x-, y- und z-Koordinaten, Farbdaten, Beleuchtungsdaten und Texturabbildungsinformation können für jeden Eckpunkt enthalten sein.
  • Zusätzlich zu den Eckpunktdaten empfängt der Zeichenvorgang 352 (der von den Darstellungseinheiten 150 durchgeführt werden kann) außerdem Abtastpositionsinformation aus einem Abtastpositionsspeicher 354. Die Abtastpositionsinformation definiert den Ort der Abtastungen in dem virtuellen Schirmraum, d. h. in dem 2-D-Darstellungsfeld. Der Zeichenvorgang 352 wählt die Abtastungen aus, die in das aktuell wiedergegebene Polygon fallen, berechnet einen Satz von Werten (z. B. Rot-, Grün-, Blau-, z-, Alpha- und/oder Feldtiefen-Information) für jede dieser Abtastungen basierend auf ihren jeweiligen Positionen innerhalb des Polygons. Zum Beispiel kann der z-Wert einer Abtastung, die innerhalb eines Dreiecks liegt, aus dem bekannten z-Wert der drei Eckpunkte interpoliert werden. Jeder Satz von berechneten Abtastwerten wird in dem Abtastpuffer 162 gespeichert.
  • Nach einer Ausführungsform ist der Abtastpositionsspeicher 354 innerhalb der Darstellungseinheiten 150A-D enthalten. Nach einer anderen Ausführungsform kann der Abtastpositionsspeicher 354 als Teil der Speicher 152A-152D oder als ein separater Speicher realisiert werden.
  • Der Abtastpositionsspeicher 354 kann Abtastpositionen mittels ihrer virtuellen Schirmkoordinaten (X,Y) speichern. Alternativ kann der Abtastpositionsspeicher 354 dafür ausgelegt sein, nur Abstände dX und dY für die Abtastungen bezüglich der Positionen auf einem regulären Gitter zu speichern. Nur die Abstände zu speichern, kann weniger Speicherplatz verwenden als das Speichern der ganzen Koordinaten (X,Y) für jede Abtastung. Die in dem Abtastpositionsspeicher 354 gespeicherte Abtastpositionsinformation kann von einer dedizierten Abtastpositionsberechnungseinheit (nicht abgebildet) gelesen und verarbeitet werden, um Abtastpositionen für die Graphikverarbeitungseinheit 90 zu berechnen. Genauere Information über die Berechnung von Abtastpositionen ist unten enthalten (siehe die Beschreibung der 15 und 16).
  • Nach einer anderen Ausführungsform kann der Abtastpositionsspeicher 354 dafür ausgelegt sein, eine Tabelle von Zufallszahlen zu speichern. Der Abtastpositionsspeicher 354 kann auch dedizierte Hardware aufweisen, um eine oder mehrere verschiedene Arten von regulären Gittern zu erzeugen. Diese Hardware kann programmierbar sein. Die gespeicherten Zufallszahlen können als Abstände zu den von der Hardware erzeugten regulären Gitterpositionen addiert werden. Nach einer Ausführungsform kann der Abtastpositionsspeicher 354 programmierbar sein, um auf die Zufallszahlentabelle in einer Reihe von unterschiedlichen Weisen zuzugreifen oder sie zu „entfalten", und somit mehr Pseudozufälligkeit für einen gegebene Länge der Zufallszahlentabelle zu liefern. Somit kann eine kleinere Tabelle verwendet werden, ohne die visuellen Artefakte zu erzeugen, die durch einfache Wiederholung von Abtastpositionsabständen verursacht werden.
  • Der Abtastung-zu-Pixel-Berechnungsvorgang 360 verwendet dieselben Abtastpositionen wie der Zeichenvorgang 352. Somit kann in einer Ausführungsform der Abtastpositionsspeicher 354 eine Folge von zufälligen Abständen erzeugen, um Abtastpositionen für den Zeichenvorgang 352 zu berechnen, und kann anschließend dieselbe Folge von zufälligen Abständen erneut erzeugen, um dieselben Abtastpositionen für den Abtastung-zu-Pixel-Berechnungsvorgang 360 zu berechnen. Mit anderen Worten kann das Entfalten der Zufallszahlentabelle wiederholbar sein. Dadurch ist es mög licherweise nicht nötig, Abtastpositionen zum Zeitpunkt der Erzeugung für den Zeichenvorgang 352 zu speichern.
  • Wie in 12 gezeigt kann der Abtastpositionsspeicher 354 dafür ausgelegt sein, Abtastabstände zu speichern, die gemäß einer Reihe von unterschiedlichen Schemata wie ein reguläres quadratisches Gitter, ein reguläres sechseckiges Gitter, ein gestörtes reguläres Gitter oder eine zufällige (stochastische) Verteilung erzeugt wurden. Die Graphikkarte 116 kann eine Anzeige aus dem Betriebssystem, dem Gerätetreiber oder den Geometriedaten 350 empfangen, die angibt, welche Art von Abtastpositionsschema zu verwenden ist. Somit ist der Abtastpositionsspeicher 354 konfigurierbar oder programmierbar, um Positionsinformation gemäß einem oder mehreren unterschiedlichen Schemata zu erzeugen. Genauere Information über einige Abtastungspositionierungsschemata ist weiter unten beschrieben (siehe Beschreibung von 14).
  • Nach einer Ausführungsform kann der Abtastpositionsspeicher 354 ein RAM/ROM aufweisen, das stochastisch bestimmte Abtastpunkte oder Abtastabstände enthält. Somit braucht die Dichte der Abtastungen in dem virtuellen Schirmraum nicht gleichförmig zu sein, wenn sie in kleinem Maßstab beobachtet wird. Zwei Behälter mit gleicher Fläche, die an unterschiedlichen Stellen in dem virtuellen Schirmraum zentriert sind, können eine unterschiedliche Anzahl von Abtastungen enthalten. Wie er hier verwendet wird, bezieht sich der Begriff „Behälter" auf einen Bereich oder eine Fläche in dem virtuellen Schirmraum.
  • Ein Array von Behältern kann dem virtuellen Schirmraum, d. h. dem 2-D-Darstellungsfeld, überlagert sein und die Speicherung von Abtastungen in dem Abtastpuffer 162 kann in Form von Behältern organisiert sein. Der Abtastpuffer 162 kann ein Array von Speicherblöcken aufweisen, die den Behältern entsprechen. Jeder Speicherblock kann die Abtastwerte (z. B. Rot, Grün, Blau, z, Alpha, etc.) für die Abtastungen speichern, die innerhalb des entsprechenden Behälter liegen. Der ungefähre Ort einer Abtastung ist durch den Behälter gegeben, in dem sie sich befindet. Die Speicherblöcke können Adressen haben, die einfach aus der entsprechenden Behälterlokation in dem virtuellen Schirmraum berechnet werden kann und umgekehrt. Somit kann die Verwendung von Behältern die Speicherung von und den Zugriff auf Abtastwerte(n) in dem Abtastpuffer 162 vereinfachen.
  • Angenommen (zum Zweck der Diskussion), daß das 2-D-Darstellungsfeld von (0000,0000) bis (FFFF,FFFFF) in hexadezimalen virtuellen Schirmkoordinaten reicht. Dieses 2-D-Darstellungsfeld kann mit einem recheckigen Array von Behältern überlagert werden, deren linke untere Ecken sich an den Positionen (XX00,YY00) befinden, wobei XX und YY unabhängig von 0×00 bis 0×FF laufen. Somit gibt es 256 Behälter in jeder der vertikalen und horizontalen Richtungen, wobei jeder Behälter ein Quadrat mit der Seitenlänge von 256 in dem virtuellen Schirmraum überspannt. Angenommen, daß jeder Speicherblock dafür ausgelegt ist, Abtastwerte für bis zu 16 Abtastungen zu speichern, und daß die Menge von Abtastwerten für jede Abtastung 4 Bytes aufweist. In diesem Fall kann die Adresse des Speicherblocks, der dem bei (XX00,YY00) gelegenen Behälter entspricht, einfach durch die Beziehung BinAddr = (XX + YY*256)*16*4 berechnet werden. Zum Beispiel befindet sich die Abtastung S = (1C3B,23A7) in dem bei (1000,2300) gelegenen Be hälter. Die Abtastwertemenge für die Abtastung S wird dann in dem Speicherblock gespeichert, der sich an der Adresse 0×8C700 = (0×231C)(0×40) in dem Abtastpuffer 162 befindet.
  • Die Behälter können das 2-D-Darstellungsfeld zu einem regelmäßigen Array kacheln, d. h. zu einem quadratischen Array, rechteckigen Array, dreieckigen Array, sechseckigen Array, etc. oder zu einem unregelmäßigen Array. Behälter können in einer Vielzahl von Größen und Formen vorkommen. Die Größen und Formen können programmierbar sein. Die maximale Anzahl von Abtastungen, die einen Behälter belegen kann, wird durch den Speicherplatz bestimmt, der dem entsprechenden Speicherblock zugeordnet ist. Diese maximale Anzahl von Abtastungen wird hier als die Behälterabtastkapazität oder einfach die Behälterkapazität bezeichnet. Die Behälterkapazität kann jeden von einer Vielzahl von Werten annehmen. Der Wert der Behälterkapazität kann programmierbar sein. Im Folgenden werden die Speicherblöcke in dem Abtastpuffer 162, die den Behältern in dem virtuellen Schirmraum entsprechen, als Speicherbehälter bezeichnet.
  • Die spezifische Position jeder Abtastung innerhalb eines Behälters kann durch Nachschlagen des Abstandes einer Abtastung in der RAM/ROM-Tabelle bestimmt werden, d. h. der Abstand der Abtastung bezogen auf die Behälterposition (z. B. die linke unter Ecke oder das Zentrum des Behälters, etc.). Jedoch haben abhängig von der Implementierung nicht alle Auswahlmöglichkeiten für die Behälterkapazität eine eindeutige Menge von in der ROM/RAM-Tabelle gespeicherten Abstandswerten. Abstandswerte für einen ersten Wert der Behälterkapazität können durch Zugriff auf eine Teilmenge von Abstandswerten bestimmt werden, die für einen zweiten, größeren Wert der Behälterkapazität gespeichert sind. Nach einer Ausführungsform unterstützt jeder Wert der Behälterkapazität mindestens vier verschiedene Abtastungspositionierungsschemata. Die Verwendung von verschiedenen Abtastungspositionierungsschemata kann sich ergebende Endbildartefakte reduzieren, die in einem Schema von naiv wiederkehrenden Abtastpositionen entstehen würden.
  • Nach einer Ausführungsform kann der Abtastpositionsspeicher 354 Paare von 8-Bit-Zahlen speichern, wobei jedes Paar einen x-Abstand in einen y-Abstand aufweist. (Andere Abstandswerte sind ebenso möglich, z. B. ein Zeitabstand, ein z-Abstand, etc.) Wenn sie zu einer Behälterposition addiert werden, definiert jedes Paar eine bestimmte Position in dem virtuellen Schirmraum, d. h. in dem 2-D-Darstellungsfeld. Um die Lesezugriffszeiten zu verbessern, kann der Abtastpositionsspeicher 354 in einer breiten/parallelen Weise konstruiert werden, so daß es möglich ist, daß der Speicher mehr als eine Abtastposition pro Lesezyklus ausgibt.
  • Sobald die Abtastpositionen aus dem Abtastpositionsspeicher 354 gelesen wurden, wählt der Zeichenvorgang 352 die Abtastungen aus, die in das aktuelle wiedergegebene Polygon fallen. Der Zeichenvorgang 352 berechnet daraufhin die z- und Farbinformation (die Alpha- oder andere Feldtiefen-Informationswerte enthalten kann) für jede dieser Abtastungen und speichert die Daten in dem Abtastpuffer 162. Nach einer Ausführungsform kann der Abtastpuffer 162 z-Werte (und vielleicht Alpha-Werte) nur einfach Puffern, während er andere Abtastungskomponenten wie Farbe doppelt puffert. Anders als Systeme nach dem Stand der Technik kann das Graphiksystem 112 Doppelpufferung für alle Abtastungen verwenden (auch wenn nicht alle Komponenten von Abtastungen doppelt gepuffert werden, d. h. die Abtastungen können einige Komponenten haben, die nicht doppelt gepuffert werden). Nach einer Ausführungsform werden die Abtastungen im Abtastpuffer 162 in Behältern gespeichert. Nach einigen Ausführungsformen kann sich die Behälterkapazität von Einzelbild zu Einzelbild ändern. Darüber hinaus kann die Behälterkapazität räumlich für Behälter innerhalb eines einzelnen Einzelbilds, das in dem Abtastpuffer 162 wiedergegeben wird, variieren. Zum Beispiel können Behälter an der Kante des 2-D-Darstellungsfeldes eine kleinere Behälterkapazität haben als Behälter, die dem Zentrum des 2-D-Darstellungsfeldes entsprechen. Da Betrachter ihre Aufmerksamkeit wahrscheinlich meistens auf das Zentrum des Schirmes SCR oder des Anzeigebildes DIM richten, kann mehr Verarbeitungsbandbreite dem Bereitstellen verbesserter Bildqualität im Zentrum des 2-D-Darstellungsfeldes gewidmet werden. Man beachte, daß die Größe und die Form der Behälter ebenso von Bereich zu Bereich oder von Einzelbild zu Einzelbild variieren kann. Die Verwendung von Behältern wird unten in Verbindung mit 17 genauer beschrieben.
  • Parallel zu und unabhängig von dem Zeichenvorgang 352 ist der Filtervorgang 360 dafür ausgelegt: (a) Abtastpositionen aus dem Abtastpositionsspeicher 354 zu lesen, (b) zugehörige Abtastwerte aus dem Abtastspeicher 162 zu lesen, (c) die Abtastwerte zu filtern und (d) die sich ergebenden Ausgabepixelwerte auf den Videokanälen A und/oder B auszugeben. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 implementieren den Filtervorgang 360. Der Filtervorgang 360 dient dazu, basierend auf einer räumlichen Filterung der entsprechenden Daten für eine ausgewählte Mehrzahl von Abtastungen, z. B. Abtastungen, die in eine Umgebung des Pixelzentrums fallen, die Rot-, Grün- und Blauwerte für ein Ausgabepixel zu erzeugen. Andere Werte wie Alpha können ebenfalls erzeugt werden. Nach einer Ausführungsform ist der Filtervorgang 360 dafür ausgelegt: (i) den Abstand jeder Abtastung von dem Pixelzentrum zu ermitteln; (ii) die Attributwerte (z. B. Rot, Grün, Blau, Alpha) jeder Abtastung mit einem Filtergewicht zu multiplizieren, das eine spezifische (programmierbare) Funktion des Abstandes der Abtastung ist; (iii) Summen von gewichteten Attributwerten zu erzeugen, eine Summe je Attribut (z. B. eine Summe für Rot, eine Summe für Grün, ...) und (iv) die Summen zu normalisieren, um die entsprechenden Pixelattributwerte zu erzeugen. Der Filtervorgang 360 wird unten genauer beschrieben (siehe Beschreibung der beigefügten 17, 18A und 21).
  • Nach der gerade beschriebenen Ausführungsform ist der Filterkern eine Funktion des Abstandes von dem Pixelzentrum. Nach alternativen Ausführungsformen kann der Filterkern jedoch eine allgemeinere Funktion der X- und Y-Versetzungen von dem Pixelzentrum sein. Außerdem braucht der Träger der Filters, d. h. die 2-D-Umgebung, über der der Filterkern Werte ungleich Null annimmt, keine kreisförmige Scheibe zu sein. Jede Abtastung, die in den Träger des Filterkerns fällt, kann den Ausgabenpixelwert, der berechnet wird, beeinflussen.
  • 13 stellt eine alternative Ausführungsform der Graphikkarte 116 dar. In dieser Ausführungsform werden zwei oder mehr Abtastpositionsspeicher 354A und 354B verwendet. Die Abtastpositionsspeicher 354A–B können zum Implementieren von Doppelpufferung der Abtastpositionsdaten verwendet werden. Wenn die Abtastpositionen von Einzelbild zu Einzelbild dieselben bleiben, können die Abtastpositionen einfach gepuffert werden. Wenn sich jedoch die Abtastpositionen von Einzelbild zu Einzelbild verändern, dann kann die Graphikkarte 116 vorteilhafterweise dafür ausge legt werden, die Abtastpositionen doppelt zu puffern. Die Abtastpositionen können auf der Darstellungsseite (d. h. der Speicher 354A kann doppelt gepuffert sein) und/oder auf der Filterseite (d. h. der Speicher 354B kann doppelt gepuffert sein) doppelt gepuffert werden. Andere Kombinationen sind ebenso möglich. Zum Beispiel kann der Speicher 354A einfach gepuffert sein, während der Speicher 354B doppelt gepuffert ist. Diese Konfiguration kann es ermöglichen, daß eine Seite des Speichers 354B von dem Abtastpositionsspeicher 354A aktualisiert wird, während von dem Filtervorgang 360 auf die andere Seite des Speichers 354B zugegriffen wird. In dieser Konfiguration kann das Graphiksystem 112 Abtastpositionierungsschemata je Einzelbild ändern, indem die Abtastpositionen (oder Abstandswerte) aus dem Speicher 354A in den doppelt gepufferten Speicher 354B geschoben werden, wenn jeweils ein Einzelbild wiedergegeben wird. Somit können die Abtastpositionen, die in dem Speicher 354A gespeichert sind und von dem Zeichenvorgang 352 verwendet werden, um Abtastwerte wiederzugeben, zur Verwendung durch den Filtervorgang 360 in den Speicher 354B kopiert werden. Sobald die Abtastpositionsinformation in den Speicher 354B kopiert wurde, kann der Positionsspeicher 354A mit neuen Abtastpositionen (oder Abstandswerten) geladen werden, die für ein zweites darzustellendes Einzelbild zu verwenden sind. Auf diese Weise folgt die Abtastpositionsinformation den Abtastwerten von dem Zeichenvorgang 352 zu dem Filtervorgang 360.
  • Noch eine andere Ausführungsform kann Tags bzw. Anzeiger zu Abstandwerten mit den Abtastwerten in dem überabgetasteten Abtastpuffer 162 speichern. Diese Tags können verwendet werden, um die jeder speziellen Abtastung zugeordneten Abstandwerte (d. h. Störungen) dX und dY nachzuschlagen.
  • Abtastungspositionierungsschemata
  • 14 stellt eine Reihe von unterschiedlichen Abtastungspositionierungsschemata dar. In dem regelmäßigen Positionierungsschema 190 sind die Abtastungen an festen Positionen bezüglich eines regelmäßigen Gitters positioniert, das dem 2-D-Darstellungsfeld überlagert ist. Zum Beispiel können die Abtastungen beim Zentrum der von dem regelmäßigen Gitter erzeugten Rechtecke positioniert sein. Allgemeiner kann jede Kachelung des 2-D-Darstellungsfeldes ein regelmäßiges Positionierungsschema erzeugen. Zum Beispiel kann das 2-D-Darstellungsfeld mit Dreiecken gekachelt werden, und somit können die Abtastungen bei den Zentren (oder Eckpunkten) der dreieckigen Kacheln positioniert sein. Sechseckige Kachelungen, logarithmische Kachelungen und halbregelmäßige Kachelungen wie Penrose-Kachelungen werden ebenso betrachtet.
  • In dem gestörten regelmäßigen Positionierungsschema 192 werden die Abtastpositionen durch Störungen von einem Satz von festen Positionen auf einem regelmäßigen Gitter oder einer regelmäßigen Kachelung definiert. Nach einer Ausführungsform können die Abtastungen von ihren entsprechenden festen Gitterpositionen durch zufällige x- und y-Abstandswerte oder durch zufällige Winkel (im Bereich 0 bis 360 Grad) und zufällige Radien (im Bereich von Null bis zu einem Maximalradius) versetzt werden. Die Abstandswerte können in verschiedener Weise, z. B. durch Hardware basierend auf einer kleinen Anzahl von Keimen, durch Lesen einer Tabelle von gespeicherten Abstandswerten oder durch Verwenden einer Pseudo-Zufallsfunktion erzeugt werden. Noch einmal, das gestörte regelmäßige Gitterschema 192 kann auf irgendeiner Art von regelmäßigem Gitter oder Kachelung basieren. Abtastungen, die durch Störungen bezogen auf ein Gitter oder eine sechseckige Kachelung erzeugt werden, können aufgrund der geometrischen Eigenschaften dieser Konfigurationen besonders wünschenswert sein.
  • Das stochastische Abtastpositionierungsschema 194 stellt eine dritte mögliche Art eines Schemas zum Positionieren von Abtastungen dar. Das stochastische Abtastpositionierungsschema bezieht zufälliges Verteilen der Abtastungen über das 2-D-Darstellungsfeld mit ein. Das zufällige Positionieren von Abtastungen kann durch eine Reihe von unterschiedlichen Verfahren bewirkt werden, z. B. Verwenden eines Zufallszahlengenerators wie eines internen Taktes zum Erzeugen von Pseudo-Zufallszahlen. Zufallszahlen oder -positionen können auch vorab berechnet und im Speicher gespeichert werden.
  • In 15 werden nun Details einer Ausführungsform des gestörten regelmäßigen Positionierungsschemas 192 gezeigt. In dieser Ausführungsform werden die Abtastungen zufällig von einem regelmäßigen Quadratgitter durch x- und y-Abstandswerte versetzt. Wie der vergrößerte Bereich zeigt hat die Abtastung 198 einen x-Abstandswert 134, der seine horizontale Versetzung von seinem zugehörigen Gitterschnittpunkt 196 spezifiziert. In ähnlicher Weise hat die Abtastung 198 auch einen y-Abstandswert 136, der seine vertikale Versetzung von dem Gitterschnittpunkt 196 spezifiziert. Der zufällige x-Abstandswert 134 und der zufällige y-Abstandswert 136 können auf einen bestimmten Wertebereich beschränkt sein. Zum Beispiel kann der x-Abstandswert auf den Bereich von Null bis Xmax beschränkt sein, wobei Xmax die Breite eines Gitterrechtecks ist. Ähnlich kann der y-Abstandswert auf den Bereich von Null bis Ymax beschränkt sein, wobei Ymax die Höhe eines Gitterrechtecks ist. Der zufällige Abstandwert kann außerdem durch einen Winkel und einen Radius bezogen auf den Gitterschnittpunkt 196 spezifiziert werden.
  • 16 stellt Details eine anderen Ausführungsform des gestörten regelmäßigen Gitterschemas 192 dar. In dieser Ausführungsform sind die Abtastungen in rechteckige Behälter 138A–D gruppiert. Nach dieser Ausführungsform weist jeder Behälter neun Abtastungen auf, d. h. hat eine Behälterkapazität von neun. Unterschiedliche Behälterkapazitäten können in anderen Ausführungsformen verwendet werden (z. B. Behälter, die vier Abtastungen, 16 Abtastungen, etc. speichern). Die Position jeder Abtastung kann durch einen x- und y-Abstand relativ zu dem Ursprung des Behälters, in dem sie sich befindet, festgelegt werden. Der Ursprung eines Behälters kann als die linke untere Ecke des Behälters (oder irgendeine andere geeignete Stelle innerhalb des Behälters) gewählt werden. Zum Beispiel wird die Position der Abtastung 198 durch Summieren des x- Abstandwertes 124 bzw. des y-Abstand wertes 126 zu den x- und y-Koordinaten des Ursprungs 132D von Behälter 138D ermittelt. Wie zuvor angemerkt kann dies die Größe des in einigen Ausführungsformen verwendeten Abtastpositionsspeichers 354 reduzieren.
  • Figur 17 – Abtastungen in Pixel umwandeln
  • Wie zuvor diskutiert kann das 2-D-Darstellungsfeld mit einem Array von räumlichen Behältern überdeckt werden. Jeder räumliche Behälter kann mit Abtastungen belegt werden, deren Positionen durch den Abtastpositionsspeicher 354 bestimmt werden. Jeder räumliche Behälter entspricht einem Speicherbehälter in dem Abtastpuffer 162. Ein Speicherbehälter speichert Abtastwerte (z. B. Rot, Grün, Blau, z, Alpha, etc.) für die Abtastungen, die sich in dem entsprechenden räumlichen Behälter befinden. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 (auch als Faltungseinheiten 170 bezeichnet) sind dafür ausgelegt, Speicherbehälter aus dem Abtastpuffer 162 zu lesen und in den Speicherbehältern enthaltene Abtastwerte in Pixelwerte umzuwandeln.
  • 17 stellt ein Verfahren zum schnellen Konvertieren von in dem Abtastpuffer 162 gespeicherten Abtastwerten in Pixelwerte dar. Die räumlichen Behälter, die das 2-D-Darstellungsfeld überdecken, können in Spalten (z. B. Spalten 1-4) gegliedert sein. Jede Spalte weist ein zweidimensionales Subarray von räumlichen Behältern auf. Die Spalten können dafür ausgelegt sein, sich horizontal zu überlappen (d. h. um einen oder mehrere räumliche Behälter). Jede von den Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 kann dafür ausgelegt sein, auf Speicherbehälter, die einer der Spalten entsprechen, zuzugreifen. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-1 dafür ausgelegt sein, auf Speicherbehälter, die den räumlichen Behältern der Spalte 1 entsprechen, zuzugreifen. Die Datenpfade zwischen dem Abtastpuffer 162 und der Abtastung-zu-Pixel-Berechnungseinheit 170 können optimiert sein, um diese spaltenweise Entsprechung zu unterstützen.
  • 17 zeigt vier Abtastung-zu-Pixel-Berechnungseinheiten 170 zum Zwecke der Diskussion. Man beachte, daß die Graphikkarte 116 jede beliebige Anzahl von Abtastung-zu-Pixel-Berechnungseinheiten 170 enthalten kann.
  • Der Umfang der Überlappung zwischen den Spalten kann von dem horizontalen Durchmesser des Filterträgers für den verwendeten Filterkern abhängen. Das in 17 gezeigte Beispiel stellt eine Überlappung von zwei Behältern dar. Jedes Quadrat (wie das Quadrat 188) repräsentiert einen einzelnen Behälter, der eine oder mehrere Abtastungen aufweist. Vorteilhafterweise kann es diese Konfiguration ermöglichen, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170 unabhängig und parallel arbeiten, wobei jede der Abtastung-zu-Pixel-Berechnungseinheiten 170 Abtastungen, die sich in den Speicherbehältern der entsprechenden Spalte befinden, empfängt und faltet. Überlappen der Spalten verhindert, daß sichtbare Streifen oder andere Artefakte an den Spaltenrändern für irgendeinen Operator auftreten, dessen Ausdehnung größer als ein Pixel ist.
  • Darüber hinaus kann die Ausführungsform von 17 eine Mehrzahl von Behältercachespeicher 176 beinhalten, die an den Abtastpuffer 162 angeschlossen sind. Zusätzlich ist jeder der Behältercachespeicher 176 an eine entsprechende Instanz der Abtastung-zu-Pixel-Berechnungseinheiten 170 angeschlossen. Der Behältercachespeicher 176-I (wobei I irgendeinen Werte von eins bis vier annimmt) speichert eine Ansammlung von Speicherbehältern aus Spalte I und dient als ein Cachespeicher für die Abtastung-zu-Pixel-Berechnungseinheit 170-I. Der Behältercachespeicher 176-I kann eine optimierte Anbindung an den Abtastpuffer 162 haben, die den Zugriff auf die Speicherbehälter für Spalte I erleichtert. Da die Faltungsberechnung für zwei aneinandergrenzende Faltungszentren viele von denselben Speicherbehältern einbezieht, können die Behältercachespeicher 176 die Gesamtzugriffsbandbreite auf den Abtastpuffer 162 steigern.
  • 18A stellt weitere Details einer Ausführungsform eines Verfahren zum Lesen von Abtastwerten aus dem überabgetasteten Abtastpuffer 162 dar. Wie die Figur darstellt geht der Faltungsfilterkern 400 über Spalte I (in Richtung von Pfeil 406), um Ausgabepixelwerte zu erzeugen, wobei der Index I irgendeinen Wert im Bereich von eins bis vier annimmt. Die Abtastung-zu-Pixel-Berechnungseinheit 170-I kann den Faltungsfilterkern 400 implementieren. Der Behältercachespeicher 176-I kann verwendet werden, um schnellen Zugriff auf die Speicherbehälter, die Spalte I entsprechen, zu bieten. Spalte I weist eine Mehrzahl von Behälterzeilen auf. Jede Behälterzeile ist eine horizontale Reihe von räumlichen Behältern, die sich von dem linken Spaltenrand 402 zu dem rechten Spaltenrand 404 erstreckt und vertikal einen Behälter überspannt. Nach einer Ausführungsform hat der Behältercachespeicher 176-I genügend Kapazität, um NL Behälterzeilen von Speicherbehältern zu speichern. Der Cache-Zeilentiefen-Parameter NL kann gewählt werden, um den Träger des Filterkerns 400 aufzunehmen. Wenn erwartet wird, daß der Träger des Filterkerns 400 nicht mehr als NV Behälter vertikal überspannt (d. h. in der Y-Richtung), kann der Cache-Zeilentiefen-Paramter NL gleich NV gesetzt werden oder größer.
  • Nach Vollenden der Faltungsberechnungen an einem Faltungszentrum verschiebt sich der Filterkern 400 zum nächsten Faltungszentrum. Der Kern 400 kann als horizontal innerhalb von Spalte I in der von dem Pfeil 406 angegebenen Richtung fortschreitend veranschaulicht werden. Wenn der Kern 400 den rechten Rand 404 von Spalte I erreicht, kann er sich um eine oder mehrere Behälterzeilen hinunter verschieben und dann ausgehend von dem linken Spaltenrand 402 horizontal fortschreiten. Somit schreitet die Faltungsoperation mittels zeilenweiser Abfrage voran und erzeugt dabei aufeinanderfolgende Zeilen von Ausgabepixeln für die Anzeige.
  • Nach einer Ausführungsform wird der Cache-Zeilentiefen-Paramter NL gleich NV+1 gesetzt. In dem Beispiel von 18A bedeckt der Filterträger NV=5 Behälter vertikal. Somit ist der Cache-Zeilentiefen-Paramter NL=6=5+1. Die zusätzliche Behälterzeile im Behältercachespeicher 176-I ermöglicht es, daß die Verarbeitung von Speicherbehältern (auf die aus dem Behältercachespeicher 176-I zugegriffen wird) wesentlich asynchroner mit dem Laden der Speicherbehälter ist (in den Behältercachespeicher 176-I), als wenn der Cache-Zeilentiefen-Paramter NL auf den theoretischen Minimalwert NV gesetzt würde.
  • Nach einer Ausführungsform können der Abtastpuffer 162 und der Behältercachespeicher 176-I für zeilenorientierte Burst-Übertragungen ausgelegt sein. Wenn eine Anforderung für einen Speicherbehälter in dem Behältercachespeicher 176-I fehlschlägt, kann die gesamte Behälterzeile, die den angeforderten Speicherbehälter enthält, in einer Burst-Übertragung aus dem Abtastpuffer 162 geholt werden. Daher kann die erste Faltung einer Abfragezeile den Behältercachespeicher 176-I mit allen Speicherbehälter füllen, die für alle anschließenden Faltungen in der Abfragezeile benötigt werden. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-I beim Durchführen der ersten Faltung in der aktuellen Abfragelinie beim ersten Faltungszentrum 405 eine Reihe von Anforderungen für Speicherbehälter absetzen, d. h. für die Speicherbehälter, die denjenigen räumlichen Behältern (schattiert dargestellt) entsprechen, die sich mit dem Träger von Filterkern 400 schneiden. Weil der Filterträger 400 fünf Behälterzeilen schneidet, werden in einem Worst-Case- Szenario fünf dieser Speicherbehälteranforderungen im Behältercachespeicher 176-I fehlschlagen und das Laden aller fünf Behälterzeilen aus dem Abtastpuffer 162 einleiten. Daher kann der Behältercachespeicher 176-I, nachdem die erste Faltung der aktuellen Abfragelinie abgeschlossen ist, die Speicherbehälter enthalten, die durch das dick gezeichnete Rechteck 407 angegeben werden. Die von allen nachfolgenden Faltungen in der aktuellen Abfragelinie abgesetzten Speicherbehälteranforderungen können in dem Behältercachespeicher 176-I zu einem Treffer führen und somit eine wesentlich verminderte Behälterzugriffszeit erfahren.
  • Im allgemeinen kann die erste Faltung in einer gegebenen Abfragelinie weniger als die Worst-Case-Anzahl von Fehlschlägen im Behältercachespeicher 176-I erfahren, weil der Behältercachespeicher 176-I bereits einige oder alle der für die aktuelle Abfragelinie erforderlichen Behälterzeilen enthalten kann. Wenn zum Beispiel die Faltungszentren beim Zentrum jedes räumlichen Behälters liegen, entspricht der vertikale Abstand zwischen aufeinanderfolgenden Abfragelinien (der Faltungszentren) dem Abstand zwischen aufeinanderfolgenden Behälterzeilen, und somit kann die erste Faltung einer Abfragelinie das Laden einer einzelnen Behälterzeile herbeiführen, während die restlichen vier Behälterzeilen als Reaktion auf die Faltungen der vorhergehenden Abfragelinien bereits in den Behältercachespeicher 176-I geladen wurden.
  • Wenn erwartet wird, daß die aufeinanderfolgenden Faltungszentren in einer Abfragelinie von einer rein horizontalen Trajektorie über Spalte I starten, kann der Cache-Zeilentiefen-Parameter NL gesetzt werden, um ihn der maximal erwarteten vertikalen Abweichung von den Faltungszentren anzupassen. Zum Beispiel folgen die Faltungszentren in 18B einem gebogenen Pfad über die Spalte I. Der gebogene Pfad weicht von einem horizontalen Pfad vertikal um ungefähr zwei Behälter ab. Da der Träger des Filterkerns ein 3-auf-3-Array von räumlichen Behältern überdeckt, kann der Behältercachespeicher 176-I vorteilhafterweise einen Cache-Zeilentiefen-Paramter NL von mindestens fünf (d. h. zwei plus drei) haben.
  • Wie oben erwähnt können die Spalten bis des 2-D-Darstellungsfeldes dafür ausgelegt sein, sich horizontal zu überlappen. Die Größe der Überlappung zwischen angrenzenden Spalten kann konfiguriert werden, um sie der maximal erwarteten horizontalen Abweichung der Faltungszentren von den nominalen Faltungszentren auf einem rechteckigen Gitter anzupassen.
  • 18C stellt mögliche Randbedingungen bei der Berechnung der Ausgabepixelwerte dar. Das 2-D-Darstellungsfeld 420 ist als ein Recheck dargestellt, über das ein rechteckiges Array von räumlichen Behältern gelegt ist. Es sei daran erinnert daß jeder räumliche Behälter einem Speicherbehälter in dem Abtastpuffer 162 entspricht. Der Speicherbehälter speichert die Abtastwerte und/oder Abtastpositionen für Abtastungen, die sich in dem entsprechenden räumlichen Behälter befinden. Wie oben beschrieben filtern die Abtastung-zu-Pixel-Berechnungseinheiten 170 Abtastungen in der Umgebung eines Pixelzentrums, um Ausgabepixelwerte (z. B. Rot, Grün, Blau, etc.) zu erzeugen. Das Pixelzentrum PC0 ist nahe genug an dem unteren Rand (Y=0) des 2-D-Darstellungsfeldes 420, daß sein Filterträger 400 nicht vollständig in dem 2-D-Darstellungsfeld enthalten ist. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können gemäß einer Vielzahl von Ver fahren Abtastpositionen und/oder Abtastwerte für den Teil am Rand des Filterträgers 400 (d. h. den Teil, der außerhalb des 2-D-Darstellungsfeldes fällt) erzeugen.
  • Nach einer Ausführungsform können die Abtastung-zu-Pixel-Berechnungseinheiten 170 einen oder mehrere Blindelement- bzw. Dummy-Behälter erzeugen, um den Bereich am Rand des Filterträgers 400 zu überdecken. Abtastpositionen für die Dummy-Behälter können durch Spiegeln der Abtastpositionen der räumlichen Behälter über den Rand des 2-D-Darstellungsfeldes erzeugt werden. Zum Beispiel können den Dummy-Behältern F, G, N, I und J Abtastpositionen durch Spiegeln der Abtastpositionen, die den räumlichen Behältern A, B, C, D bzw. E entsprechen, über die Randlinie Y=0 zugewiesen werden. Die Abtastpositionen für die Dummy-Behälter können auch durch Verschieben der Abtastpositionen, die den räumlichen Behältern entsprechen, über den Rand des Darstellungsfeldes oder evtl. durch Erzeugen von Abtastpositionen während der Übertragung gemäß einem regelmäßigen, einem gestörten regelmäßigen oder einem stochastischen Abtastungspositionierungsschema erzeugt werden.
  • Zuvor bestimmte Farbwerte können diesen Dummy-Abtastungen in den Dummy-Behältern zugeordnet werden. Zum Beispiel kann der Wert (0,0,0) für den RGB-Farbvektor jeder Dummy-Abtastung zugewiesen werden. Wenn sich das Pixelzentrum PC0 nach unten bewegt (d. h. auf den Rand Y=0 zu und über ihn hinaus), können zusätzliche Dummy-Behälter mit Dummy-Abtastungen erzeugt werden, um den Filterträger 400 (der sich zusammen mit dem Pixelzentrum PC0 bewegt) zu überdecken. Innerhalb des Filterträgers 400 steigt die Anzahl von Dummy-Abtastungen (mit der Hintergrundfarbe) und die Anzahl von wiedergegebenen Abtastungen (mit beliebigen Farben) nimmt ab. Wenn sich der Filterträger 400 vollständig aus dem 2-D-Darstellungsfeld 420 heraus bewegt hat, wird der Filterträger 400 völlig mit Dummy-Abtastungen belegt. Daher nähert sich der mit dem Filterträger 400 berechnete Farbwert allmählich der vorbestimmte Hintergrundfarbe, wenn sich das Pixelzentrum PC0 in Richtung auf den Rand und über ihn hinaus bewegt.
  • Nach einer alternativen Ausführungsform dürfen nur Abtastungen, die sich innerhalb des 2-D-Darstellungsfeldes 420 (und innerhalb des Filterträgers 400) befinden, zu den Farbberechnungen für ein Pixel beitragen. Mit anderen Worten können Teile des Filterträgers 400, die außerhalb des 2-D-Darstellungsfeldes 420 liegen, ignoriert werden. Wie später in Verbindung mit 21 beschrieben werden die kumulierten Summen von gewichteten Abtastwerten durch eine kumulierte Summe von Filtergewichten normalisiert. Diese Normalisierung kompensiert die kleiner gewordene Anzahl von Abtastungen, die zu den kumulierten Summen am Rand des 2-D-Darstellungsfeldes 420 beitragen.
  • 18D stellt eine alternative Ausführungsform eines Verfahrens zum Durchführen von Pixelwertberechnungen dar. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können Pixelwertberechnungen mittels eines sichtbaren Teilfensters 422 des 2-D-Darstellungsfeldes 420 durchführen. Das sichtbare Teilfenster 422 ist als ein Rechteck mit der unteren linken Ecke bei (X1,Y1) und der oberen rechten Ecke bei (X2,Y2) in dem virtuellen Schirmraum dargestellt. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 dienen dazu, einen Farbwert an einem Pixelzentrum zu berechnen, so daß die Farbe abhängig vom Abstand senkrecht zum Rand des sichtbaren Teilfensters von einer Hintergrundfarbe abweicht. Weil der Abtastpositionsspeicher 354 Abtastpositionen für das gesamte 2-D-Darstellungsfeld 420 erzeugt, ist es nicht nötig, Dummy-Abtastpositionen zu erzeugen, wenn der Filterträger 400 den Randbereich (d. h. den Bereich außerhalb des sichtbaren Teilfensters 422 und innerhalb des 2-D-Darstellungsfeldes 420) schneidet. Stattdessen können die bereits erzeugten und in dem Abtastpositionsspeicher 354 (oder dem Abtastpuffer 162) gespeicherten Abtastpositionen bei den Farbberechnungen verwendet werden. Zum Beispiel ist der beim Pixelzentrum PC1 liegende Filterträger 402 nahe genug am Rand des sichtbaren Teilfensters 402 , daß er einige räumliche Behälter in dem Randbereich schneidet, d. h. die räumlichen Behälter G, N und I. Auf die Abtastpositionen in den räumlichen Behälter G, H und I kann in dem Abtastpositionsspeicher (oder dem Abtastpuffer 162) zugegriffen werden, um festzustellen, ob sie innerhalb des Filterträgers 402 liegen. Die Abtastpositionen, die innerhalb des Filterträgers 402 liegen, tragen zu der Farbberechnung als die Hintergrundfarbe bei. Insbesondere werden die wiedergegebenen Farbwerte (gespeichert in dem Abtastpuffer 162) für diese Abtastpositionen am Rand nicht verwendet. Der Filterträger 402 schneidet auch räumliche Behälter innerhalb des sichtbaren Teilfensters. Auf die Abtastpositionen und die entsprechenden wiedergegebenen Farbwerte für diese internen räumlichen Behälter wird im Abtastpositionsspeicher bzw. im Abtastpuffer 162 zugegriffen. Die Abtastpositionen, die innerhalb des Filterträgers 402 liegen, tragen ihre entsprechenden wiedergegebenen Farbwerte zu der Farbberechnung bei. Für den Filterträger 402 übersteigt die Anzahl der inneren Abtastungen bei weitem die äußeren Abtastpositionen. Daher wird die Farbe für das Pixelzentrum PC1 nur leicht in Richtung Hintergrundfarbe beeinflußt. Im allgemeinen nimmt die relative Anzahl von Abtastpositionen am Rand (die als Hintergrundfarbe beitragen) zu den internen Abtastpositionen ab , die entsprechend der wiedergegebenen Farbwerte zählen, wenn ein Pixelzentrum sich einem Rand des sichtbaren Teilfensters 422 nähert und sich durch ihn hindurch bewegt. Somit geht die Farbe allmählich in die Hintergrundfarbe über, wenn sich das Pixelzentrum aus dem sichtbaren Teilfenster 422 heraus bewegt.
  • Nach einer anderen Ausführungsform tragen Abtastungen außerhalb des sichtbaren Teilfensters 422 ihre wiedergegebenen Farbwerte anstatt der Hintergrundfarbwerte zu den Pixelwertberechnungen bei.
  • Nach einer alternativen Ausführungsformen dürfen nur Abtastungen innerhalb des Filterträger 400 und innerhalb des sichtbaren Teilfensters 422 zu einer Farbberechnung für ein Pixel beitragen. Mit anderen Worten werden Abtastungen außerhalb des sichtbaren Teilfensters 422 bei der Berechnung von Farbwerten nicht verwendet.
  • Figur 19 – Darstellen von Abtastungen in einen überabgetasteten Abtastpuffer
  • 19 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens zum Zeichnen oder Darstellen von Abtastungen in einen überabgetasteten Abtastpuffer. Bestimmte Schritte von 19 können gleichzeitig oder in anderer Reihenfolge auftreten. In Schritt 200 empfängt die Graphikkarte 116 Graphikkommandos und Graphikdaten von der Host-CPU 102 oder direkt aus dem Systemspeicher 106. In Schritt 202 werden die Befehle und Daten zu einer oder mehreren von den Darstellungseinheiten 150A–D gelenkt. In Schritt 204 stellen die Darstellungseinheiten 150A–D fest, ob die Graphikdaten komprimiert sind. Wenn die Graphikdaten komprimiert sind, dekomprimieren die Darstellungseinheiten 150A–D die Graphikdaten in ein verwendbares Format, z. B. Dreiecke, wie in Schritt 206 gezeigt. Als nächstes werden die Dreiecke verarbeitet und vor der Perspektiventeilung und Transformation in einen Schirmraum in einen geeigneten Raum zur Beleuchtung und zum Abschneiden konvertiert (wie in Schritt 208A angegeben).
  • Wenn das Graphiksystem eine Überabtastung mit variabler Auflösung implementiert, werden die Dreiecke mit einer Menge von Bereichsgrenzen für die Abtastdichte verglichen (Schnit 208B). Bei der Überabtastung mit variabler Auflösung können verschiedenen Bereichen des 2-D-Darstellungsfeldes basierend auf einer Reihe von Faktoren (z. B. dem Zentrum der Aufmerksamkeit eines Betrachters auf dem Projektionsschirm SCR wie durch eine Augen- oder Kopfnachführung festgelegt) unterschiedliche Abtastdichten zugeordnet werden. Wenn das Dreieck eine Bereichsgrenze für die Abtastdichte überschreitet (Schritt 210), dann kann das Dreieck in zwei kleinere Polygone entlang der Bereichsgrenze geteilt werden (Schritt 212). Die Polygone können weiter in Dreiecke unterteilt werden, falls nötig (da generisches Durchschneiden eines Dreiecks ein Dreieck und ein Viereck ergibt). Somit kann jedem neu gebildeten Dreieck eine einzelne Abtastdichte zugewiesen werden. Nach einer Ausführungsform kann das Graphiksystem 112 dafür ausgelegt sein, die Originaldreiecke zweimal wiederzugeben, d. h. einmal mit jeder Abtastdichte, und dann die zwei Versionen abzuschneiden, um sie in zwei entsprechende Bereiche der Abtastdichte einzupassen.
  • In Schnit 214 wird eines der Abtastungspositionierungsschemata (d. h. regelmäßig, gestört regelmäßig oder stochastisch) aus dem Abtastpositionsspeicher 354 ausgewählt. Das Abtastungspositionierungsschema ist im allgemeinen in den Abtastpositionsspeicher 354 vorprogrammiert, aber kann auch während der Übertragung ausgewählt werden. In Schritt 216 können die Darstellungseinheiten 150A–D basierend auf dem ausgewählten Abtastungspositionierungsschema und der Größe und Form der räumlichen Behälter feststellen, welche räumlichen Behälter Abtastungen enthalten, die innerhalb der Ränder des Dreiecks liegen. In Schritt 218 werden dann die Abstandswerte dX und dY für die Abtastungen innerhalb dieser räumlichen Behälter aus dem Abtastpositionsspeicher 354 gelesen. In Schritt 220 wird daraufhin die Position jeder Abtastung mittels der Abstandswerte dX und dY und der Koordinaten des entsprechenden Behälterursprungs berechnet und mit den Ecken des Dreiecks verglichen, um festzustellen, ob die Abtastung innerhalb des Dreiecks liegt. Schritt 220 wird unten genauer diskutiert.
  • Für jede Abtastung, die als innerhalb des Dreiecks liegend bestimmt wird, zeichnet die Darstellungseinheit die Abtastung, indem Farbe, Alpha und andere Attribute der Abtastung berechnet werden. Dies kann eine Beleuchtungsberechnung und eine Interpolation basierend auf der Farb- und Texturabbildungsinformation, die den Eckpunkten eines Dreiecks zugeordnet sind, nach sich ziehen. Sobald die Abtastung dargestellt ist, kann sie an die Zeitplaneinheit 154 weitergegeben werden, die dann die Abtastung in dem Abtastpuffer 162 speichert (wie in Schritt 224 angegeben).
  • Man beachte, daß die Ausführungsform des oben beschriebenen Darstellungsverfahrens nur zum Zweck der Erläuterung verwendet wird und nicht als einschränkend zu verstehen ist. Zum Beispiel können in einigen Ausführungsformen die in 19 als seriell erfolgend abgebildeten Schritte parallel implementiert werden. Ferner können einige Schritte in gewissen Ausführungsformen des Graphiksystems reduziert oder eliminiert werden (z. B. die Schritte 204206 in Ausführungsformen, die keine geometrische Kompression implementieren, oder die Schritte 210212 in Ausführungsformen, die keinen überabgetasteten Abtastpuffer mit variabler Auflösung implementieren).
  • Bestimmen, welche Abtastungen innerhalb des wiedergegebenen Polygons liegen
  • Das Bestimmen, welche Abtastungen sich innerhalb des wiedergegebenen Polygons befinden, kann in einer Reihe von verschiedenen Weisen durchgeführt werden. Nach einer Ausführungsform werden zuerst die Deltas zwischen den drei Eckpunkten, die das Dreieck definieren, bestimmt. Zum Beispiel können diese Deltas in der Reihenfolge vom ersten zum zweiten Eckpunk (v2 – v1)=d12 genommen werden, vom zweiten zum dritten Eckpunkt (v3 – v2)=d23 und vom dritten zurück zum ersten Eckpunkt (v1 – v3)=d31. Diese Deltas bilden Vektoren und jeder Vektor kann als zu einem von vier Quadranten der Koordinatenebene gehörend kategorisiert werden (z. B. durch Verwenden der beiden Vorzeichenbits seiner Delta-X- und -Y-Komponenten). Eine dritte Bedingung kann hinzugefügt werden, durch die festgestellt wird, ob der Vektor ein Vektor mit größerem X bzw. ein X-Major-Vektor oder ein Vektor mit größerem Y bzw. ein Y-Major-Vektor ist. Dies kann durch Berechnen festgestellt werden, ob abs(delta_x) größer als abs(delta_y) ist. Mittels dieser drei Informationsbits kann jeder der Vektoren als zu einem von acht verschiedenen Bereichen der Koordinatenebene gehörend kategorisiert werden. Wenn drei Bits verwendet werden, um diese Bereiche zu definieren, dann können das X-Vorzeichen-Bit (um zwei nach links verschoben), das Y-Vorzeichen-Bit (um eins nach links verschoben) und das X-Major-Bit verwendet werden, um die acht Bereiche wie in 20 abgebildet zu bilden.
  • Als nächstes können die drei Kantenungleichungen verwendet werden, um das Innere des Dreiecks zu definieren. Die Kanten selbst können als Linien in einer (oder beiden) der Formen y=mx+b oder x=ry+c beschrieben werden, wobei rm=1 ist. Um den benötigten numerischen Bereich zum Ausdrücken der Steigung zu verkleinern, kann eine der beiden X-major- und Y-major-Gleichungsformen für eine Kantengleichung verwendet werden (so daß der Absolutwert der Steigung im Bereich von 0 bis 1 sein kann). Somit können die Kanten- (oder Halbebenen)Ungleichungen in einer der beiden entsprechenden Formen ausgedrückt werden:
    X-major: y-m·x-b<0, wenn Punkt (x,y) unterhalb der Kante liegt;
    Y-major: x-r·y-c<0, wenn Punkt (x,y) links von der Kante liegt.
  • Die X-major-Ungleichung erzeugt einen logischen Wert „true" bzw. „wahr" (d. h. Vorzeichenbit gleich eins), wenn der in Frage stehende Punkt (x,y) unterhalb der Geraden liegt, die durch eine Kante definiert wird. Die Y-major-Ungleichung erzeugt einen logischen Wert „wahr", wenn der in Frage stehende Punkt (x,y) links der Geraden liegt, die durch eine Kante definiert wird. Die Seite, die das Innere des Dreiecks beinhaltet, ist für jede der linearen Ungleichung bekannt und kann durch eine Boolesche Variable spezifiziert werden, die hier als das Akzeptierbit bzw. Acceptbit bezeichnet wird. Somit ist eine Abtastung (x,y) auf der inneren Seite einer Kante, wenn
    X-major: (y-m·x-b<0) <xor> accept = true;
    Y-major: (x-m·y-c<0) <xor> accept = true.
  • Das Akzeptierbit für eine gegebene Kante kann gemäß der folgenden Tabelle berechnet werden basierend auf (a) dem Bereich (Null bis acht), in dem der Kantendeltavektor liegt und (b) der Orientierung des Kantenumlaufs, wobei Umlauf im Uhrzeigersinn durch cw=1 und Umlauf im Gegenuhrzeigersinn durch cw=0 angegeben wird. Die Notation „1" bedeutet das logische Komplement.
    • 1: accept= !cw
    • 0: accept = cw
    • 4: accept = cw
    • 5: accept = cw
    • 7: accept = cw
    • 6: accept= !cw
    • 2: accept= !cw
    • 3: accept= !cw
  • Regeln zur Vermeidung eines Unentschiedens bzw. Tie-Breaking-Regeln für diese Darstellung können ebenso implementiert werden (z. B. können Koordinatenachsen als zu dem positiven Oktanten gehörig definiert werden). In ähnlicher Weise kann definiert werden, daß zu X-major alle Punkte gehören, die auf den Steigungsgeraden liegen.
  • Nach einer alternativen Ausführungsform kann die Akzeptier- bzw. Acceptseite einer Kante durch Anwenden der Kantenungleichung auf den dritten Eckpunkt eines Dreiecks (d. h. den Eckpunkt, der nicht einer von den beiden Eckpunkten ist, die die Kante bilden) bestimmt werden. Dieses Verfahren kann den zusätzlichen Aufwand einer Multiplikation-Addition nach sich ziehen, was durch die oben beschriebene Technik vermieden werden kann.
  • Um die „Faced-ness" bzw. Orientierung eines Dreieckes (d. h. ob ein Dreieck im Uhrzeigersinn oder im Gegenuhrzeigersinn orientiert ist) festzustellen, können die Delta-Richtungen zweier Kanten des Dreiecks geprüft und die Steigungen der beiden Kanten verglichen werden. Zum Beispiel angenommen, daß die Kante12 eine Delta-Richtung von 1 und die zweite Kante (Kante23) eine Delta-Richtung von 0, 4 oder 5 hat, dann ist das Dreieck gegen den Uhrzeiger. Wenn jedoch die Kante 23 eine Delta-Richtung von 3, 2 oder 6 hat, dann ist das Dreieck im Uhrzeigersinn. Wenn die Kante 23 eine Delta-Richtung von 1 hat (d. h. dieselbe wie Kante12), dann löst das Vergleichen der Steigungen zweier Kanten das Unentschieden (beide sind x-major). Wenn die Kante 12 eine größere Steigung hat, dann ist das Dreieck im Uhrzeigersinn. Wenn Kante 23 eine Delta-Richtung von 7 hat (das genaue Gegenteil von Kante 12), dann werden wiederum die Steigungen verglichen, aber mit entgegengesetzten Ergebnissen bezüglich dessen, ob das Dreieck im Uhrzeigersinn oder Gegenuhrzeigersinn orientiert ist.
  • Dieselbe Analyse kann vollständig auf alle Kombinationen der Delta-Richtungen von Kante 12 und Kante 23 angewandet werden, wobei in jedem Fall die richtige Orientierung festgestellt wird. Wenn die Steigungen im Unentschieden-Fall dieselben sind, dann ist das Dreieck degeneriert (d. h. ohne interne Fläche). Es kann explizit getestet und selektiv ausgeschnitten werden oder könnte mit passender numerischen Sorgfalt durchgelassen werden, da es keine wiederzugebende Abtastungen verursacht. Ein Spezialfall entsteht, wenn ein Dreieck die Betrachtungsebene teilt. Dieser Fall kann jedoch früher in der Pipeline entdeckt werden (z. B. wenn das Abschneiden der vorderen und hinteren Ebene durchgeführt wird).
  • Man beachte, daß in den meisten Fällen nur eine Seite eines Dreiecks wiedergegeben wird. Wenn die Orientierung eines Dreiecks durch die obige Analyse als diejenige, die zurückzuweisen ist, festgestellt wird, dann kann das Dreieck somit sudgeschnitten werden (d. h. keiner weiteren Verarbeitung unterworfen, wobei keine Abtastungen erzeugt werden). Man beachte weiter, daß diese Feststellung der Orientierung nur einen zusätzlichen Vergleich erfordert (d. h. der Steigung von Kante 12 mit der von Kante 23) über die bereits berechneten Faktoren hinaus. Viele herkömmliche Ansätze können komplexere Berechnungen verwenden (wenn auch in früheren Stadien der Einricht-Berechnung).
  • Figur 21 – Erzeugen von Ausgabepixelwerten aus Abtastwerten
  • 21 ist ein Flußdiagramm einer Ausführungsform eines Verfahrens zum Auswählen und Filtern von Abtastungen, die in dem überabgetasteten Abtastpuffer 162 gespeichert sind, um Ausgabepixelwerte zu erzeugen. In Schritt 250 wird ein Strom von Speicherbehältern aus dem überabgetasteten Abtastpuffer 162 gelesen. In Schritt 252 können diese Speicherbehälter in einem oder mehreren Behältercachespeichern 176 gespeichert werden, um den Abtastung-zu-Pixel-Berechnungseinheiten 170 einen einfachen Zugriff auf Abtastwerte während der Faltungsoperation zu ermöglichen. In Schritt 254 werden die Speicherbehälter geprüft, um festzustellen, welche der Speicherbehälter Abtastungen enthalten, die zu dem gerade erzeugten Ausgabepixelwert beitragen. Der Träger (d. h. die Standfläche) des Filterkerns 400 (siehe 18A) schneidet eine Ansammlung von räumlichen Behältern. Die Speicherbehälter, die diesen räumlichen Behältern entsprechen, können Abtastwerte enthalten, die zu dem aktuellen Ausgabepixel beitragen.
  • Jede Abtastung in den ausgewählten Behältern (d. h. Behältern, die in Schritt 254 identifiziert wurden) wird dann individuell überprüft, um festzustellen, ob die Abtastung tatsächlich etwas beiträgt (wie in den Schritten 256258 angegeben). Diese Feststellung kann auf dem Abstand von der Abtastung zu dem Zentrum des erzeugten Ausgabepixels basieren.
  • Nach einer Ausführungsform können die Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt sein, diesen Abtastungsabstand (d. h. den Abstand der Abtastung von dem Filterzentrum) zu berechnen und ihn daraufhin zu verwenden, um als Index in eine Tabelle zu dienen, die Filtergewichtungswerte (wie in Schritt 260 angegeben) speichert. Nach einer anderen Ausführungsform kann jedoch die möglicherweise aufwendige Berechnung zum Bestimmen des Abstandes von dem Zentrum des Pixels zu der Abtastung (was typischerweise mit einer Quadratwurzelfunktion einhergeht) vermieden werden, indem der Abstand im Quadrat verwendet wird, um als Index in die Tabelle von Filtergewichten zu dienen. Dieses Indexschema mit quadriertem Abstand kann vereinfacht werden, indem ein Fließkomma-Format für den Abstand verwendet wird (z. B. vier oder fünf Bits für die Mantisse und drei Bits für den Exponent), womit es möglich wird, viel mehr Genauigkeit beizubehalten, während der angewachsene Bereich bei den Werten kompensiert wird. Die Tabelle von Filtergewichten kann in einem ROM implementiert sein. Jedoch können auch RAM-Tabellen benutzt werden. RAM-Tabellen können es nach einigen Ausführungsformen vorteilhafterweise ermöglichen, daß das Graphiksystem die Filterkoeffizienten pro Einzelbild oder pro Session variiert. Zum Beispiel können die Filterkoeffizienten variert werden, um bekannte Unzulänglichkeiten der Anzeige-/Projektions-Einrichtung oder persönliche Präferenzen des Benutzers auszugleichen. Das Graphiksystem kann außerdem die Filterkoeffizienten pro Schirmbereich innerhalb eines Einzelbilds oder pro Ausgabepixel variieren. Diese Abtastungen, die außerhalb der Grenzen des Faltungsfilters liegen, können einfach mit einem Gewichtsfaktor von Null multipliziert werden (Schritt 262) oder sie können bei der Berechnung vollständig weggelassen werden. Nach einer alternativen Ausführungsform, können die Abtastung-zu-Pixel-Berechnungseinheiten 170 spezialisierte Hardware verwenden (z. B. Multiplizierer und Addierer), um den Filterkern basierend auf gespeicherten Parametern (z. B. Polynomialkoeffizienten), die den Filterkern definieren, auszuwerten. Die ausgewerteten Werte des Filterkerns dienen als die Filtergewichte für die Abtastungen.
  • Nach einer zweiten Ausführungsform kann ein separater Filterkern zum Filtern für jede Farbe verwendet werden. Daher können die Abtastung-zu-Pixel-Berechnungseinheiten 170 eine separate Tabelle von Filtergewichten für jede Farbe beinhalten. Alternativ können die Abtastung-zu-Pixel-Berechnungseinheiten 170 eine separate Kernauswertungshardware für jede Farbe beinhalten.
  • In manchen Situationen kann der Filterkern nicht als eine Funktion des Euklidischen Abstandes bezüglich des Filterkerns ausgedrückt werden. Zum Beispiel ist ein pyramidenförmiger Zeltfilter nicht als eine Funktion des Euklidischen Abstandes von dem Filterzentrum ausdrückbar. Daher können Filtergewichte mittels X- und Y-Abtastungsversetzungen oder eines bestimmten nicht-Euklidischen Abstandes in Tabellen aufgeführt (oder berechnet) werden.
  • Sobald das Filtergewicht für eine Abtastung ermittelt wurde, können die Attributwerte (z. B. Rot, Grün, Blau, Alpha, etc.) für die Abtastung mit dem Filtergewicht multipliziert werden (wie in Schritt 264 angegeben). Jeder der gewichteten Attributwerte kann daraufhin zu einer kumulierten Summe addiert werden – eine kumulierte Summe für jedes Attribut – wie in Schritt 266 angegeben. Das Filtergewicht selbst kann zu einer kumulierten Summe von Filtergewichten addiert werden (wie in Schritt 268 angegeben). Nachdem alle Abtastungen, die sich in dem Träger des Filters befinden, verarbeitet wurden, können die kumulierten Summen der gewichteten Attributwerte durch die kumulierte Summe der Filtergewichte dividiert werden (wie in Schritt 270 angegeben). Man beachte, daß die Anzahl von Abtastungen, die in den Filterträger fallen, schwanken kann, wenn sich das Filterzentrum in dem 2-D-Darstellungsfeld bewegt. Der Normalisierungsschritt 270 gleicht den veränderlichen Zuwachs bzw. die veränderliche Verstärkung aus, die durch diese Ungleichmäßigkeit in der Anzahl der einbezogenen Abtastungen eingeführt wird und verhindert somit, daß die berechneten Pixelwerte aufgrund der Schwankung der Anzahl von Abtastungen zu hell oder zu dunkel erscheinen. Schließlich können die normalisierten Ausgabepixel zur Gammakorrektur, Digital-zu-Analog-Wandlung (falls nötig) und eventueller Anzeige ausgegeben werden (Schritt 274).
  • Figur 22 – Beispiel einer Ausgabepixelfaltung
  • 22 stellt ein vereinfachtes Beispiel einer Ausgabepixelfaltung mit einem Filterkern dar, der kreissymmetrisch und stückweise konstant ist. Wie die Figur zeigt, enthalten die vier Behälter 288A–D Abtastungen, die möglicherweise zu der Ausgabepixelfaltung beitragen. In diesem Beispiel ist das Zentrum des Ausgabepixels an der den Behältern 288A–288D gemeinsamen Ecke gelegen. Jeder Behälter enthält sechzehn Abtastungen, und ein Array von vier Behältern (2 × 2) wird gefiltert, um die Attributwerte (Rot, Grün, Blau, Alpha) für das Ausgabepixel zu erzeugen. Da der Filterkern kreissymmetrisch ist, legt der Abstand jeder Abtastung von dem Pixelzentrum den Filterwert fest, der auf die Abtastung angewandt wird. Zum Beispiel liegt die Abtastung 296 relativ nah an dem Pixelzentrum und fällt somit in den Bereich des Filters mit einem Filterwert von B. Ähnlich fallen die Abtastungen 294 und 292 in die Bereiche der Filter mit Filterwerten von 4 bzw. 2. Die Abtastung 290 fällt jedoch außerhalb des maximalen Filterradius und erhält somit einen Filterwert von 0. Daher trägt die Abtastung 290 nicht zu den berechneten Attributwerten für das Ausgabepixel bei. Weil der Filterkern eine abfallende Funktion des Abstandes von dem Pixelzentrum ist, tragen die Abtastungen nahe am Pixelzentrum mehr zu den berechneten Attributwerten bei als die Abtastungen, die weiter vom Pixelzentrum entfernt sind. Diese Art der Filterung kann verwendet werden, um Bildglättung oder Anti-Aliasing durchzuführen.
  • Die beispielhaften Attributwerte 290–296 sind in den Kästen 300–306 dargestellt. In diesem Beispiel weist jede Abtastung Rot-, Grün-, Blau- und Alphawerte zusätzlich zu den Positionswerten der Abtastung auf. Der Block 310 stellt die Berechnung jedes Pixelattributwertes vor dem Normalisieren dar. Wie zuvor angemerkt können die Filterwerte summiert werden, um einen Normalisierungswert 308 zu erhalten. Der Normalisierungswert 308 wird verwendet, um die unerwünschte Verstärkung herauszudividieren, die aus der nicht konstanten Anzahl von Abtastungen entsteht, die von dem Filterträger aufgenommen werden. Der Block 312 stellt den Normalisierungsprozeß und die abschließenden, normalisierten Pixelattributwerte dar.
  • Der in 22 dargestellte Filter wurde nur zum Zwecke der Beschreibung ausgewählt und ist nicht dazu gedacht, einschränkend zu sein. Eine breite Vielfalt von Filtern kann zur Berechnung von Pixelwerten verwendet werden, abhängig von dem oder den gewünschten Filtereffekt(en). Es ist eine wohlbekannte Tatsache, daß der Spalt- bzw. Sinc-Filter einen idealen Bandfilter realisiert. Der Spalt-Filter nimmt jedoch Werte ungleich Null über die gesamte X-Y-Ebene hinweg an. Somit wurden verschiedene Annäherungen des Spalt-Filters mit Fenstertechnik entwickelt. Einige dieser Annäherungen wie der Konusfilter oder der Gaußsche Filter approximieren nur den zentralen Zacken des Spalt-Filters und bewirken somit einen Glättungseffekt auf dem abgetasteten Bild. Bessere Annäherungen wie der Mitchell-Netravali-Filter (einschließlich des Catmull-Rom-Filters als ein Spezialfall) erhält man durch Annäherung einiger negativer Zacken und positiver Zacken, die den zentralen positiven Zacken des Spalt-Filters umgeben. Die negativen Zacken ermöglichen es, daß ein Filter die räumliche Frequenz effektiver bis zu einer Abschneidefrequenz erhält und räumliche Frequenzen jenseits der Abschneidefrequenz zurückweist. Ein negativer Zacken ist ein Teil eines Filters, bei dem die Filterwerte negativ sind. Somit werden einigen Abtastungen, die sich in dem Träger eines Filters befinden, negative Filterwerte (d. h. Filtergewichte) zugewiesen.
  • Eine breite Vielfalt von Filtern kann für die Pixelwertfaltungen verwendet werden, einschließlich Filtern wie eines Kasten- bzw. Schachtelfilters , eines Zeltfilters, eines Zylinderfilters, eines Ko nusfilters, eines Gaußschen Filters, eines Catmull-Rom-Filters. eines Mitchell-Netravali-Filters, irgendeiner Annäherung des Spalt-Filters mit Fenstertechnik, etc. Darüber hinaus kann der Träger der Filter, der für die Pixelwertfaltungen verwendet wird, kreisförmig, elliptisch, rechteckig (z. B. quadratisch), dreieckig, sechseckig, etc. sein.
  • Die in 22 abgebildete stückweise konstante Filterfunktion mit vier konstanten Bereichen ist nicht dazu gedacht, einschränkend zu sein. Zum Beispiel kann der Faltungsfilter nach einer Ausführungsform eine große Anzahl von Bereichen haben, jeder mit einem zugewiesenen Filterwert (der positiv, negativ und/oder Null sein kann). Nach einer anderen Ausführungsform kann der Faltungsfilter eine stetige bzw. kontinuierliche Funktion sein, die für jede Abtastung basierend auf dem Abstand des Pixels (oder den X- und Y-Abstand ) von dem Pixelzentrum. Man beachte auch, daß Gleitkommawerte für gesteigerte Genauigkeit verwendet werden können.
  • Gesamtschirm-Anti-Aliasing
  • Die überwiegende Mehrheit aktueller 3D-Graphiksysteme bietet nur Echtzeit-Anti-Aliasing für Zeilen und Punkte. Während einige Systeme es außerdem ermöglichen, daß die Kante eines Polygons „undeutlich" bzw. „fuzzed" wird, funktioniert diese Technik typischerweise am besten, wenn alle Polygone in der Tiefe vorsortiert sind. Dies kann den Zweck vereiteln, Allzweck-3D-Darstellungshardware für die meisten Anwendungen zu haben (die ihre Polygone nicht der Tiefe nach vorsortieren). Nach einer Ausführungsform kann das Graphiksystem 112 dafür ausgelegt sein, Gesamtschirm-Anti-Aliasing durch stochastische Verteilung von bis zu sechzehn Abtastungen je Ausgabepixel in dem 2-D-Darstellungsfeld 420 und Filtern der Abtastungen mit einem 5×5-Faltungsfilter (d. h. einem Filter, der einen in Pixeleinheiten gemessenen 5×5-Bereich bedeckt) zu implementieren.
  • Verzerrungskorrektur für eine einzelne Projektionseinrichtung
  • Nach einer Ausführungsform des Graphiksystems 112 kann ein Satz von Abtastung-zu-Pixel-Berechnungseinheiten 170 (die in einer oder mehreren Instanzen der Graphikkarte 116 beinhaltet sein können) ein Videosignal erzeugen, das eine einzelne Projektionseinrichtung PD1 betreibt. Die einzelne Projektionseinrichtung PD1 erzeugt als Reaktion auf das Videosignal ein Array von physikalischen Pixeln auf dem Schirm SCR wie unten in der 23A dargestellt. Die Farbe und Intensität jedes physikalischen Pixels kann durch einen Satz von Pixelwerten (z. B. Rot-, Grün- und Blau-Werte) festgelegt werden, die an einem entsprechenden virtuellen Pixelzentrum in dem virtuellen Schirmraum, d. h. dem X-Y-Koordinatenraum, berechnet werden. Somit erzeugen die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein Array von virtuellen Pixelzentren in dem virtuellen Schirmraum, ein virtuelles Pixelzentrum je physikalischem Pixel. Für jedes virtuelle Pixelzentrum werden Abtastung in der Umgebung des virtuellen Pixelzentrums gefiltert (d. h. gefaltet), um die Pixelwerte für das entsprechende physikalische Pixel zu erzeugen. Die virtuellen Pixelzentren können hier äquivalent als virtuelle Pixelpositionen oder Faltungszentren bezeichnet werden. Physikalische Pixel können äquivalent als sichtbar Pixel bezeichnet werden.
  • Man beachte, daß mehrere Graphikkarten in derselben (oder ähnlicher) Konstruktion als Graphikkarte 116 hintereinander geschaltet sein können, um die Videoausgabe für die Projektions einrichtung PD1 zu erzeugen. Die von den mehreren Graphikkarten erzeugten Abtastungen können als in einem gemeinsamen virtuellen Schirmraum befindlich betrachtet werden. Jede von den mehreren Graphikkarten kann Abtastungen für einen entsprechenden Bereich des 2-D-Darstellungsfeldes 420 in dem virtuellen Schirmraum wiedergeben und speichert die wiedergegebenen Abtastungen in einem entsprechenden Abtastpuffer 162.
  • Von dem von der Projektionseinrichtung PD1 erzeugten physikalischen Pixelarray wird angenommen, daß es N Zeilen und M Spalten hat. Man stelle sich ein physikalisches Schirm-Koordinatensystem mit einer horizontalen Achse U in der physikalischen Welt und einer vertikalen Achse V vor, das dem Projektionsschirm SCR überlagert ist. Das Zentrum jedes physikalischen Pixels auf dem Projektionsschirm SCR kann durch seine physikalischen Schirmkoordinaten U und V bestimmt werden. Darüber hinaus kann jedes physikalische Pixel durch ein Paar (I,J) von ganzzahligen Indizes beschrieben werden, wobei der Index I einen Wert im Bereich 0 bis M-1 und der Index J einen Wert im Bereich zwischen 0 und N-1 annimmt. S bezeichne die Menge der Indexpaare, d. h. S={(I,J):I= 0,1,2,...,M- 1, J=0,1,2,...,N- 1}.
  • Der Index I wird als der horizontale Pixelindex bezeichnet und der Index J wird als der vertikale Pixelindex bezeichnet. Es bezeichne f die Funktion, die jedes Indexpaar (I,J) in der Menge S auf sein entsprechendes physikalisches Pixelzentrum (U,V) auf dem Schirm SCR abbildet. Die Funktion f kann hier als die Anzeigefunktion bezeichnet werden. Unter idealen Bedingungen (die praktisch unmöglich zu realisieren sein können) hat die Funktion f die durch folgende Komponentengleichungen gegebene Struktur U=C0I+C3, V=C2J+C3,wobei C0, C1, C2, und C3 Konstanten sind. Jede Funktion mit dieser funktionalen Form wird hier als diagonale affin beschrieben.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können als die Menge S der Indexpaare (I,J) einmal (I,J) je Videoeinzelbild traversierend interpretiert werden. Für jedes Paar (I,J) in der Menge S wählt eine der Abtastung-zu-Pixel-Berechnungseinheiten 170 (a) ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld 420 aus, (b) führt eine Faltung von Abtastungen in der Umgebung des virtuellen Pixelzentrums aus, um einen Satz von Pixelwerten zu bestimmen und (c) überträgt den Satz von Pixelwerten an die Projektionseinrichtung PD1 (evtl. in analoger Form). Die Projektionseinrichtung PD1 verwendet die Pixelwerte, um die Farbe und Intensität des entsprechenden physikalischen Pixels zu bestimmen. Es repräsentiere g die Funktion, die ein virtuelles Pixelzentrum (X,Y) für jedes Indexpaar (I,J) in der Menge S definiert. Somit kann ein generisches Pixelzentrum als g(I,J) bezeichnet werden. Wenn die Funktion g eine diagonal affine Struktur hat, z. B. X=D0I+D1, Y=D2J+D3, wobei D0, D1, D2, und D3 Konstanten sind, dann wird die Virtuell-zu-Physikalisch-Transitionsfunktion h = f
    Figure 00570001
    g–1, die virtuelle Pixelzentren (X,Y) auf entsprechende physikalische Pixelzentren (U,V) abbildet, ebenfalls diagonal affin sein, d. h. U=E0X+E3 V=E2Y+E3,für bestimmte Konstanten E0, E1, E2, und E3.
  • Wenn die Skalierungskonstanten E0 und E3 gleich sind, behält die Funktion h das Ansichtsverhältnis bei. Auch wenn die Skalierungskonstanten C0 und C2 nicht gleich sind, können die Konstanten E0 und E2 durch geeignete Wahl der Konstanten D0 und/oder D2 gleich gemacht werden. Zum Beispiel kann die Konstante D0 so gewählt werden, daß
    Figure 00570002
    Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die virtuellen Pixelzentren so einrichten, daß sie das 2-D-Darstellungsfeld überdecken. Angenommen das 2-D-Darstellungsfeld 420 ist ein Rechteck, das durch X-Werte im Bereich von Null bis Xmax und Y-Werte im Bereich Null bis Ymax definiert ist. In diesem Fall können die Abtastung-zu-Pixel-Berechnungseinheiten 170 virtuelle Pixelzentren mittels der folgenden Definition der Funktion g berechnen: X = (Xmax/M)I + (Xmax/2M), Y = (Ymax/N)J + (Ymax/2N).wobei das Indexpaar (I,J) die Menge S durchläuft.
  • Alternativ können die Abtastung-zu-Pixel-Berechnungseinheiten 170 die virtuellen Pixelzentren so einrichten, daß sie ein Teilfenster des 2-D-Darstellungsfeldes 420 überdecken, wie in 23B dargestellt. Zum Beispiel angenommen, daß ein sichtbares Teilfenster 422 des 2-D-Darstellungsfeldes als ein Rechteck mit der unteren linken Ecke bei (X1,Y1) und der oberen rechten Ecke bei (X2,Y2) definiert ist. In diesem Fall können die virtuellen Pixelzentren gemäß folgender Koordinatenbeziehungen positioniert werden X = X1 + I(x2-X1)/M + (X2-X1)/2M, Y = Y1 + J(Y2-Y1)/N + (Y2-Y1)/2N,wobei I von Null bis M-1 und J von Null bis N-1 läuft. Die Darstellungseinheiten 150 (enthalten in einer oder mehreren Graphikkarten 116) können kontinuierlich Abtastungen in dem 2-D-Darstellungsfeld wiedergeben. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können jedoch Pixelwerte nur an den virtuellen Pixelzentren berechnen, die sich innerhalb des sichtbaren Teilfensters 422 befinden. Somit können Objekte (oder Teile von Objekten), die außerhalb des sichtbaren Teilfensters wiedergegeben werden, nicht sichtbar sein. Die in dem Randbereich (außerhalb des sichtbaren Teilfensters) wiedergegebenen Abtastungen können es ermöglichen, daß Effekte wie das Schwenken und Zoomen effizienter implementiert werden. Eine große Vielfalt von Auswahlmöglichkeiten für die Funktion g werden in Betracht gezogen. Die Beispiele von oben sind nicht dazu gedacht, einschränkend zu sein.
  • Um einen horizontalen und/oder vertikalen Schwenk des sichtbaren Teilfensters bezogen auf das 2-D-Darstellungsfeld zu erhalten, können die Abtastung-zu-Pixel-Berechnungseinheiten 170 die Koordinaten des Teilfensters X1, X2, Y1 und Y2 als eine Funktion der Zeit t ändern (z. B. als eine Funktion der Einzelbildanzahl). Zum Beispiel können die Gleichungen X1(t)=X1(0)+Rxt X2(t)=X2(0)+Rxt, Y1(t)=Y1(0)+Ryt, Y2(t)=Y2(0)+Ryt,zu einem Schwenk mit der horizontalen Schwenk-Rate Rx und der vertikalen Schwenk-Rate Ry führen, wobei Z(t) den Wert der Variablen Z zum Zeitpunkt t bezeichnet, und Z(0) den Wert der Variablen Z zum Zeitpunkt Null bezeichnet. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die Schwenk-Gleichungen implementieren und können die virtuellen Pixelzentren dynamisch neu berechnen. Dadurch können die virtuellen Pixelzentren mit dem sichtbaren Teilfenster versetzt werden. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 die Koordinaten X1, X2, Y1 und Y2 des Randes des Teilfensters berechnen und die virtuellen Pixelzentren pro Einzelbild oder vielleicht einmal für einige Einzelbilder neu berechnen.
  • Darüber hinaus kann ein Zoom-Effekt durch Ändern der Koordinaten der Ränder des Teilfensters wie folgt erzeugt werden: X1(t)=X1(0)-Rzt X2(t)=X2(0)+Rzt, Y1(t)=Y1(0)-KRzt, Y2(t)=Y2(0)+KRzt,wobei Rz die skalare Zoom-Rate ist, und K das Ansichtsverhältnis ist, d. h. K=(Y2(0)Y1(0))/(X2(0)-X1(0)).
  • Diese Zoom-Gleichungen behalten das Ansichtsverhältnis und den Mittelpunkt des sichtbaren Teil fensters über das Zoomen hinweg bei. Es werden jedoch andere Ausführungsformen betrachtet, bei denen sich das Ansichtsverhältnis des sichtbaren Teilfensters über das Zoomen hinweg ändern kann. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die Zoom-Gleichungen implementieren. Die virtuellen Zentren können dynamisch neu berechnet werden, so daß sich die virtuellen Pixelzentren zusammen mit dem sichtbaren Teilfenster ausdehnen (oder zusammenziehen).
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die Koordinaten X1, X2, Y1 und Y2 des Teilfensters gemäß irgendeiner gewünschten Funktion der Zeit t ändern. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 gleichzeitiges Schwenken und Zoomen durch Kombination der oben gegebenen Zoom-Gleichungen und Schwenk-Gleichungen durchführen.
  • Wie oben beschrieben können sich die Abtastung-zu-Pixel-Berechnungseinheiten 170 die Arbeit des Erzeugens eines Videoeinzelbilds teilen. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 das virtuelle Pixelarray in separate vertikale Streifen organisieren. Die generische Abtastung-zu-Pixel-Berechnungseinheit 170-K (wobei K gleich 1, 2, 3 oder 4 ist) kann Pixelwerte für die virtuellen Pixelzentren g(I,J) entsprechend I im Bereich von (K-1)M/4 bis (KM/4)-1 und J im Bereich von Null bis N-1 berechnen. Daher können die Abtastung-zu-Pixel-Berechnungseinheiten 170 parallel arbeiten. Das Prinzip der Aufteilung der Pixelwertberechnungen in vertikale Streifen kann auf eine beliebige Anzahl von Abtastung-zu-Pixel-Berechnungseinheiten 170 ausgeweitet werden.
  • Darüber hinaus kann die generische Abtastung-zu-Pixel-Berechnungseinheit 170-K (wobei K gleich 1, 2, 3 oder 4 ist) eine Startposition (XS,YS), eine horizontale Schrittweite ΔX und eine vertikale Schrittweite ΔY zum Erzeugen aufeinanderfolgender virtueller Pixelzentren speichern. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-K virtuelle Pixelzentren (X,Y) als eine Folge von Zeilen erzeugen. Innerhalb einer Zeile kann die Y-Koordinate konstant gehalten werden, und aufeinanderfolgende virtuelle Pixelzentren (X,Y) können mittels der rekursiven Beziehung X = X + ΔX erzeugt werden. Am Ende einer Zeile kann die Y-Koordinate für die nächste Zeile mittels der rekursiven Beziehung Y = Y + ΔY erzeugt werden. Die Startposition (XS,YS) definiert die Position des ersten virtuellen Pixelzentrums in der ersten Zeile. Die Startposition (XS,YS), die vertikale Schrittweite und die horizontale Schrittweite können programmierbar sein und je Einzelbild geändert werden. Daher kann das Array von virtuellen Pixelzentren durch Ändern der Startposition (XS,YS), der horizontalen Schrittweite ΔX und der vertikalen Schrittweite ΔY für jede Abtastung-zu-Pixel-Berechnungseinheit 170-K versetzt, vertikal skaliert und/oder horizontal skaliert werden.
  • Reale Projektionseinrichtungen und Projektionsschirme weichen vom Ideal auf verschiedene Weisen ab, wovon einige in 6A abgebildet sind. Zum Beispiel kann das auf dem Schirm SCR dargestellte physikalische Pixelarray eine Trapezverzerrung KST (auch als eine trapezförmige Verzerrung bezeichnet), eine Kissenverzerrung PNC, eine Tonnenverzerrung BRL, etc. aufweisen. Darüber hinaus können sich fundamentale Verzerrungsmodi kombinieren, um komplexere Verzerrungen wie durch die kombinierte Verzerrung CDST angedeutet zu bilden.
  • Daher hat die Anzeigefunktion f, die die Abbildung von Indexpaaren (I,J) auf physikalische Zentren (U,V) repräsentiert, im allgemeinen keine diagonal affine Struktur. Die physikalischen Anzeigeverzerrungen können entstehen, weil (a) der Schirm nicht flach ist, (b) der Schirm nicht senkrecht zur Projektionsachse ist, (c) die Optik (Linsen/Spiegel) in der Projektionseinrichtung räumlich nicht gleichmäßig ist, (d) die Bildanzeige bezüglich der Linsen versetzt ist, (e) die in die Projektionseinrichtung eingebettete Anzeige ein verzerrtes Bild erzeugt, etc.
  • Da h = f
    Figure 00570001
    g–1 gilt, ist es möglich, der Funktion h durch passende Wahl der Funktion g jede gewünschte Form zu geben. Es ist für die Funktion h wünschenswert, diagonal affin zu sein und das Ansichtsverhältnis beizubehalten, weil diese Bedingungen trotz der Tatsache, daß das physikalische Pixelarray verzerrt sein kann, eine unverzerrte Darstellung von Objekten auf dem Schirm SCR garantieren. Es repräsentiere A eine diagonal affine und das Ansichtsverhältnis erhaltende Abbildung von dem virtuellen Schirmraum auf den physikalischen Schirmraum (d. h. von XY nach UV). Wenn die Funktion g durch die Regel g = A–1
    Figure 00570001
    f festgelegt wird, dann ist h = f
    Figure 00570001
    g–1 = A wie gewünscht.
  • Die obenstehende Auswahl für die Funktion g legt nahe, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170 beim Erzeugen von virtuellen Pixelzentren innerhalb des 2-D-Darstellungsfeldes 420 dieselbe Art von Verzerrung implementieren können (d. h. eine geometrisch ähnliche Verzerrung), um eine gegebene Anzeigeverzerrung zu korrigieren. Dies wird durch die Tatsache impliziert, daß die Funktion fein kompositionierender Faktor von Funktion g ist. Zum Beispiel zeigt 24A ein physikalisches Pixelarray, das trapezförmig verzerrt ist. Eine solche Verzerrung kann entstehen, wenn die obere Kante des Projektionsschirms SCR näher an der Projektionseinrichtung PD, liegt als die untere Kante. Darüber hinaus kann eine innerhalb der Projektionseinrichtung eingebettete Anzeige ein solch verzerrtes Bild erzeugen. Daher bildet die Anzeigefunktion f das Rechteck von Indexpaaren (I,J) auf ein trapezförmiges physikalisches Fenster PW ab, das aus physikalischen Pixelzentren besteht. In diesem Fall können die Abtastung-zu-Pixel-Berechnungseinheiten 170 die virtuellen Pixelzentren mit einem ähnlichen trapezförmigen Muster in dem 2-D-Darstellungsfeld erzeugen. Während ein Beobachter, der auf den Schirm SCR schaut, die trapezförmige Verzerrung des physikalischen Fensters PW wahrnehmen kann, sind Objekte (und Teile von Objekten), die in dem physikalischen Fenster PW erscheinen, nicht trapezförmig verzerrt (wie in 24B dargestellt), da die virtuellen Pixelzentren in dem virtuellen Schirmraum in Vorwegnahme der trapezförmigen physikalischen Verzerrung trapezförmig verzerrt wurden.
  • Als ein Ergebnis der obenstehenden Diskussion wurde beobachtet, daß die Kompensation einer beliebigen Verzerrung der physikalischen Pixel durch eine geeignete Auswahl von virtuellen Pixelzentren in dem 2-D-Darstellungsfeld erreicht werden kann. Während viele der hier beschriebenen Beispiele Anzeige- oder Projektionseinrichtungen einbeziehen, die nominell rechteckige Pixelarrays erzeugen, können somit Anzeige-/Projektionseinrichtungen mit jeder möglichen Pixelkonfiguration unterstützt werden. Zum Beispiel erzeugen manche Anzeige-/Projektionseinrichtungen ein nominell sechseckiges Pixelarray. Somit können die virtuellen Pixelzentren (zumindest zu Anfang) mit einer ähnlichen sechseckigen Konfiguration positioniert werden, d. h. jede Zeile von virtuellen Pixeln kann horizontal um plus oder minus einen halben Pixelabstand bezogen auf die vorhergehende Zeile verschoben werden. Außerdem kann das Ansichtsverhältnis Δy/Δx eine Anpassung erfordern, um ein symmetrisches sechseckiges Array zu erzeugen, wobei Δy der Abstand zwischen Zeilen von virtuellen Pixelzentren ist. Als ein anderes Beispiel können es elektronisch-adressierbare LCD-Anzeige/Projektionseinrichtungen ermöglichen, daß Pixel auf dem Schirm gemäß einer stochastischen Verteilung positioniert werden. Das Graphiksystem kann dafür ausgelegt sein, solche Anzeige/Projektionseinrichtungen zu unterstützen, solange das stochastische Muster bekannt ist, so daß die virtuellen Pixelzentren in einem ähnlichen stochastischen Muster plaziert werden können.
  • Die Anzeigefunktion f kann basierend auf Messungen, die durch eine Aufnahmeeinrichtung wie eine Videokamera erhalten werden, abgeschätzt werden. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein oder mehrere Kalibrierungsmuster für die Anzeige auf dem Schirm SCR an die Projektionseinrichtung PD1 übertragen. Die Projektionseinrichtung erzeugt als Reaktion auf jedes der Kalibrierungspixelmuster ein physikalisches Bild. Eine Videokamera kann die auf dem Schirm SCR angezeigten physikalischen Bilder für jedes der Kalibrierungsmuster aufnehmen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 (oder eine ausgewählte Instanz dieser Einrichtungen) können die Funktion f basierend auf den bekannten Kalibrierungsmustern und den aufgenommenen physikalischen Bilder abschätzten. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 eine stückweise lineare Approximation der Anzeigefunktion f und dadurch eine stückweise lineare Approximation der virtuellen Pixelauswahlfunktion g erzeugen.
  • Nach einer anderen Ausführungsform empfangen die Abtastung-zu-Pixel-Berechnungseinheiten 170 Kalibrierungseingaben von einem Benutzer. Der Benutzer kann sich vor dem Schirm SCR befinden und den Schirm SCR beobachten. Der Benutzer kann die durch das physikalische Fenster PW aufgezeigte Art der Verzerrung identifizieren. Eine Liste (z. B. ein Menü) von Verzerrungsarten kann dem Benutzer auf dem Monitor 84 präsentiert werden. Für das in den 24A & 24B dargestellte Beispiel kann der Benutzer angeben, daß die Verzerrung trapezförmig ist. Als Reaktion auf diese Auswahl können die Abtastung-zu-Pixel-Berechnungseinheiten 170 in einen Trapezkalibrierungsmodus eintreten. In dem Trapezkalibrierungsmodus reagieren die Abtastung-zu-Pixel-Berechnungseinheiten 170 auf Plus- und Minus-Anpassungssignale, die von dem Benutzer eventuell durch eine graphische Benutzeroberfläche (GUI) gesetzt werden. Als Reaktion auf das Plus-Anpassungssignal können die Abtastung-zu-Pixel-Einheiten 170 die Funktion g dynamisch so anpassen, daß der virtuelle Pixelbereich VPR, d. h. der Bereich des 2-D-Anzeigefeldes, der von den virtuellen Pixelzentren bedeckt wird, sich entlang einer Ein-Parameter-Familie von Trapezen wie in 25A verformt. Das Plus-Anpassungssignal kann veranlassen, daß sich der VPR in Richtung eines ansteigenden Verhältnisses der Länge der unteren Kante zu der Länge der oberen Kante verformt. Das Minus-Anpassungssignal kann veranlassen, daß sich der VPR in umgekehrter Richtung verformt, d. h. in der Richtung eines fallenden Verhältnisses der Länge der unteren Kante zu der Länge der oberen Kante. Der Benutzer steuert die Plus- und Minus-Anpassungssignale, bis Objekte (wie das Automobil von 24B), die in dem physikalischen Fenster PW angezeigt werden, unverzerrt erscheinen. Man beachte, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170 fortfahren, während des Anpassungsvorgangs aufeinanderfolgende Einzelbilder von Ausgabepixelwerten zu erzeugen, so daß der Benutzer den Effekt der Plus-/Minus-Anpassungen auf dem Schirm SCR sehen kann.
  • Der Anpassungsvorgang kann von dem oben beschriebenen Zustand ausgehen, in dem der virtuelle Pixelbereich VPR ein Rechteck ist, das das 2-D-Anzeigefeld (oder das sichtbare Teilfenster) überdeckt. Der Benutzer kann irgendeine aus einer Vielzahl von Verzerrungsarten wie eine Trapezverzerrung, Kissenverzerrung, Pin-Balance-Verzerrung, Scherungsverzerrung, Rotationsverzerrung, etc. auswählen und dadurch in einen entsprechenden Kalibrierungsmodus eintreten. 25A zeigt auch eine Ein-Parameter-Familie von Pin-Balance-Verzerrungen. Der Kalibrierungsvorgang für den Pin-Balace-Kalibrierungsmodus kann ähnlich dem gerade beschriebenen Vorgang für Trapezverzerrungen sein. Der Benutzer kann aufeinanderfolgend einige unterschiedliche Kalibrierungen durchführen, um komplexere Verzerrungen zu korrigieren. In einer zweiten Kalibrierung kann die Funktion g (und somit der VPR) das Anpassen von seinem Zustand am Ende der ersten Kalibrierung ausgehend beginnen und so weiter.
  • Nach einer Ausführungsform kann die Ein-Parameter-Familie von Verzerrungen (für einige oder alle Kalibrierungsmodi) so ausgelegt sein, daß jedes Mitglied (z. B. Trapez) der Familie genau (d. h. maximal) in ein anfängliches Rechteck IR einbeschrieben ist, wie in 25B abgebildet. Dies führt dazu, daß der virtuelle Pixelbereich VPR, der in einer ersten Kalibrierung anfängt, sich übereinstimmend mit dem 2-D-Anzeigefeld (oder sichtbaren Teilfenster) zu einer abschließenden Form verformt, die genau in das 2-D-Anzeigefeld (oder sichtbare Teilfenster) einbeschrieben ist. Somit ist der abschließende Zustand des VPR nach einer oder mehreren Kalibrierungen in dem 2-D-Anzeigefeld (oder sichtbaren Teilfenster) enthalten und bedeckt so viel von dem 2-D-Anzeigefeld (oder sichtbaren Teilfenster) wie für den gegebenen Satz von Verzerrungen möglich. Dadurch kann das gesamte physikalische Fenster PW verwendet werden, um ein graphisches Bild anzuzeigen, wie in 24B dargestellt.
  • Nach einer zweiten Ausführungsform ist die Ein-Parameter-Familie von Verzerrungen für jeden Kalibrierungsmodus so ausgelegt, daß jedes Mitglied (z. B. Trapez) der Familie genau ein anfängliches Rechteck IR enthält, wie in den 25C & 25D abgebildet. Dies hat zur Folge, daß der virtuelle Pixelbereich VPR, von dem in einer ersten Kalibrierung ausgegangen wird und der mit dem 2-D-Anzeigefeld (oder dem sichtbaren Teilfenster) übereinstimmt, sich zu einer abschließenden Form verformt, die das 2-D-Anzeigefeld (oder das sichtbare Teilfenster) enthält. Somit enthält der Endzustand des VPR (nach einer oder mehreren Kalibrierungen) das 2-D-Anzeigefeld (oder das sichtbare Teilfenster). Zum Beispiel kann der VPR nach den in den 25C & 25D vorgeschlagenen Trapezkalibrierungen ein Trapez ABCF sein, das genau das 2-D-Anzeigefeld ABDE enthält, wie in 26A dargestellt.
  • Wie oben in Verbindung mit 18C beschrieben kann ein virtuelles Pixelzentrum, das außerhalb des 2-D-Anzeigefeldes liegt, d. h. in den Randbereichen AEF oder BCD, einen Filterträger haben, der (a) eine Mehrheit von Dummy-Abtastungen, die auf die Hintergrundfarbe gesetzt sind, und (b) eine Minderheit (vielleicht keine) von den wiedergegebenen Abtastungen von innerhalb des 2-D-Anzeigefeldes enthält. Daher wird einem solchen virtuellen Pixel am Rand (durch Filtern) ein Farbwert zugewiesen, der gleich oder nahe der Hintergrundfarbe ist, abhängig von dem Bruchteil der Dummy-Abtastungen gegenüber den wiedergegebenen Abtastungen, die den Filterträger schneiden. Aus diesem Grund scheinen die Randbereiche GKL und HIJ des physikalischen Fensters PW wie in 26B gezeigt die Hintergrundfarbe (z. B. schwarz) zu haben. Umgekehrt können virtuelle Pixelzentren, die innerhalb des 2-D-Anzeigefeldes liegen, einen Filterträger haben, der (c) eine Mehrheit von wiedergegebenen Abtastungen aus dem Inneren des 2-D-Anzeigefeldes und (d) eine Minderheit (vielleicht keine) von den Dummy-Abtastungen enthält, die außerhalb des 2-D-Anzeigefeldes erzeugt werden. Daher wird einem solchen internen virtuellen Pixel ein Farbwert zugewiesen, der gleich (oder ungefähr gleich) einem Durchschnitt von wiedergegebenen Abtastungen ist. Wenn die Kalibrierung erfolgreich durchgeführt wurde, kann die Umsetzungsabbildung h von virtuellen Pixeln in physikalische Pixel diagonal affin und Ansichtsverhältnis erhaltend sein. Somit werden die virtuellen Pixel innerhalb des 2-D-Anzeigefeldes ABDE auf ein Rechteck GHJK in dem physikalischen Fenster PW abgebildet. Betrachtern kann ein rechteckiger Betrachtungsbereich angenehmer sein und daher können sie es akzeptieren, zum Betrachten des Bildes den Verlust der Randbereiche GKL und HIJ in dem physikalischen Fenster PW hinzunehmen.
  • Nach einer alternativen Ausführungsform können die Abtastung-zu-Pixel-Berechnungseinheiten 170 vorteilhafterweise die Faltungsberechnungen für die virtuellen Pixelzentren überspringen, die außerhalb des 2-D-Anzeigefeldes 420 liegen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können Pixelfarbwerten für solche extern liegenden virtuellen Pixelzentren den Farbevektor des Hintergrunds zuweisen (z. B. RGB=[0,0,0], was schwarz repräsentiert).
  • Ein Hersteller von Anzeigeeinrichtungen (z. B. Monitoren oder Projektoren) kann die virtuellen Pixelzentren für eine Anzeigeeinrichtung zum Zeitpunkt der Herstellung kalibrieren. Die Menge von kalibrierten virtuellen Pixelzentren für die Anzeigeeinrichtung kann auf einem Speichermedium wie einer Platte oder einer CD-ROM gespeichert werden. Alternativ kann das Speichermedium ein Teil des RAM und/oder ROM sein, das in der Anzeigeeinrichtung liegt. Der Hersteller kann das Speichermedium zusammen mit der Anzeigeeinrichtung an einen Benutzer ausliefern. Der Benutzer kann die Menge von kalibrierten virtuellen Pixelzentren aus dem Speichermedium in das Graphiksystem 112 übertragen. (Alternativ kann der Übertragungsvorgang automatisiert sein.) Die kalibrierten virtuellen Pixelzentren können es dem Benutzer ermöglichen, mittels des Graphiksystems 112 sofort (oder schneller) eine unverzerrte Darstellung von Bildern auf der Anzeigeeinrichtung zu erreichen. Man beachte, daß der Hersteller es dem Benutzer ermöglichen kann, die kalibrierten virtuellen Pixelzentren über das Internet herunterzuladen.
  • Ein geschulter Arbeiter bei einer Herstellungseinrichtung kann die virtuellen Pixelzentren durch Auswählen eines oder mehrerer Kalibrierungsmodi (z. B. Trapezmodus, Tonnenmodus, Kissenmodus, etc.) und durch Liefern von Plus/Minus-Anpassungseingaben für jeden Kalibrierungsmodus kalibrieren, bis Objekte in jedem Modus so unverzerrt wie möglich erscheinen, wie oben beschrieben. Alternativ kann die Kalibrierung des Herstellers automatisiert sein. Zum Beispiel kann ein adaptives Steuerungssystem dafür ausgelegt sein, den geschulten Arbeiter zu ersetzen.
  • Die Kalibrierung des Herstellers kann besonders wichtig sein, wenn die Anzeigeverzerrungen von Einheit zu Einheit wesentlich schwanken. Wenn die Anzeigeverzerrungen stabil sind, d. h. über die Zeit hinweg nicht wesentlich schwanken, braucht das Graphiksystem 112 möglicherweise keinen Mechanismus zur Kalibrierung durch den Benutzer bereitzustellen. Umgekehrt kann die Schwankung der Anzeigeverzerrungen über die Zeit hinweg wesentlich sein. Somit kann das Graphiksystem 112 einen Mechanismus (wie die oben beschriebenen) zur Kalibrierung durch den Benutzer bereitstellen.
  • Wenn die zeitliche Schwankung der Anzeigeverzerrung groß ist, kann das Graphiksystem 112 für eine kontinuierliche (d. h. Echtzeit-)Kalibrierung ausgelegt sein. Das Graphiksystem 112 kann zum Beispiel dafür ausgelegt sein, in Abständen unterschwellige Kalibrierungsmuster anzuzeigen. Eine Videokamera kann die Darstellung der Kalibrierungsmuster auf der Anzeigeeinrichtung (oder dem Schirm SCR) überwachen. Das Graphiksystem 112 kann die Videobilder analysieren und als Reaktion auf die Videobilder korrigierte virtuelle Pixelzentren in dem 2-D-Anzeigefeld 420 erzeugen. Eine solche kontinuierliche Kalibrierung kann die Verwendung von Anzeigeeinrichtungen mit hoher Drift erleichtern, was ansonsten die Betrachter stören würde.
  • Die vorliegende Erfindung betrachtet verschiedene Ausführungsformen des Graphiksystems 112, wobei jede Kombination von Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrierung unterstützt werden kann. Darüber hinaus kann das Graphiksystems 112 dafür ausgelegt sein (oder nicht), das Herunterladen virtueller Pixelzentren zu unterstützen, die extern berechnet/festgelegt wurden wie bei einer Kalibrierung durch den Hersteller.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können lokalisierte Kalibrierungen unterstützen. Nach einer Ausführungsform kann der Benutzer einen lokalen Bereich (z. B. einen Quadranten, ein beliebiges Rechteck, eine beliebige Scheibe, eine Kante, Ecke, etc.) des 2-D-Anzeigefeldes 420 auswählen, für den die Kalibrierung durchzuführen ist. Die Darstellungseinheiten 150 können während der lokalisierten Kalibrierungen Abtastungen für ein rechteckiges Gitter (oder ein anderes Kalibrierungsmuster) in dem 2-D-Anzeigefeld 420 darstellen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können in Reaktion auf Benutzereingabesignale die Positionen der virtuellen Pixelzentren entsprechend dem lokalen Bereich anpassen und die virtuellen Pixelzentren außerhalb des lokalen Bereiches relativ ungestört lassen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können einen Transitionsbereich um den lokalen Bereich herum implementieren, in dem die Empfindlichkeit der virtuellen Pixelzentren gegenüber Kalibrierungsanpassungen von 100% am inneren Rand des Transitionsbereiches auf 0% am äußeren Rand des Transitionsbereiches übergeht. Konzeptionell kann jedes Verzerrungsmuster durch eine ausreichende Anzahl von lokalen Kalibrierungen korrigiert werden.
  • Die lokalisierte Kalibrierungseigenschaft bzw. -möglichkeit kann speziell vorteilhaft sein, wenn unterschiedliche Teile des physikalischen Pixelarrays unterschiedliche Arten von Positionsverzerrungen ausdrücken. Zum Beispiel kann der Schirm SCR an einer oder mehreren Stellen verformt sein oder kontinuierlich verformt sein.
  • Nach einer Ausführungsform kann eine Einrichtung zur Abstandmessung an oder nahe der Projektionseinrichtung PD1 gelegen sein. Die Einrichtung zur Abstandmessung kann den Abstand von Punkten auf dem Schirm SCR von der Einrichtung zur Abstandmessung messen. Die Einrichtung zur Abstandmessung kann Vektorversetzungen der Punkte auf dem Schirm bezogen auf die Einrichtung zur Abstandmessung tiefem. Diese Meßwerte können verwendet werden, um eine Oberflächenfunktion für den Schirm SCR abzuschätzen. Darüber hinaus kann die Position eines Beobachters bezogen auf das Projektor-/Schirmsystem gemessen werden. Die Oberflächenfunktion und die Position des Beobachters können an ein geometrisches Modellierungs- und/oder Strahlverfolgungs- bzw. Ray-Tracing-Programm geliefert werden, das einen optimalen Satz von virtuellen Pixelzentren für das gegebenen Szenario ermittelt. Somit kann das Graphiksystem 112 beliebige Bildverzerrungen aufgrund der Krümmung der Projektionsoberfläche korrigieren.
  • Wie oben in Verbindung mit den 23A und 23B beschrieben kann jede der Abtastung-zu-Pixel-Berechnungseinheiten 170 eine Startposition (XS,YS), eine horizontale Schrittweite ΔX und eine vertikale Schrittweite ΔY zum Erzeugen eines rechteckigen Arrays von virtuellen Pixelzentren (X,Y) in dem 2-D-Darstellungsfeld speichern. Ein verzerrtes Array von virtuellen Pixelzentren kann mittels Vektorverschiebungen bzw. -abständen von den entsprechenden virtuellen Pixelzentren in einem rechteckigen Array beschrieben werden. Zum Beispiel repräsentiere die Funktion g0:(I,J)→(X,Y) ein rechteckiges Array von virtuellen Pixelzentren und die Funktion gd:(I,J)→(X,Y) ein verzerrtes Array von virtuellen Pixelzentren. Eine Verschiebungsfunktion Δg kann durch Subtraktion von g0 von gd erzeugt werden. Die Verschiebungsfunktionswerte Δg(I,J) können je Pixel gespeichert werden. Es kann jedoch effizienter sein, eine stückweise lineare Approximation an die Verschiebungsfunktion Δg zu speichern und die Verschiebungswerte Δg(I,J) je Pixel zu interpolieren. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können verzerrte virtuelle Pixelzentren und zugehörige Pixelwerte gemäß dem folgenden Pseudocode-Fragment erzeugen.
  • Figure 00650001
  • Jedes verzerrte virtuelle Pixelzentrum (Xd,Yd) wird durch Addition des Vektorabstands- bzw. -verschiebungswertes Δg(I,J) zu einem entsprechenden virtuellen rechteckigen Pixelzentrum (Xr,Yr) erzeugt. Eine Faltungsfunktion wird aufgerufen, um Pixelwerte (z. B. Rot-, Grün-, Blau- und Alphawerte) an den verzerrten Zentren (Xd,Yd) zu berechnen. Sobald sie berechnet sind, werden die Pixelwerte durch einen Videokanal an die Projektionseinrichtung PD1 übertragen. Die innere while-Schleife erzeugt aufeinanderfolgende verzerrte Zentren (Xd,Yd) innerhalb einer Zeile. Die äußere while-Schleife erzeugt aufeinanderfolgende Zeilen. Die rechteckigen Zentren (Xr,Yr) haben einen Zwischenraum mit dem Abstand ΔX horizontal und ΔY vertikal. Die Startposition (XS,YS) steuert die Position des ersten rechteckigen Pixels in der ersten Zeile und legt somit die Position des gesamten rechteckigen Arrays fest. Das obenstehende Fragment kann einmal je Videoeinzelbild ausgeführt werden.
  • In dem Beispiel von oben werden Dreiergruppen von Rot, Grün, und Blau bei jedem virtuellen Pixelzentrum berechnet. Wie jedoch unten genauer beschrieben wird kann ein unterschiedlicher Satz von virtuellen Positionen (in dem 2-D-Darstellungsfeld) verwendet werden, um die roten, grünen und blauen Pixelwerte zu berechnen. Darüber hinaus können die drei Farben mit ungleichen räumlichen Dichten berechnet werden. Zum Beispiel kann in einem sechseckigen Array von virtuellen Pixelzentren eines von jeweils sechs virtuellen Pixelzentren ein blaues Zentrum sein (bei dem nur blaue Werte berechnet werden). Von den verbleibenden fünf von jeweils sechs virtuellen Pixelzentren können drei rote Zentren und zwei grüne Zentren sein. Blau kann eine geringere räumliche Dichte gegeben werden, da das Auge weniger empfindlich gegenüber Blau als gegenüber Rot oder Grün ist.
  • Wie oben angemerkt kann jede Abtastung-zu-Pixel-Berechnungseinheit 170-K unabhängig betrieben werden und Ausgabepixelwerte erzeugen, die einem entsprechendem vertikalen Streifen des virtuellen Pixelarray entsprechen. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-K (wobei K gleich 1, 2 3 oder 4 ist) gemäß dem folgenden Codefragment betrieben werden:
    Figure 00660001
    wobei XS(K) und YS(K) die Startposition für die Abtastung-zu-Pixel-Berechnungseinheit 170-K darstellen. In ähnlicher Weise stellen ΔX⎕ und ΔY(K) die horizontale bzw. vertikale Schrittweite dar, die von der Abtastung-zu-Pixel-Berechnungseinheit 170-K verwendet wird. Die hier und an anderer Stelle in dieser Spezifikation dargestellten Pseudocode-Fragmente dienen dazu, die Anordnung von Berechnungen, die von der Abtastung-zu-Pixel-Berechnungseinheit 170 in verschiedenen Ausführungsformen durchgeführt werden, zu beschreiben. Diese Berechnungen können in bestimmter Hardware und/oder programmierbarer Hardware, die auf Programmcode reagiert, implementiert werden.
  • Kompensation der Farbverzerrung
  • Irgendein Verzerrungsmechanismus (oder eine Kombination von Mechanismen), der zu einer Trennung von Farbkomponenten von physikalischen Pixeln führt, die durch eine Anzeigeeinrichtung (wie einen Monitor oder eine Projektionseinrichtung) dargestellt werden, wird hier als Farbverzerrung bezeichnet. Nach einer Ausführungsform kann das Graphiksystem 112 dafür ausgelegt sein, eine Farbverzerrung durch geeignete Wahl separater virtueller Pixelzentren für jede Farbkomponente zu kompensieren.
  • 27A stellt ein Beispiel von Farbabweichung dar, das eine Art von Farbverzerrung repräsentiert. Wie gezeigt kann eine Projektionseinrichtung PD1 eine eingebettete Anzeige ED und ein optisches Subsystem OS beinhalten. Die eingebettete Anzeige ED kann als Reaktion auf ein Video eingangssignal, das von dem Graphiksystem 112 bereitgestellt wird, aufeinanderfolgende Videoeinzelbilder auf dem Anzeigeschirm DS erzeugen. Die Videoeinzelbilder werden von dem optischen Subsystem OS auf den Projektionsschirm SCR projiziert. Das optische Subsystem OS kann optische Einrichtungen wie Linsen. Prismen etc. beinhalten. Da der Brechungsindex optischer Materialien von der Wellenlänge abhängt. werden verschiedene Farben mit unterschiedlichen Winkeln in dem optischen Subsystem OS gebeugt. Diese wellenlängeabhängige Beugung wird gemeinhin als Farbverzerrung bezeichnet. Man betrachte einen Lichtstrahl LR, der von einem einzelnen Quellpixel auf dem Anzeigeschirm DS ausgeht. Der Lichtstrahl LR kann eine Mischung von roten, blauen und grünen Komponenten sein. Wenn der Lichtstrahl LR durch das optische Subsystem OS hindurchgeht, können die roten, blauen und grünen Komponenten des Lichtstrahls LR in ein Farbspektrum aufgeteilt werden. Somit kann das auf dem Schirm SCR erzeugte physikalische Bild verschwommen erscheinen. Wenn das Quellpixel (und somit der Lichtstrahl LR) alternativ nur mit Rot, nur mit Grün und nur mit Blau getrieben wird, dann können separate rote, grüne und blaue Ausgabestrahlen OR beobachtet werden, die aus dem optischen Subsystem OS hervortreten. Die Ausgabestrahlen OR treffen auf dem Schirm SCR an den Punkten PR=(UR,VR), PB=(UB,VB) bzw. PG=(UG,VG) auf. Diese Punkte werden hier als das rote physikalische Pixelzentrum, das grüne physikalische Pixelzentrum bzw. das blaue physikalische Pixelzentrum bezeichnet. Jedes Quellpixel auf dem Anzeigeschirm DS erzeugt eine solche Dreiergruppe von roten, grünen und blauen physikalischen Pixelzentren, wie unten in 27B dargestellt. Man beachte, daß in 27B ein übertrieben kleines (4×4)-Array der Einfachheit halber dargestellt ist.
  • Die roten physikalischen Pixelzentren (mit kleinen weißen Kreisen gekennzeichnet) auf dem Schirm SCR bilden ein rotes physikalisches Array. Die grünen physikalischen Pixelzentren (mit kleinen weißen Rechtecken gekennzeichnet) auf dem Schirm SCR bilden ein grünes physikalisches Array. Die blauen physikalischen Pixelzentren (mit kleinen schwarzen Kreisen gekennzeichnet) bilden ein grünes physikalisches Array. Diese farbigen physikalischen Arrays sind nicht in einer Reihe aufgestellt, in diesem Fall wegen der Farbabweichung. Darüber hinaus wird jedes der farbigen physikalischen Arrays wie oben diskutiert verzerrt. Zum Beispiel kann jedes eine Kissenverzerrung, eine Trapezverzerrung, etc. haben.
  • Man beachte, daß die Farbabweichung nur eine Form von Farbverzerrung ist. Für eine detailliertere Diskussion der Arten von Farbverzerrungen in verschiedenen Projektionstechnologien siehe den Abschnitt „Technischer Hintergrund der Erfindung". Die unten beschriebenen Ausführungsformen der Farbverzerrungskompensation können verwendet werden, um beliebige Farbverzerrungen unabhängig von dem Mechanismus oder den Mechanismen, durch den oder die sie entstehen, zu kompensieren.
  • Das rote physikalische Array kann durch eine rote Anzeigefunktion fR beschrieben werden, die jedes Indexpaar (I,J) in der Menge S auf ein entsprechendes rotes physikalisches Pixelzentrum PR=(UR,VR) auf dem Schirm SCR abbildet. In ähnlicher Weise kann das Ensemble von grünen physikalischen Pixelzentren PG=(UG,VG) durch eine grüne Anzeigefunktion fG beschrieben werden, und das Ensemble von blauen physikalischen Pixelzentren PB=(UB,VB) durch eine blaue Anzeigefunktion fB beschrieben werden.
  • In den oben diskutierten Ausführungsformen wählen die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein einzelnes Array von virtuellen Pixelzentren in dem 2-D-Darstellungsfeld aus, und alle drei Farbwerte werden bei jedem virtuellen Pixelzentrum berechnet. In der vorliegenden Ausführungsform können die Abtastung-zu-Pixel-Berechnungseinheiten 170 bestimmte Stellen in dem 2-D-Darstellungsfeld für die Berechnung jeder Farbe auswählen. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein erstes Array von virtuellen Pixelzentren zur Berechnung von grünen Pixelwerten, ein zweites Array von virtuellen Pixelzentren zur Berechnung von roten Pixelwerten und ein drittes Array von virtuellen Pixelzentren zur Berechnung von blauen Pixelwerten auswählen. Die Funktion gG repräsentiere die Auswahl der „grünen" virtuellen Pixelzentren. Damit spezifiziert der Funktionswert gG(I,J) für jedes Indexpaar (I,J) in der Menge S die Stelle (XG,YG) eines grünen virtuellen Pixelzentrums QG in dem 2-D-Darstellungsfeld. Die Funktion gR repräsentiere die Auswahl der roten virtuellen Pixelzentren. Damit spezifiziert der Funktionswert gR(I,J) für jedes Indexpaar (I,J) in der Menge S die Stelle (XR,YR) eines roten virtuellen Pixelzentrums QR. Die Funktion gB repräsentiere die Auswahl der blauen virtuellen Pixelzentren. Damit spezifiziert der Funktionswert gB(I,J) für jedes Indexpaar (I,J) in der Menge S die Stelle (XB,YB) eines blauen virtuellen Pixelzentrums QB.
  • Die Funktionen
    Figure 00680001
    bilden von dem virtuellen Schirmraum in den physikalischen Schirmraum ab (d. h. von XY nach UV). Es ist wünschenswert, daß diese Funktionen diagonal affin, ansichtsverhältniserhaltend und gleich sind. Sei A eine diagonal affine und ansichtsverhältniserhaltende Abbildung von dem virtuellen Schirmraum in den physikalischen Schirmraum. Wenn die farbweisen Auswahlfunktionen der virtuellen Pixel so gewählt werden, daß
    Figure 00680002
    dann folgt, daß hG=hR=hB=A, wie gewünscht. Die obenstehende Wahl für die grüne Auswahlfunktion gG legt nahe, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170 dieselbe Art von Verzerrung beim Erzeugen der grünen virtuellen Pixelzentren QG wie in 27B angedeutet implementieren können, um die in den grünen physikalischen Pixelzentren PG ausgedrückte Verzerrung zu kompensieren. Dies wird durch die Tatsache impliziert, daß die Funktion fG ein Kompositionsfaktor der Funktion gG ist. In ähnlicher Weise können die Abtastung-zu-Pixel-Berechnungseinheiten 170 dieselben Arten von Verzerrungen beim Erzeugen der roten bzw, blauen virtuellen Pixelzentren implementieren, um die durch die roten und blauen physikalischen Pixelarrays ausgedrückte Verzerrung zu korrigieren.
  • Die rote, grüne und blaue Anzeigefunktion kann mittels einer Aufnahmeeinrichtung wie einer Videokamera abgeschätzt werden. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können ein rotes Testmuster wie ein Array von roten Punkten oder ein Gitter von roten Linien anzeigen. Die Videokamera kann Bilder des auf dem Schirm SCR angezeigten roten Testmusters aufnehmen. Die aufgenommenen Bilder können analysiert werden, um die rote Anzeigefunktion fR abzuschätzen. Die roten Testmuster können unterschwellig, d. h. zwischen normalen Videoeinzelbildern, angezeigt werden. Somit kann die Kalibrierung so oft wie nötig durchgeführt werden. Die grüne Anzeigefunktion und die blaue Anzeigefunktion können ähnlich abgeschätzt werden.
  • Nach einer Ausführungsform können die roten, grünen und blauen Auswahlfunktionen virtueller Pixel basierend auf Kalibrierungseingaben des Benutzers wie oben beschrieben ermittelt werden. Zum Beispiel kann der Benutzer einen grünen Kalibrierungsmodus aufrufen, in dem die grünen virtuellen Pixelzentren kalibriert werden können. In dem grünen Kalibrerungsmodus können die Abtastung-zu-Pixel-Berechnungseinheiten 170 rote und blaue Pixelwerte auf Null setzen und nur grüne Pixelwerte ausrechnen. Somit wird nur das grüne physikalische Array (durch kleine Rechtecke gekennzeichnet) auf dem Schirm SCR sichtbar. Die Darstellungseinheiten 150 können Abtastungen für ein weißes rechteckiges Gitter auf einem schwarzen Hintergrund in dem Abtastpuffer 162 wiedergeben. Weil die Berechnungen der roten und blauen Pixelwerte im grünen Kalibrierungsmodus unterdrückt werden, erscheint das rechteckige Gitter grün auf dem Schirm SCR. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können als Reaktion auf Kalibrierungseingaben des Benutzers die grünen Auswahlfunktion gG anpassen, d. h. die Positionen der grünen virtuellen Pixelzentren QG in dem 2-D-Darstellungsfeld, bis das Gitter von grünen Linien auf dem Schirm SCR rechteckig erscheint. Wenn zum Beispiel die grünen Linien anfangs trapezförmig verzerrt auf dem Schirm SCR erscheinen, kann der Benutzer einen Trapezkalibrierungsmodus aufrufen, um die grünen virtuellen Pixelzentren entlang einer Ein-Parameter-Familie von Trapezen zu verformen, bis die grünen Linien rechteckig innerhalb des grünen physikalischen Pixelarray auf dem Schirm SCR erscheinen. Der Benutzer kann irgendeinen von einer Vielzahl von Verzerrungskorrekturmodi nacheinander aufrufen, wie oben diskutiert. Nachdem der grüne Kalibrerungsmodus abgeschlossen ist, kann das Gitter von grünen Linien unverzerrt und rechteckig erscheinen.
  • Nach Beendigung des grünen Kalibrierungsmodus' kann der Benutzer einen roten Kalibrierungsmodus aufrufen. In dem roten Kalibrierungsmodus können die Abtastung-zu-Pixel-Berechnungseinheiten 170 (a) die Berechnung der blauen Pixelwerte unterdrücken und alle blauen Pixelwerte auf Null setzen, (b) grüne Pixelwerte basierend auf den zuvor kalibrierten grünen virtuellen Pixelzentren berechnen, (c) rote Pixelwerte basierend auf den roten virtuellen Pixelzentren, die aktuell anzupassen sind, berechnen. Somit kann das rechteckige Gitter weißer Linien, das mit Abtastungen im Abtastpuffer 162 wiedergegeben wird, als zwei separate Gitter auf dem Schirm SCR erscheinen, d. h. ein grünes Gitter und ein rotes Gitter. Das grüne Gitter sollte unverzerrt und rechteckig erscheinen, da die grüne Kalibrierung schon abgeschlossen wurde. Anfangs kann das rote Gitter verzerrt und nicht rechteckig erscheinen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die rote Auswahlfunktion gR, d. h. die Positionen der roten virtuellen Pixelzentren in dem 2-D-Darstellungsfeld, anpassen, bis die roten Gitterlinien mit den grünen Gitterlinien auf dem Schirm SCR ausgerichtet sind (d. h. genau übereinander liegen). Der Benutzer kann eine Abfolge von Verzerrungskorrekturmodi aufrufen, wie oben beschrieben. Nachdem der rote Kalibrierungsmodus abgeschlossen ist, sollten die roten und grünen Gitterlinien unverzerrt, rechteckig und aufeinander ausgerichtet erscheinen.
  • Nach einer Ausführungsform können die roten virtuellen Pixelzentren an der Stelle der grünen virtuellen Pixelzentren initialisiert werden. Da es wahrscheinlich ist, daß die roten physikalischen Pixelzentren in ungefähr derselben Weise wie die grünen physikalischen Pixelzentren verzerrt sind, kann diese Initialisierung dem Benutzer Zeit sparen, indem die roten virtuellen Pixelzentren gleich näher an ihre endgültigen Bestimmungsorte in dem 2-D-Darstellungsfeld gebracht werden.
  • Nach Beendigung des roten Kalibrierungsmodus' kann der Benutzer einen blauen Kalibrierungsmodus aufrufen. In dem blauen Kalibrierungsmodus können die Abtastung-zu-Pixel-Berechnungseinheiten 170 (a) die Berechnung der roten Pixelwerte unterdrücken und alle roten Pixelwerte auf Null setzen, (b) grüne Pixelwerte basierend auf den zuvor kalibrierten grünen virtuellen Pixelzentren berechnen, (c) blaue Pixelwerte basierend auf den blauen virtuellen Pixelzentren, die aktuell anzupassen sind, berechnen. Somit kann das rechteckige Gitter weißer Linien, das mit Abtastungen im Abtastpuffer 162 wiedergegeben wird, als zwei separate Gitter auf dem Schirm SCR erscheinen, d. h. ein grünes Gitter und ein blaues Gitter. Das grüne Gitter sollte unverzerrt und rechteckig erscheinen, da die grüne Kalibrierung schon abgeschlossen wurde. Anfangs kann das blaue Gitter verzerrt und nicht rechteckig erscheinen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die blaue Auswahlfunktion gB, d. h. die Positionen der blauen virtuellen Pixelzentren in dem 2-D-Darstellungsfeld, anpassen, bis die blauen Gitterlinien mit den grünen Gitterlinien auf dem Schirm SCR ausgerichtet sind (d. h. genau übereinander liegen). Der Benutzer kann eine Abfolge von Verzerrungskorrekturmodi für die blauen virtuellen Pixelzentren aufrufen, wie oben beschrieben.
  • Nach einer Ausführungsform können die blauen virtuellen Pixelzentren an der Stelle der grünen virtuellen Pixelzentren initialisiert werden. Da es wahrscheinlich ist, daß die blauen physikalischen Pixelzentren in ungefähr derselben Weise wie die grünen physikalischen Pixelzentren verzerrt sind, kann diese Initialisierung dem Benutzer Zeit sparen, indem die blauen virtuellen Pixelzentren gleich näher an ihre endgültigen Bestimmungsorte in dem 2-D-Darstellungsfeld gebracht werden.
  • Man beachte, daß die gerade diskutierten Kalibrierungen nicht die Position der grünen, roten und blauen physikalischen Pixelzentren auf dem Schirm SCR ändert. Vielmehr manipulieren diese Kalibrierungen die Positionen der grünen, roten und blauen virtuellen Pixelzentren (d. h. der Faltungszentren) in dem 2-D-Darstellungsfeld, so daß die grünen, roten und blauen Schichten von wiedergegebenen Objekten trotz der physikalischen Verzerrungen, die durch die grünen, roten und blauen physikalischen Pixelzentren ausgedrückt sind, auf dem Schirm SCR richtig ausgerichtet sind, Wie oben in Verbindung mit den 23A und 23B beschrieben kann jede der Abtastung-zu-Pixel-Berechnungseinheiten 170 eine Startposition (XS,YS), eine horizontale Schrittweite ΔX und eine vertikale Schrittweite ΔY zum effizienten Erzeugen eines rechteckigen Arrays von Positionen (X,Y) in dem 2-D-Darstellungsfeld speichern. Das kalibrierte Array von grünen virtuellen Pixelzentren kann mittels Vektorabständen von den entsprechenden rechteckigen Arraypositionen beschrieben werden, wie in 27C angedeutet. Die Funktion g0:(I,J)→(X,Y) bezeichne zum Beispiel ein rechteckiges Array von Positionen (Xr,Yr) in dem 2-D-Darstellungsfeld, und es sei daran erinert, daß die Auswahlfunktion gG:(I,J)→ (X,Y) die grünen virtuellen Pixelzentren QG repräsentiert. Eine Abstandsfunktion ΔgG kann durch Subtraktion von g0 von gG erzeugt werden. Die Werte der Abstandsfunktion ΔgG(I,J) können je Pixel gespeichert werden. Es kann jedoch effizienter sein, eine stückweise lineare Approximation an die Abstandsfunktion ΔgG zu speichern und die Abstandswerte ΔgG(I,J) je Pixel zu interpolieren. In ähnlicher Weise kann das kalibrierte Array von roten virtuellen Pixelzentren mittels einer Abstandsfunktion ΔgR = gR – g0 dargestellt werden, und das kalibrierte Array von blauen virtuellen Pixelzentren mittels einer Abstandsfunktion ΔgB = gB – g0 dargestellt werden.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die grünen, roten und blauen virtuellen Pixelzentren und die entsprechenden grünen, roten und blauen Pixelwerte gemäß des folgenden Pseudocode-Fragmentes erzeugen.
  • Figure 00710001
  • Jedes rote virtuelle Pixelzentrum (XR,YR) wird durch Addition des roten Verschiebungsvektors ΔgR(I,J) zu einer entsprechenden rechteckigen Arrayposition (Xr,Yr) erzeugt. Jedes grüne virtuelle Pixelzentrum (XG,YG) wird durch Addition des grünen Verschiebungsvektors ΔgG(I,J) zu der entsprechenden rechteckigen Arrayposition (Xr,Yr) erzeugt. Jedes blaue virtuelle Pixelzentrum (XB,YB) wird durch Addition des blauen Verschiebungsvektors ΔgB(I,J) zu der entsprechenden rechteckigen Arrayposition (Xr,Yr) erzeugt. Eine rote Faltungsfunktion wird aufgerufen, um einen roten Pixelwert an dem roten virtuellen Pixelzentrum (XR,YR) zu berechnen. Eine grüne Faltungsfunktion wird aufgerufen, um einen grünen Pixelwert an dem grünen virtuellen Pixelzentrum (XG,YG) zu berechnen. Eine blaue Faltungsfunktion wird aufgerufen, um einen blauen Pixelwert an dem blauen virtuellen Pixelzentrum (XB,YB) zu berechnen. Die Positionen der grünen, roten und blauen virtuellen Pixelzentren in dem 2-D-Darstellungsfeld werden ausgewählt, um die physikalischen Verzerrungen der grünen, roten bzw. blauen physikalischen Pixel auf dem Schirm SCR zu korrigieren.
  • Die roten, blauen und grünen Faltungen können dieselben oder unterschiedliche Filterkerne verwenden. Somit kann der Träger (d. h. die Standfläche ) der drei Farbfilter in Größe und/oder Form verschieden sein. Die grüne Faltungsfunktion filtert die Grünkomponente von Abtastungen in einer Umgebung des grünen virtuellen Pixelzentrums (XG,YG). Die rote Faltungsfunktion filtert die Rotkomponente von Abtastungen in einer Umgebung des roten virtuellen Pixelzentrums (XR,YR). Die blaue Faltungsfunktion filtert die Blaukomponente von Abtastungen in einer Umgebung des blauen virtuellen Pixelzentrums (XB,YB).
  • Die Verschiebungsvektoren ΔgG(I,J), ΔgR(I,J) und ΔgB(I,J) können aus stückweise linearen Approximationen der entsprechenden Verschiebungsfunktionen interpoliert werden. Zum Beispiel kann die grüne Verschiebungsfunktion ΔgG für ein 16×16-Gitter von Positionen (I,J) in der Menge S berechnet und gespeichert werden. Der grüne Verschiebungsvektor ΔgG(I,J) für eine beliebige Position (I,J) kann basierend auf dem gespeicherten grünen Verschiebungsvektor an den nächstgelegenen benachbarten Gitterpositionen interpoliert werden. Das 16×16-Gitter kann zu einem N1×N2-Gitter verallgemeinert werden. Wenn mehr Genauigkeit bei der Korrektur der Grünverzerrung gebraucht wird, können die Zahlen N1 und/oder N2, die die Größe des Gitters definieren, vergrößert werden. Die roten und blauen Verschiebungsfunktionen können ebenso an einem ähnlichen Gitter von Positionen berechnet und gespeichert werden und zur Interpolation der roten bzw. blauen Verschiebungsvektoren verwendet werden. Sobald sie berechnet sind, werden die Farbwerte durch einen Videokanal an die Projektionseinrichtung PD1 übermittelt. Das obenstehende Fragment kann einmal je Videoeinzelbild ausgeführt werden.
  • In der bevorzugten Ausführungsform kann jede Abtastung-zu-Pixel-Berechnungseinheit 170-K (wobei K gleich 1, 2, ..., Nmax ist) unabhängig betrieben werden und Farbwerte erzeugen, die einem vertikalen Streifen der Indexmenge S entsprechen. Somit kann das obenstehende Code-Fragment von jeder Abtastung-zu-Pixel-Berechnungseinheit 170-K ausgeführt werden, wobei der Index I auf den entsprechenden vertikalen Streifen beschränkt wird.
  • Ein Hersteller von Anzeigeeinrichtungen (z. B. Monitoren oder Projektoren) kann die roten, grünen und blauen virtuellen Pixelzentren für eine Anzeigeeinrichtung zum Zeitpunkt der Herstellung kalibrieren. Die kalibrierten roten, grünen und blauen virtuellen Pixelzentren für die Anzeigeeinrichtung können auf einem Speichermedium gespeichert werden, das intern oder extern zu der Anzeigeeinrichtung ist. Der Hersteller kann das Speichermedium zusammen mit der Anzeigeeinrichtung an einen Benutzer ausliefern. Der Benutzer kann den Satz von kalibrierten virtuellen Pixelzentren aus dem Speichermedium auf das Graphiksystem 112 übertragen. Alternativ kann der Benutzer die kalibrierten roten, grünen und blauen virtuellen Pixelzentren über das Internet von der Website des Herstellers herunterladen. Die kalibrierten roten, grünen und blauen virtuellen Pixelzentren können es dem Benutzer ermöglichen, sofort (oder schneller) eine unverzerrte Darstellung von Farbbildern mittels des Graphiksystems 112 auf der Anzeigeeinrichtung zu erreichen.
  • Die Kalibrierung des Herstellers kann besonders wichtig sein, wenn die Verzerrungen der Farbanzeige von Einheit zu Einheit deutlich schwanken. Wenn die Anzeigeverzerrungen stabil sind, d. h. sich über die Zeit hinweg nicht wesentlich ändern, braucht das Graphiksystem 112 möglicher weise keinen Mechanismus zur Kalibrierung durch den Benutzer bereitzustellen. Umgekehrt kann die Schwankung der Anzeigeverzerrungen über die zeit hinweg deutlich sein. Daher kann das Graphiksystem 112 einen Mechanismus (wie die oben beschriebenen) zur Kalibrierung durch den Benutzer bereitstellen.
  • Wenn die zeitliche Schwankung der Anzeigeverzerrung groß ist, kann das Graphiksystem 112 für eine kontinuierliche (d. h. Echtzeit-)Kalibrierung eingerichtet sein. Das Graphiksystem 112 kann zum Beispiel dafür ausgelegt sein, in Abständen unterschwellige Kalibrierungsmuster für jede Farbe anzuzeigen. Eine Videokamera kann die Darstellung der farbigen Kalibrierungsmuster auf der Anzeigeeinrichtung (oder dem Schirm SCR) überwachen. Das Graphiksystem 112 kann die Videobilder analysieren und als Reaktion auf die Videobilder korrigierte rote, grüne und blaue virtuelle Pixelzentren in dem 2-D-Darstellungsfeld 420 erzeugen. Eine solche kontinuierliche Kalibrierung kann die Benutzung von Anzeigeeinrichtungen mit hoher Drift erleichtern, was ansonsten die Betrachter stören würde.
  • Die vorliegende Erfindung betrachtet verschiedene Ausführungsformen des Graphiksystems 112, wobei jede Kombination von Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrierung unterstützt werden kann. Darüber hinaus kann das Graphiksystems 112 dafür ausgelegt sein (oder nicht), das Herunterladen roter, grüner und blauer virtueller Pixelzentren zu unterstützen, die extern berechnet/festgelegt wurden wie bei einer Kalibrierung durch den Hersteller.
  • Verzerrungskorrektur mit zwei Projektionseinrichtungen
  • Nach einer Ausführungsform der vorliegenden Erfindung sind zwei Projektionseinrichtungen PD1 und PD2 an das Graphiksystem 112 angeschlossen. Jede Projektionseinrichtung nimmt ein entsprechendes Videosignal von dem Graphiksystem 112 entgegen und erzeugt als Reaktion auf das entsprechende Videosignal ein physikalisches Bild auf dem Schirm SCR. Für einen Moment bezugnehmend auf 17 können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 Pixelwerte für die Projektionseinrichtung PD1 liefern, während die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 Pixelwerte für die Projektionseinrichtung PD2 liefern können. Wenn eine höhere Bandbreite gebraucht wird, können mehr als zwei Abtastung-zu-Pixel-Berechnungseinheiten jeder Projektionseinrichtung zugewiesen werden. Wenn umgekehrt die Verarbeitungskapazität jeder Abtastung-zu-Pixel-Berechnungseinheit hoch genug ist, braucht nur eine Abtastung-zu-Pixel-Berechnungseinheit jeder Projektionseinrichtung zugewiesen zu werden. Man beachte, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170, die die zwei Projektionseinrichtungen treiben, innerhalb einer oder mehrerer Graphikkarten derselben (oder einer ähnlichen) Konfiguration wie die Graphikkarte 116 enthalten sein können.
  • 28 stellt eine duale Ansicht der physikalischen Pixel auf dem Schirm SCR und der entsprechenden virtuellen Pixel in dem 2-D-Darstellungsfeld 420 in dem Fall dar, in dem zwei Projektionseinrichtungen PD1 und PD2 verwendet werden. Die auf dem Schirm SCR abgebildeten physikalischen Pixel repräsentieren ein idealisiertes Projektionsszenario. Die Projektionseinrichtung PD1 erzeugt ein rechteckiges Array von physikalischen Pixeln auf der linken Seite des Schirms SCR. Dieses linke rechteckige Array wird hier als das linke physikalische Array LPA bezeichnet. Die Zentren der physikalischen Pixel, die das linke physikalische Array LPA ausmachen, sind durch kleine Kreise dargestellt. Ähnlich erzeugt die Projektionseinrichtung PD2 ein rechteckiges Array von physikalischen Pixeln auf der rechten Seite des Schirms SCR. Dieses rechte rechteckige Array wird hier als das rechte physikalische Array RPA bezeichnet. Die Zentren der physikalischen Pixel, die das rechte physikalische Array RPA ausmachen, sind durch kleine Dreiecke dargestellt. Das linke physikalische Array LPA und das rechte physikalische Array RPA überlappen sich. Der Überlappungsbereich ist vier physikalische Pixel breit dargestellt. Es sollte sich jedoch verstehen, daß der Überlappungsbereich jede gewünschte Breite haben kann. Zum Beispiel kann der Überlappungsbereich Hunderte von physikalischen Pixel horizontal überspannen. Obwohl es schwierig oder unmöglich zu erkennen sein kann, nehmen wir für die Diskussion an, daß das linke physikalische Array LPA und das rechte physikalische Array RPA perfekt ausgerichtet sind, d. h. die physikalischen Pixelzentren aus den beiden Arrays in dem Überlappungsbereich genau zusammenfallen, wie in der Figur abgebildet.
  • Ein physikalisches Schirm-Koordinatensystem mit einer horizontalen Achse U und einer vertikalen Achse V kann dem Projektionsschirm SCR überlagert werden. Das Zentrum jedes physikalischen Pixels auf dem Projektionsschirm SCR kann durch seine physikalischen Schirm-Koordinaten U und V festgelegt werden. Der horizontale Abstand und der vertikale Abstand zwischen physikalischen Pixelzentren kann durch Δu bzw. Δv bezeichnet werden. Jedes physikalische Pixel in dem linken physikalischen Array LPA kann außerdem durch ein Paar (I1,J1) von ganzzahligen Indizes beschrieben werden, wobei der Index I1 einen Wert im Bereich 0 bis M-1 und der Index J1 einen Wert im Bereich 0 bis N-1 annimmt. Man beachte, daß das linke physikalische Array LPA und das rechte physikalische Array RPA verschiedene Größe haben können, d. h. N1×M1 bzw. N2×M2. Jedoch erhalten der Einfachheit halber beide dieselbe Größe N×M. S bezeichne die Menge der Indexpaare, d. h. S = {(I1,J1) : I1 = 0,1,2,...,M – 1, J1 = 0,1,2,...,N – 1}.
  • Ähnlich kann jedes physikalische Pixel in dem rechten physikalischen Array RPA durch ein Paar (I2,J2) von ganzzahligen Indizes beschrieben werden, wobei der Index I2 einen Wert im Bereich 0 bis M-1 und der Index J2 einen Wert im Bereich 0 bis N-1 annimmt.
  • Unter den abgebildeten, idealisierten Bedingungen hat die Funktion f1, die die Indexpaare (I1,J1) auf die physikalischen Pixelzentren (U,V) in dem linken physikalischen Array LPA abbildet, eine diagonal affine Struktur. Ähnlich hat die Funktion f2, die die Indexpaare (I2,J2) auf die physikalischen Pixelzentren (U,V) in dem rechten physikalischen Array RPA abbildet, eine diagonal affine Struktur. Darüber hinaus können die Funktionen f1 und f2 bis auf eine horizontale Verschiebung gleich sein.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 erzeugen virtuelle Pixelzentren in dem 2-D-Darstellungsfeld 420 entsprechend den physikalischen Pixeln in dem linken physikalischen Array LPA. Die so erzeugten virtuellen Pixelzentren werden hier als das linke virtuelle Array LVA bezeichnet. Die Funktion g1 repräsentiere die Auswahl von virtuellen Pixelzentren, die das linke virtuelle Array ausmachen. Somit definiert die Funktion g1 für jedes Indexpaar (I1,J1) in der Menge S ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld, wobei X und Y die virtuellen Schirm-Koordinaten des virtuellen Pixelzentrums sind. Abtastungen in der Umgebung eines virtuellen Pixelzentrums (X,Y) in dem linken physikalischen Array werden verwendet, um einen Satz von Pixelwerten (z. B. rote, grüne, blaue, etc.) zu erzeugen, die die Farbe und Intensität der entsprechenden physikalischen Pixel in dem linken physikalischen Array LPA festlegen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können sich den Aufwand der Berechnung von Pixelwerten an den Pixelzentren des linken virtuellen Array aufteilen. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-1 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index 1, kleiner als oder gleich (M/2)-1 durchführen, während die Abtastung-zu-Pixel-Berechnungseinheit 170-2 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index I1 größer als oder gleich M/2 durchführt.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 erzeugen virtuelle Pixelzentren in dem 2-D-Darstellungsfeld 420, die den physikalischen Pixeln des rechten physikalischen Array RPA entsprechen. Die so erzeugten, virtuellen Pixelzentren werden hier als das rechte virtuelle Array RVA bezeichnet. Die Funktion g2 repräsentiere die Auswahl von virtuellen Pixelzentren, die das rechte virtuelle Array RVA ausmachen. Somit definiert die Funktion g2 für jedes Indexpaar (I2,J2) in der Menge S ein virtuelles Pixelzentrum (X,Y) in dem rechten virtuellen Array RVA in dem 2-D-Darstellungsfeld. Abtastungen in der Umgebung eines virtuellen Pixelzentrums (X,Y) in dem rechten physikalischen Array werden verwendet, um einen Satz von Pixelwerten (z. B. rote, grüne, blaue, etc.) zu erzeugen, die die Farbe und Intensität der entsprechenden physikalischen Pixel in dem rechten physikalischen Array RPA festlegen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können sich den Aufwand der Berechnung von Pixelwerten an den Pixelzentren des rechten virtuellen Array aufteilen. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-3 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index I2 kleiner als oder gleich (M/2)-1 durchführen, während die Abtastung-zu-Pixel-Berechnungseinheit 170-4 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index I2 größer als oder gleich M/2 durchführt.
  • Die Funktionen
    Figure 00750001
    bilden Punkte (X,Y) in dem virtuellen Schirmraum auf Punkte (U,V) in dem physikalischen Schirmraum ab und insbesondere virtuelle Pixelzentren auf ihre entsprechenden physikalischen Pixelzentren. Es ist wünschenswert, daß diese beiden Funktionen diagonal affin, das Ansichtsverhältnis erhaltend und gleich sind, so daß Objekte, die auf beiden Seiten des Schirms SCR angezeigt werden, unverzerrt und konsistent in der Größe erscheinen, speziell in dem Überlappungsbereich. A sei eine das Ansichtsverhältnis erhaltende und diagonal affine Abbildung von dem virtuellen Schirmraum auf den physikalischen Schirmraum. Zum Beispiel kann die Abbildung A definiert sein durch die Gleichungen U = F0X+F1 und V = F2Y + F3,wobei F0=F2 ist. Wenn die Funktionen g1 und g2 so gewählt werden, daß
    Figure 00750002
    Figure 00760001
    dann ist h1=h2=A wie gewünscht. Die Ausdrücke für g1 und g2 implizieren, daß das linke virtuelle Array und das rechte virtuelle Array gleichmäßig skalierte Versionen des linken physikalischen Array bzw. des rechten physikalischen Array sind. Darüber hinaus folgt, da f1 und f2 bis auf eine horizontale Verschiebung gleich sind, daß die Funktionen g1 und g2 bis auf eine horizontale Verschiebung gleich sind.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 können die virtuellen Pixelzentren des linken virtuellen Array LVA und des rechten virtuellen Array RVA so anordnen, daß das kombinierte virtuelle Array das 2-D-Darstellungsfeld überdeckt, wie durch die 28 angedeutet.
  • Alternativ können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 die virtuellen Pixelzentren so anordnen, daß das kombinierte virtuelle Array das Teilfenster 422 des 2-D-Darstellungsfeldes überdeckt, wie durch 29 angedeutet. (Siehe 18D und den zugehörigen Text für eine Diskussion des sichtbaren Teilfensters und seiner Verwendung bei den Berechnungen der Pixelwerte.) Die Darstellungseinheiten 150 können kontinuierlich Abtastungen in dem gesamten 2-D-Darstellungsfeld wiedergeben. Jedoch können die Abtastpositionen außerhalb des sichtbaren Teilfensters 422 zu den Farbberechnungen als die Hintergrundfarbe beitragen, wie in Verbindung mit 18D diskutiert. Die in dem Randbereich wiedergegebenen Farbwerte (außerhalb des sichtbaren Teilfensters) können es ermöglichen, Effekte wie Schwenken und Zoomen effizienter zu implementieren. Gemäß einer anderen Methodik sind nur Abtastpositionen innerhalb des sichtbaren Teilfensters zugelassen, zu den Pixelwertfaltungen beizutragen.
  • Um einen horizontalen und/oder vertikalen Schwenk zu erhalten, können die Abtastung-zu-Pixel-Berechnungseinheiten 170 die Teilfensterkoordinaten X1, X2, Y1 und Y2 als eine Funktion der Zeit t ändern. Zum Beispiel bewirken die Gleichungen X1(t)= X1(0)+Rxt X2(t)= X2(0)+Rxt, Y1(t)= Y1(0)+Ryt, Y2(t)= Y2(0)+Ryt,einen Schwenk in der Richtung des Vektors (Rx,Ry) mit der horizontalen Schwenkrate Rx und der vertikalen Schwenkrate Ry, wobei Z(t) den Wert der Variablen Z zum Zeitpunkt t bezeichnet und Z(0) den Wert der Variablen X zum Zeitpunkt Null bezeichnet. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 können die Schwenkgleichungen implementieren und können die Pixelzentren des linken virtuellen Array und des rechten virtuellen Array dynamisch anpassen, so daß die Pixelzentren innerhalb des sichtbaren Teilfensters bleiben, wenn sich das Teilfenster über die Zeit verschiebt. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 die Koordinaten X1, X2, Y1 und Y2 des Teilfensterrandes berechnen und die Pixelzentren pro Einzelbild oder pro mehrerer Einzelbilder so neu berechnen, daß sie das Teilfenster überdecken.
  • Darüber hinaus bewirken die Gleichungen x1(t)= x1(0)-Rzt X2(t)= X2(0)+Rzt, Y1(t)= Y1(0)-KRzt, Y2(t)= Y2(0)+KRzt,einen Zoomeffekt, wobei R2 eine Zoomrate und K das anfängliche Ansichtsverhältnis ist, d. h. K=(Y2(0)-Y1(0))/(X2(0)-X1(0)).Diese Zoomgleichungen behalten das Ansichtsverhältnis und den Mittelpunkt des sichtbaren Teilfensters über das Zoomen hinweg bei. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 können diese Zoomgleichungen implementieren und die virtuellen Pixelzentren des kombinierten virtuellen Array dynamisch expandieren (oder kontrahieren), so daß sie innerhalb des sichtbaren Teilfensters 422 bleiben, wenn sich das sichtbare Teilfenster über die Zeit ausdehnt (oder zusammenzieht).
  • Wie oben diskutiert kann jede Abtastung-zu-Pixel-Berechnungseinheit 170-K (wobei K gleich 1, 2, 3 oder 4 ist) eine Startposition (XS(K),YS(K)), eine horizontale Schrittweite ΔX(K) und eine vertikale Schrittweite ΔY(K) zum Erzeugen eines rechteckigen Array von virtuellen Pixelzentren in dem 2-D-Darstellungsfeld 420 speichern. Nach einer Ausführungsform kann Schwenken und Zoomen durch Ändern dieser gespeicherten Werte bezogen auf die Zeit erreicht werden. Zum Beispiel kann Schwenken durch Ändern der Startpositionen erreicht werden. Zoomen kann durch Ändern der Schrittweiten und der Startpositionen erreicht werden.
  • In der Diskussion von 28 wurde angenommen, daß das linke physikalische Array LPA und das rechte physikalische Array RPA (von physikalischen Pixeln), die durch die Projektionseinrichtungen PD1 bzw. PD2 erzeugt werden, rechteckig sind und daß sie in den Überlappungsbereichen perfekt ausgerichtet sind. In der Praxis ist diese Annahme wegen verschiedener Verzerrungsmechanismen, die den Projektionseinrichtungen und dem Schirm SCR eigen sind, und wegen Fehlausrichtungen bezüglich Position und Winkel der Projektionseinrichtungen bezogen auf den Schirm schwierig oder unmöglich zu realisieren. Im allgemeinen sind das linke physikalische Array und das rechte physikalische Array verzerrt und eventuell unabhängig voneinander verzerrt.
  • Die 30A & 30B stellen Beispiele von physikalischen Verzerrungsarten dar, die entstehen können, wenn zwei Projektionseinrichtungen zur Projektion auf einen gemeinsamen Schirm SCR verwendet werden. In 30A zeigt das linke physikalische Array LPA eine Tonnenverzerrung aus, während das rechte physikalische Array RPA eine Trapezverzerrung aufweist. Zusätzlich sind die horizontalen Zeilen des linken physikalischen Array nicht in einer Linie mit den Zeilen des rechten physikalischen Array. Die Zeilen des rechten physikalischen Array erscheinen bezüglich der Zeilen des linken physikalischen Array nach oben verschoben. In 30B weisen sowohl das linke physikalische Array LPA als auch das rechte physikalische Array RPA eine Scherungsverzerrung auf. Außerdem erscheint das rechte physikalische Array vertikal gedehnt bezüglich des linken physikalischen Array, d. h. das rechte physikalische Array ist größer. In den 30A & 30B sind die Überlappungsbereiche als einige Pixel breit dargestellt. Man beachte jedoch, daß die Überlappungsbereiche von beliebiger Breite sein können.
  • Nach einer Ausführungsform des Graphiksystems 112 sind die Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt, die virtuellen Pixelzentren (d. h. die Faltungszentren) in dem 2-D-Darstellungsfeld anzupassen, um die Anzeigeverzerrungen, d. h. die physikalischen Verzerrungen in den Positionen der physikalischen Pixel auf dem Schirm SCR zu korrigieren. 31 stellt eine duale Ansicht der virtuellen Pixel in dem 2-D-Darstellungsfeld 420 und der physikalischen Pixel auf dem Schirm SCR dar und hilft bei der Erklärung der vorliegenden Ausführungsform, die mit zwei Projektionseinrichtungen arbeitet. Zum Zweck der Diskussion werden das linke physikalische Array LPA und das rechte physikalische Array RPA als N × M-Arrays angenommen, d. h. jedes mit N Pixeln vertikal und M Pixeln horizontal. Somit kann jedes physikalische Pixel in dem linken physikalischen Array LPA durch ein Paar (I1,J1) ganzzahliger Indizes beschrieben werden, wobei der Index I1 einen Wert im Bereich 0 bis M-1 annimmt und der Index J1 einen Wert im Bereich 0 bis N-1 annimmt. In ähnlicher Weise kann jedes physikalische Pixel in dem rechten physikalischen Array RPA durch ein Paar (I2,J2) ganzzahliger Indizes beschrieben werden, wobei der Index I2 einen Wert im Bereich 0 bis M-1 annimmt und der Index J2 einen Wert im Bereich 0 bis N-1 annimmt. S bezeichne die Menge von Indexpaaren, d. h. S={(I,J):I= 0,1,2,...,M- 1, J = 0,1,2,...,N- 1}.
  • Die Funktion f1 bildet die Indexpaare (I1,J1) in der Menge S auf physikalischen Pixelzentren (U,V) ab, die das linke physikalische Array LPA ausmachen, und beschreibt eine beliebige Verzerrung des linken physikalischen Array. Ähnlich bildet die Funktion f2 die Indexpaare (I2,J2) in der Menge S auf physikalischen Pixelzentren (U,V) ab, die das rechte physikalische Array RPA ausmachen, und beschreibt eine beliebige Verzerrung des rechten physikalischen Array.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können so interpretiert werden, daß sie die Menge S von Indexpaaren einmal je Videoeinzelbild traversieren. Für jedes Paar (I1,J1) in der Menge S wählen die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld aus. Die so erzeugte Ansammlung von virtuellen Pixelzentren wird hier als das linke virtuelle Array LVA bezeichnet. Abtastungen in der Umgebung eines virtuellen Pixelzentrums des linken virtuellen Array werden zum Erzeugen eines Satzes von Pixelwerten (z. B. roter, grüner, blauer, etc.) für das entsprechende physikalische Pixel in dem linken physikalischen Array LPA verwendet. Die Funktion g1 stellt die Abbildung von Indexpaaren (I1,J1) auf virtuelle Pixelzentren (X,Y) dar, die das linke virtuelle Array LVA ausmachen.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können so interpretiert werden, daß sie die Menge S von Indexpaaren einmal je Videoeinzelbild traversieren. Für jedes Paar (I2,J2) in der Menge S wählen die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld aus. Die so erzeugte Ansammlung von virtuellen Pixelzentren wird hier als das rechte virtuelle Array RVA bezeichnet. Abtastungen in der Umgebung eines virtuellen Pixelzentrums in dem rechten virtuellen Array werden zum Berechnen eines Satzes von Pixelwerten (z. B. roter, grüner, blauer, etc.) für das entsprechende physikalische Pixel in dem rechten physikalischen Array RPA verwendet. Die Funktion g2 stellt die Abbildung von Indexpaaren (I2,J2) auf virtuelle Pixelzentren (X,Y) dar, die das rechte virtuelle Array RVA ausmachen.
  • Die Funktionen
    Figure 00790001
    bilden Punkte (X,Y) in dem virtuellen Schirmraum auf Punkte (U,V) in dem physikalischen Schirmraum ab und insbesondere virtuelle Pixelzentren auf ihre entsprechenden physikalischen Pixelzentren. Es ist wünschenswert, daß diese beiden Funktionen diagonal affin, das Ansichtsverhältnis erhaltend und gleich sind, so daß Objekte, die in dem Überlappungsbereich des Schirms SCR angezeigt werden, unverzerrt und konsistent erscheinen. Gemäß der vorliegenden Erfindung kann den Funktionen h1 und h2 die gewünschte Struktur gegeben werden, wenn g1 = A–1
    Figure 00570001
    f1 und g2 = A–1
    Figure 00570001
    f2 gilt, wobei A eine diagonal affine und das Ansichtsverhältnis erhaltende Abildung von XY nach UV ist.
  • Die obige Wahl der Funktionen g1 und g2 legt nahe, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170 dieselben Verzerrungen beim Erzeugen der virtuellen Pixelzentren des linken virtuellen Array bzw. des rechten virtuellen Array implementieren können, um die Verzerrungen zu korrigieren, die dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA eigen sind. Mit anderen Worten kann das linke virtuelle Array LVA so gewählt werden, daß es eine skalierte Version (die sich in dem virtuellen Schirmraum befindet) des linken physikalischen Array LPA ist. In ähnlicher Weise kann das rechte virtuelle Array RVA so gewählt werden, daß es eine skalierte Version (die sich in dem virtuellen Schirmraum befindet) des rechten physikalischen Array RPA ist. In 31 ist das linke physikalische Array als ein Parallelogramm dargestellt, das sich nach rechts lehnt, und das rechte physikalische Array als ein Parallelogramm dargestellt, das sich nach links lehnt. Somit kann die optimale Wahl für das linke virtuelle Array LVA ein Parallelogramm sein, das sich genau wie das LPA nach rechts lehnt. In ähnlicher Weise kann die optimale Wahl für das rechte virtuelle Array RVA ein Parallelogramm sein, das sich genau wie das RPA nach links lehnt.
  • Die Funktionen f1 und f2 können basierend auf Messungen, die von einer Aufnahmeeinrichtung wie einer Videokamera bereitgestellt werden, abgeschätzt werden. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein oder mehrere Pixelmuster zur Kalibrierung an die Projektionseinrichtungen PD1 und PD2 zur Anzeige auf dem Schirm SCR übermitteln. Die Projektionseinrichtungen können als Reaktion auf jedes der Pixelmuster zur Kalibrierung physikalische Bilder erzeugen. Eine Videokamera kann die für jedes der Kalibrierungsmuster angezeigten physikalischen Bilder aufnehmen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 (oder eine ausgewählte Teilmenge dieser Einheiten) können die Funktionen f1 und f2 basierend auf den bekannten Kalibrierungsmustern und den aufgenommenen physikalischen Bildern abschätzen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können stückweise lineare Approximationen an die Anzeigefunktionen f1 und f2 abschätzen und mittels dieser Approximationen stückweise lineare Approximationen an die Funktionen g1 bzw. g2 berechnen.
  • Nach einer anderen Ausführungsform nehmen die Abtastung-zu-Pixel-Berechnungseinheiten 170 Kalibrierungseingaben von einem Benutzer entgegen. Der Benutzer kann sich vor dem Schirm SCR befinden und den Schirm SCR beobachten. Der Benutzer kann die Art der Verzerrung, die durch jedes physikalischen Pixelarray an den Tag gelegt wird , feststellen und eine separate Kalibrierung für jedes physikalische Pixelarray durchführen. Eine Liste (z. B. ein Menü) von Verzerrungsarten kann dem Benutzer präsentiert werden. Der Benutzer kann zum Beispiel angeben, daß das linke physikalische Array LPA eine Scherungsverzerrung hat, wie in 31 abgebildet. Als Reaktion auf diese Auswahl können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 in einen Scherungskalibrterungsmodus eintreten. In dem Scherungskalibrierungsmodus reagieren die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 auf Plus- und Minus-Anpassungssignale, die von dem Benutzer gesetzt werden. Als Reaktion auf die Plus-/Minus-Anpassungssignale passen die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 die Auswahlfunktion g1 dynamisch so an, daß sich das linke virtuelle Array LVA entlang einer Ein-Parameter-Familie von Parallelogrammen verformt. Das Plus-Anpassungssignal veranlaßt, daß das linke virtuelle Array LVA eine Scherung nach rechts erfährt. Das Minus-Anpassungssignal veranlaßt, daß das LVA eine Scherung nach links erfährt. Der Benutzer steuert die Plus- und Minus-Anpassungssignale, bis die Objekte, die in dem linken physikalischen Array LPA erscheinen, unverzerrt erscheinen. Man beachte, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 fortfahren, während des Anpassungsvorgangs aufeinanderfolgende Einzelbilder von Ausgabepixelwerten zu erzeugen, so daß der Benutzer den Effekt der Plus-/Minus-Anpassungen in dem linken physikalischen Array LPA sehen kann. Der gerade beschriebene Kalibrierungsvorgang ändert nicht die Form des linken physikalischen Array LPA. Die Form des linken physikalischen Array LPA wird durch die Projektionseinrichtung PD1 und den Schirm SCR festgelegt.
  • In dem Beispiel von 31 weist das linke physikalische Array LPA nur eine Art von Verzerrung auf (d. h. die Scherungsverzerrung). Im allgemeinen kann das linke physikalische Bild jedoch eine Mischung von Verzerrungsarten aufweisen. Daher kann der Benutzer eine oder mehrere Verzerrungskorrekturen durchführen, indem er wiederholt verschiedene Verzerrungsmodi auswählt und die Plus-/Minus-Anpassung durchführt, bis die in dem linken physikalischen Bild angezeigten Objekte für jeden Modus so unverzerrt wie möglich erscheinen. Zum Beispiel kann der Benutzer für die in 6A dargestellte komplexe Verzerrung CDST eine horizontale Pin-Balance-Korrektur gefolgt von einer vertikalen Kissen-Korrektur durchführen.
  • Wenn der Benutzer die Verzerrungskorrekturen für das linke physikalische Array LPA abgeschlossen hat, kann er die Arten) von Verzerrung, die das rechte physikalische Array RPA aufweist, spezifizieren und Verzerrungskorrekturen mittels eines Plus-/Minus-Anpassungsvorgangs ähnlich dem oben beschriebenen durchführen. Jedoch verformen sich in diesem Fall die virtuellen Pixelzentren, die das rechte virtuelle Array RVA ausmachen. Mit anderen Worten wird die Funktion g2 angepaßt. Zum Beispiel weist das rechte physikalische Bild RPA in 31 eine Scherungsverzerrung auf. Somit kann der Benutzer einen Scherkalibrierungsmodus aufrufen, um das rechte virtuelle Array RVA zu scheren, bis die in dem rechten physikalischen Array RPA angezeigten Objekte unverzerrt (oder so unverzerrt wie möglich) erscheinen.
  • Wie gerade beschrieben können Kalibrierungen durchgeführt werden, um Verzerrungen, die das linke physikalische Array und das rechte physikalische Array aufweisen, separat und unabhängig voneinander zu korrigieren. Nach diesen Kalibrierungen können Objekte, die entweder in dem linken physikalischen Array oder in dem rechten physikalischen Array angezeigt werden, unverzerrt erscheinen. Wenn jedoch eines der physikalischen Arrays nur leicht skaliert oder versetzt gegenüber dem anderen physikalischen Array ist, erscheinen in dem Überlappungsbereich des Schirms SCR dargestellte Objekte unscharf. Daher können zusätzliche Kalibrierungen, die die Beziehung (d. h. die relative Skalierung und Position) der beiden physikalischen Arrays behandeln, notwendig sein. Zum Beispiel hat das rechte physikalische Array RPA in 31 eine größere Höhe als das linke physikalische Array LPA. Daher kann der Benutzer einen vertikalen Skalierungsmodus aufrufen, um die fehlende Übereinstimmung der vertikalen Skalierung zwischen den beiden physikalischen Arrays zu korrigieren. In dem vertikalen Skalierungsmodus reagieren die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 auf die Plus-/Minus-Anpassungssignale, die von dem Benutzer gesetzt werden. Als Reaktion auf das Plus-Anpassungssignal können die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 das rechte virtuelle Array RVA in Richtung ansteigender vertikaler Höhe verformen. Als Reaktion auf das Minus-Anpassungssignal können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 das linke virtuelle Array LVA in Richtung ansteigender vertikaler Höhe verformen. Die Darstellungseinheiten 150 können während des vertikalen Skalierungsmodus' Abtastungen für eine oder mehrere horizontale Linien in dem Abtastpuffer 162 erzeugen. Gleichzeitig können die Abtastung-zu-Pixel-Berechnungseinheiten 170 Pixelwerte erzeugen, die in dem linkem physikalischen Array und dem rechten physikalischen Array angezeigt werden. Der Umfang der Abweichung in diesen horizontalen Linien bei der Anzeige in dem linkem physikalischen Array LPA und dem rechten physikalischen Array RPA bietet dem Benutzer eine Anzeige der Richtung, in der die vertikale Skalierungskorrektur fortgeführt werden sollte, um die Abweichung zu minimieren.
  • Aus Sicht der Diskussion der expandierenden und kontrahierenden Verformung im Umfeld der 25AD kann der gerade beschriebene vertikale Skalierungsmodus als kontrahierende Realisierung zusätzlich zu (oder anstelle) der oben beschriebenen expandierenden Realisierung implementiert werden.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können Modi zum Durchführen von vertikaler Skalierung, horizontaler Skalierung, vertikaler Verschiebung, horizontaler Verschiebung und Rotation auf dem linken virtuellen Array LVA und dem rechten virtuellen Array RVA bieten.
  • Ein Hersteller von Mehrfachprojektor-Anzeigesystemen kann die virtuellen Pixelzentren für jede Projektionseinrichtung zum Zeitpunkt der Herstellung kalibrieren. Der Satz von kalibrierten virtuellen Pixelzentren für jede Projektionseinrichtung in dem Mehrfachprojektor-Anzeigesystem kann in einem Speicher wie einer Platte oder einer CD-ROM gespeichert werden. Alternativ können die kalibrierten virtuellen Pixelzentren für jede Projektionseinrichtung in einem Speicher, der sich innerhalb der Projektionseinrichtung befindet, gespeichert werden. Der Hersteller kann das Speichermedium zusammen mit dem Anzeigesystem an einen Benutzer ausliefern. Der Benutzer kann jeden Satz von kalibrierten virtuellen Pixelzentren aus dem Speichermedium in das Graphiksystem 112 übertragen. (Der Übertragungsvorgang kann automatisiert sein.) Die Sätze von kalibrierten virtuellen Pixelzentren können es dem Benutzer ermöglichen, sofort (oder schneller) eine unverzerrte Darstellung von ganzheitlichen Bildern auf dem Schirm SCR zu erreichen, indem er das Graphiksystem 112 zum Treiben der mehreren Projektionseinrichtung verwendet. Man beachte, daß der Hersteller es dem Benutzer ermöglichen kann, die Sätze von kalibrierten virtuellen Pixelzentren über das Internet herunterzuladen.
  • Die Kalibrierung des Herstellers kann besonders wichtig sein, wenn die physikalischen Pixelverzerrungen, die von irgendeiner der Projektionseinrichtungen in dem Anzeigesystem erzeugt werden, von Einheit zu Einheit wesentlich schwanken. Wenn die physikalischen Pixelverzerrungen der Projektionseinrichtungen, die das Anzeigesystem ausmachen, stabil sind, d. h. über die Zeit hinweg nicht wesentlich schwanken, braucht das Graphiksystem 112 möglicherweise keinen Mechanismus zur Kalibrierung durch den Benutzer bereitzustellen. Umgekehrt kann die Schwankung der physikalischen Pixelverzerrungen über die Zeit hinweg beträchtlich sein. Somit kann das Graphiksystem 112 einen Mechanismus (wie die oben beschriebenen) zur Kalibrierung der virtuelle Pixelzentren für jede Projektionseinrichtung durch den Benutzer bereitstellen.
  • Wenn die zeitliche Schwankung der physikalischen Pixelverzerrungen groß ist, kann das Graphiksystem 112 für eine kontinuierliche (d. h. Echtzeit-)Kalibrierung der virtuellen Pixelzentren für jede Projektionseinrichtung ausgelegt sein. Das Graphiksystem 112 kann zum Beispiel dafür ausgelegt sein, in Abständen unterschwellige Kalibrierungsmuster über jede der Projektionseinrichtungen anzuzeigen. Eine Videokamera kann die verzerrte Darstellung der Kalibrierungsmuster auf dem Schirm SCR überwachen. Das Graphiksystem 112 kann die Videobilder analysieren und als Reaktion auf die Videobilder einen korrigierten Satz virtueller Pixelzentren für jede der Projektionseinrichtungen erzeugen.
  • Die vorliegende Erfindung betrachtet verschiedene Ausführungsformen des Graphiksystems 112, wobei jede Kombination von Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrierung unterstützt werden kann. Darüber hinaus kann das Graphiksystems 112 dafür ausgelegt sein (oder nicht), das Herunterladen von Sätzen virtueller Pixelzentren, einen Satz je Projektionseinrichtung, zu unterstützen, die extern berechnet/festgelegt wurden wie bei einer Kalibrierung durch den Hersteller.
  • Bilderstapelung
  • Wie oben diskutiert können mehrere Projektionseinrichtungen physikalische Bilder erzeugen, die sich teilweise überlappen. In vielen Situationen ist es jedoch wünschenswert, die physikalischen Bilder (die von mehreren Projektionseinrichtungen erzeugt werden) übereinander zu stapeln, d. h. sie nominell denselben Bereich auf dem Schirm SCR überdecken zu lassen. Zum Beispiel kann in einer Stereo-Anwendung ein Projektor Bilder für das rechte Auge erzeugen, und ein zweiter Projektor kann Bilder für das linke Auge erzeugen. Kleine Abweichungen bei der Pixelausrichtung des Bildes für das rechte Auge und des Bildes für das linke Auge können falsche Tiefenwahrnehmungen nach sich ziehen. In einer Vierfach-Video-Anwendung können zwei Stereo-Projektoren auf densel ben Bereich auf dem Schirm SCR projizieren, um Stereo-Video für zwei Betrachter zu erzeugen. In einigen Situationen können die physikalischen Bilder von einer oder mehreren Projektionseinrichtungen gestapelt werden, um die Helligkeit des angezeigten Video zu erhöhen. Es gibt eine große Vielfalt von Situationen, in denen man die physikalischen Bilder von zwei oder mehr Projektionseinrichtungen stapeln möchte, und in vielen dieser Situationen sind auch nur kleine Abweichungen bei der Ausrichtung einander entsprechender Pixel der mehreren physikalischen Bilder nicht erwünscht.
  • Gestapelte Bilder können als ein Spezialfall von überlappenden Bildern betrachtet werden, bei dem der Überlappungsbereich maximiert wurde. Daher Lassen sich die oben diskutierten Prinzipien der Erfindung zur Korrektur individueller und relativer Bildverzerrungen in dem Fall von zwei überlappenden Bildern (die von zwei entsprechenden Projektionseinrichtungen erzeugt werden) auf natürliche Weise auf den Fall von zwei oder mehr gestapelten Bildern, die von zwei oder mehr Projektionseinrichtungen erzeugt werden, ausdehnen, Jeder Projektionseinrichtung ist ein Satz von Abtastung-zu-Pixel-Berechnungseinheiten zugeordnet, die die Pixelwerte für die Projektionseinrichtung erzeugen. Nach einer Ausführungsform kann jeder Satz von Abtastung-zu-Pixel-Berechnungseinheiten einen separaten Satz von virtuellen Pixelzentren in dem 2-D-Darstellungsfeld verwenden. Ein erster Satz von virtuellen Pixelzentren kann ausgewählt werden, um die Positionsverzerrung des ersten Array von Pixeln, die von der ersten Projektionseinrichtung auf dem Schirm SCR erzeugt werden, zu kompensieren. Der K-te Satz von virtuellen Pixelzentren, wobei K größer als eins ist, kann ausgewählt werden, um (a) die Positionsverzerrung des K-ten physikalischen Array von Pixeln, die von der K-ten Projektionseinrichtung erzeugt werden, und (b) die relative Verzerrung (z. B. die relative Skalierung und Positionierung) des K-ten Array bezüglich des ersten Array zu kompensieren.
  • Die Abtastung-zu-Pixel-Berechnungseinheit 170 kann Kalibrierungseingaben entgegennehmen, die jeden Satz von virtuellen Pixelzentren festlegen. Ein erster Satz von Kalibrierungen kann durchgeführt werden, um den ersten Satz von virtuellen Pixelzentren anzupassen, bis die von der ersten Projektionseinrichtung angezeigten Bilder unverzerrt erscheinen. Ein K-ter Satz von Kalibrierungen kann durchgeführt werden, um den K-ten Satz von virtuellen Pixelzentren anzupassen, bis die von der K-ten Projektionseinrichtung angezeigten Bilder (1) unverzerrt und (2) konsistent mit den von der ersten Projektionseinrichtung angezeigten Bildern erscheinen. Zum Beispiel ist der oben beschriebene Kalibrierungsvorgang zur Kompensation der mit einem Farbprojektor verbundenen Farbverzerrungen ähnlich dem Vorgang, der nötig ist, um die physikalische Verzerrung dreier physikalischer Arrays, die drei monochromen Projektoren zugeordnet sind, zu kompensieren.
  • Nach einer anderen Ausführungsform kann das Graphiksystem ferner dafür ausgelegt sein, die mit jeder Projektionseinrichtung in der „gestapelten bzw. überlagerten Konfiguration" verbundenen Farbverzerrung zu kompensieren. Somit kann der K-te Satz von Abtastung-zu-Pixel-Berechnungseinheiten, der der K-ten Projektionseinrichtung zugeordnet ist, für jede von der K-ten Projektionseinrichtung angezeigten Farbe einen separaten Satz von virtuellen Pixelzentren verwenden. Die Methodik zum Auswählen/Kalibrieren jedes Satzes von virtuellen Pixelzentren zur Kompensation der Farbverzerrungen in einer einzelnen Projektionseinrichtung wurde bereits diskutiert.
  • Nach separater Anwendung dieser Methodik für jede der überlagerten Projektionseinrichtungen kann das von jeder Projektionseinrichtung angezeigte Farbbild klar und unverzerrt erscheinen, wenn es isoliert betrachtet wird. Jedoch kann es sein, daß diese individuell korrigierten Farbbilder aufgrund von Differenzen bei der vertikalen und/oder horizontalen Skalierung und/oder der vertikalen und/oder horizontalen Positionierung auf dem Schirm SCR nicht genau übereinander liegen. Daher kann eine Reihe zusätzlicher Kalibrierungsanpassungen durchgeführt werden, um diese Differenzen zu kompensieren.
  • Nach noch einer anderen Ausführungsform kann das Graphiksystem als Reaktion auf von einer Kamera erhaltene Meßwerte einen Satz von virtuellen Pixelpositionen für jede Farbe jeder überlagerten Projektionseinrichtung auswählen. Wie er hier verwendet wird, impliziert der Begriff „überlagerte Projektionseinrichtung", daß das von der Projektionseinrichtung erzeugte Bild über das oder die von (einer) anderen Projektionseinrichtungen) erzeugte(n) Bilder) gestapelt wird.
  • Edge Blending
  • Wie oben in Verbindung mit den 28-31 beschrieben können sich das linke physikalische Array LPA und das rechte physikalische Array RPA auf den Schirm SCR überlappen. In den Überlappungsbereichen ist die Dichte der physikalischen Pixel höher als in den nicht überlappenden Bereichen. Daher kann die Durchschnittsintensität des Überlappungsbereiches größer sein als die Durchschnittsintensität der nicht überlappenden Bereiche. Somit kann der Benutzer sogar dann, wenn alle räumlichen Verzerrungen, die dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA eigen sind, wie oben beschrieben (durch geeignete Wahl der virtuelle Pixelzentren in dem 2-D-Darstellungsfeld) kompensiert sind, dennoch eine störende Helligkeit in dem Überlappungsbereiche wahrnehmen.
  • Nach einer Ausführungsform der vorliegenden Erfindung können die Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt sein, die Helligkeit des Überlappungsbereiches zu korrigieren, indem die Intensität der berechneten Pixelwerte in dem Überlappungsbereich nach unten skaliert wird. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt sein, berechnete Pixelfarbwerte des linken virtuellen Array LVA mit einer ersten Skalierungsfunktion S1 zu skalieren und die berechneten Farbwerte des rechten virtuellen Array RVA mit einer zweiten Skalierungsfunktion S2 zu skalieren. In 32A erstreckt sich das linke virtuelle Array LVA (mit kleinen Kreisen gekennzeichnet) von Null bis Xb in der X-Koordinate. Das rechte virtuelle Array RVA (mit kleinen Dreiecken gekennzeichnet) erstreckt sich von Xa bis Xmax in der X-Koordinate. Somit überlappen sich das linke virtuelle Array LVA und das rechte virtuelle Array RVA in dem Streifen von X-Werten im Bereich von Xa bis Xb. Die erste Skalierungsfunktion S1 kann gleich eins sein für die Koordinate X im Bereich von Null bis Xa und kann von eins zu Null übergehen, wenn X von Xa bis Xb ansteigt. Die zweite Skalierungsfunktion S2 kann von Null zu eins übergehen, wenn X von Xa bis Xb ansteigt und kann gleich eins sein für X im Bereich von Xa bis Xmax. Man beachte, daß die Summe der Skalierungsfunktionen in dem Überlappungsbereich des 2-D-Darstellungsfeldes gleich eins ist. Somit ist die Dichte der physikalischen Pixel herunter skaliert, so daß die Durchschnittsdichte des Überlappungsbereiches (auf dem Schirm SCR) konsistenter mit der Durchschnittsdichte der nicht überlappenden Bereich ist, obwohl es eine höhere Dichte von physikalischen Pixeln in dem Überlappungsbereich des Schirms SCR gibt. Die Übergänge in der Skalierungsfunktion S1 und S2 kann linear, "raised cosine"-artig, stückweise linear mit zwei oder mehr linearen Segmenten, stückweise polynomial, etc. sein.
  • Für jedes virtuelle Pixelzentrum (X,Y) des linken virtuellen Array können die Farbwerte (rot, grün und blau), die aus den Farbfaltungen bei (X,Y) resultieren, mit dem Skalienrungswert S1(X), der eine Zahl zwischen Null und eins ist, multipliziert werden. Wenn das virtuelle Pixelzentrum (X,Y) in den eindeutigen Inneren (d. h. im ungeteilten Inneren) des linken virtuellen Array LVA liegt, d. h. X zwischen Null und Xa liegt, dann werden die Farbwerte nicht beeinflußt, da der Skalierungswert S1(X) gleich eins ist. In diesem Fall kann die Multiplikation ausgelassen werden, um Rechenzeit zu sparen. Die Farbwerte werden an die Projektionseinrichtung PD1 übermittelt und treiben ein entsprechendes physikalisches Pixel in dem eindeutigen Inneren des linken physikalischen Array auf dem Schirm SCR. Wenn das virtuelle Pixelzentrum (X,Y) in dem Überlappungsbereich liegt, d. h. X zwischen Xa und Xb liegt, können die Farbwerte mit dem Skalierungswert S1(X) multipliziert werden, der sich Null nähert, wenn das virtuelle Pixelzentrum (X,Y) sich Xb nähert. Die skalierten Farbwerte werden an die Projektionseinrichtung PD1 übermittelt und treiben ein entsprechendes physikalisches Pixel des linken physikalischen Array in dem Überlappungsbereich des Schirms SCR. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können die Farbwertberechnung implementieren und die Skalierung der Farbwerte für das linke virtuelle Array LVA implementieren.
  • In ähnlicher Weise können die aus den Farbfaltungen bei (X,Y) resultierenden Farbwerte (rot, grün und blau) für jedes virtuelle Pixelzentrum (X,Y) des rechten virtuellen Array mit dem Skalierungswert S2(X), der eine Zahl zwischen Null und eins ist, multipliziert werden. Wenn das virtuelle Pixelzentrum (X,Y) im eindeutigen Inneren des rechten virtuellen Array RVA liegt, d. h. X zwischen Xb und Xmax liegt, dann werden die Farbwerte nicht beeinflußt, da der Skalierungswert S2(X) gleich eins ist. In diesem Fall kann die Multiplikation ausgelassen werden, um Rechenzeit zu sparen. Die Farbwerte werden an die Projektionseinrichtung PD2 übermittelt und treiben ein entsprechendes physikalisches Pixel in dem eindeutigen Inneren des rechten physikalischen Array auf dem Schirm SCR. Wenn das virtuelle Pixelzentrum (X,Y) in dem Überlappungsbereich liegt, d. h. X zwischen Xa und Xb liegt, können die Farbwerte mit dem Skalierungswert S2(X) multipliziert werden, der von eins nach Null übergeht, wenn sich das virtuelle Pixelzentrum (X,Y) von Xb nach Xa bewegt. Die skalierten Farbwerte werden an die Projektionseinrichtung PD2 übermittelt und treiben ein entsprechendes physikalisches Pixel des rechten physikalischen Array in dem Überlappungsbereich des Schirms SCR. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können die Farbwertberechnung implementieren und die Skalierung der Farbwerte für das rechte virtuelle Array RVA implementieren.
  • Man beachte, daß das linke virtuelle Array LVA und das rechte virtuelle Array RVA verzerrt sein können, so daß der Überlappungsbereich in dem 2-D-Darstellungsfeld 420 komplizierter ist als ein vertikaler Streifen. Zum Beispiel weisen in 32B das linke virtuelle Array LVA und das rechte virtuelle Array RVA Scherungsverzerrungen auf, was die Form des Überlappungsbereich verkompli ziert. Der linke Rand BL und der rechte Rand BR des Überlappungsbereiches können durch die Randfunktionen Xa(Y) bzw. Xb(Y) beschrieben werden. Die Randfunktionen spezifizieren den Beginn und das Ende der X-Koordinaten für den Überlappungsbereich entlang jeder horizontalen Linie Y=A (oder entlang einer ausgewählten Teilmenge von horizontalen Linien). Die Skalierungsfunktionen S1 und S2 können Funktionen von X und Y sein. Entlang jeder horizontalen Linie Y=A kann die Skalierungsfunktion S1 gleich eins sein für X im Bereich von Null bis Xa(A) und kann von eins zu Null übergehen, wenn X von Xa(A) nach Xb(A) voranschreitet. In ähnlicher Weise kann die Skalierungsfunktion S2 entlang jeder horizontalen Linie Y=A von Null zu eins übergehen, wenn X von Xa(A) nach Xb(A) voranschreitet. und kann gleich eins sein, wenn X im Bereich von Xb(A)bis Xmax liegt. Die Summe der Funktionen S1 und S2 ist gleich eins in dem Überlappungsbereich in dem 2-D-Darstellungsfeld.
  • An jedem virtuellen Pixelzentrum (X,Y) des linken virtuellen Array können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 die bei (X,Y) berechneten Farbwerte mit dem ersten Skalierungswert S1(X,Y) multiplizieren. Die skalierten Farbwerte werden an die Projektionseinrichtung PD1 übermittelt und werden verwendet, um ein entsprechendes physikalisches Pixel des linken physikalischen Array LPA zu treiben. In dem eindeutigen Inneren des linken virtuellen Array LVA ist der erste Skalierungswert S1(X,Y) gleich eins, und somit kann die Multiplikation ausgelassen werden, um Rechenzeit zu sparen.
  • An jedem virtuellen Pixelzentrum (X,Y) des rechten virtuellen Array können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 die bei (X,Y) berechneten Farbwerte mit dem zweiten Skalierungswert S2(X,Y) multiplizieren. Die skalierten Farbwerte werden an die Projektionseinrichtung PD2 übermittelt und werden verwendet, um ein entsprechendes physikalisches Pixel des rechten physikalischen Array RPA zu treiben. In dem eindeutigen Inneren des rechten virtuellen Array RVA ist der zweite Skalierungswert S2(X,Y) gleich eins, und somit kann die Multiplikation ausgelassen werden, um Rechenzeit zu sparen.
  • Das folgende Pseudocode-Fragment veranschaulicht eine mögliche Ausführungsform der Farbwertberechnungen und des Edge-Blending, die von den Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 für das linke virtuelle Array durchgeführt werden.
  • Figure 00860001
  • Figure 00870001
  • Jedes verzerrte virtuelle Pixelzentrum (Xd,Yd) wird durch Addieren des Vektorverschiebungswertes Δg1(I,J) zu einer zugehörigen Position (Xr,Yr) des rechteckigen Array erzeugt. Die roten, grünen und blauen Faltungsfunktionen werden aufgerufen, um die roten, grünen bzw. blauen Farbwerte an dem verzerrten Zentrum (Xd,Yd) zu berechnen. Sobald sie berechnet sind, werden die Farbwerte mit der ersten Skalierungswert S1, ausgewertet an dem (oder interpoliert für das) verzerrte(n) Zentrum (Xd,Yd), multipliziert. Die skalierten Farbwerte werden durch einen Videokanal an die Projektionseinrichtung PD1 übermittelt.
  • Nach der bevorzugten Ausführungsform kann jede der Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 unabhängig voneinander betrieben werden und skalierte Farbwerte für einen entsprechenden vertikalen Streifen der Indexmenge S erzeugen. Daher kann das obenstehende Codefragment von jeder Abtastung-zu-Pixel-Berechnungseinheit 170-K ausgeführt werden, wobei der Index I auf den entsprechenden vertikalen Streifen beschränkt ist.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können eine ähnliche Methodik (wie in dem obenstehenden Pseudocode-Fragment) verwenden, um für das rechte virtuellen Array RVA Farbwerte zu berechnen und Farbwerte zu skalieren. Es wird jedoch die zweite Skalierungsfunktion S2(X,Y) anstelle der ersten Skalierungsfunktion S1(X,Y) verwendet.
  • Das Graphiksystem 112 kann dafür ausgelegt sein, einen Kalibrierungsmodus bereitzustellen. In dem Kalibrierungsmodus kann das Graphiksystem 112 Kalibrierungseingaben von einem Benutzer entgegennehmen. Die Kalibrierungseingaben können die Ausdehnung des Überlappungsbereiches auf dem Schirm SCR definieren. Zum Beispiel können die Darstellungseinheiten 150 ein Paar von vertikalen Linien in dem Abtastpuffer 162 wiedergeben. Der Benutzer kann horizontale Anpassungseingaben liefern, um die vertikalen Linien zu ziehen, so daß sie mit dem linken bzw. rechten Rand des Überlappungsbereiches auf dem Schirm SCR, d. h. des Überlappungsbereiches zwischen dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA, in Linie stehen. Nach der Anpassung durch den Benutzer können die X-Koordinaten Xa und Xb der beiden vertikalen Linien in dem virtuellen Schirmraum verwendet werden, um die Skalierungsfunktionen S1(X) und S2(X) zu erstellen.
  • Nach anderen Ausführungsformen kann das Graphiksystem 112 dafür ausgelegt sein, eine Kalibrierung für die nicht-rechteckige Überlappungsbereiche bereitzustellen. Zum Beispiel können die Darstellungseinheiten 150 ein Cursor- bzw. Schreibmarkenmuster in dem Abtastpuffer 162 wiedergeben. Der Benutzer kann den Cursor ziehen und mehrere Positionen entlang des linken Randes des Überlappungsbereiches auf dem Schirm SCR auswählen. Die Darstellungseinheiten 150 können die ausgewählten (X,Y)-Positionen speichern. Die gespeicherten Positionen können verwendet werden, um die linke Randfunktion Xa(Y) abzuschätzen (oder tabellarisch darzustellen). Derselbe Auswahlvorgang kann für den rechten Rand des Überlappungsbereiches wiederholt werden. Dieser zweite Satz von gespeicherten Positionen kann verwendet werden, um die rechte Randfunktion Xb(Y) abzuschätzen (oder tabellarisch darzustellen).
  • Ein Hersteller von Mehrprojektor-Anzeigesystemen kann die Randfunktionen, die den Bereich oder die Bereiche der Überlappung zwischen den projizierten Bildern definieren, für ein Anzeigesystem zum Zeitpunkt der Herstellung kalibrieren. Die Randfunktionen (oder Abtastungen davon) können kodiert und in einem Speichermedium wie einer Platte oder einer CD-ROM gespeichert werden. Der Hersteller kann das Speichermedium zusammen mit dem Anzeigesystem an einen Benutzer ausliefern. Der Benutzer kann die Randfunktionsdaten in das Graphiksystem 112 übertragen. (Der Übertragungsvorgang kann automatisiert sein.) Die Randfunktionsdaten ermöglichen es dem Graphiksystem 112, die Lichtintensität der in dem oder den Überlappungsbereich(en) berechneten Pixelwerte abzuschwächen. Man beachte, daß der Hersteller es dem Benutzer ermöglichen kann, die Randfunktionsdaten über das Internet herunterzuladen.
  • Die Kalibrierung des Herstellers kann besonders wichtig sein, wenn die Randfunktionen von Einheit zu Einheit (d. h. von einem Anzeigesystem zum nächsten in einer Herstellungsbaureihe) wesentlich schwanken. Wenn die Randfunktionen stabil sind, d. h. über die Zeit hinweg nicht wesentlich schwanken, braucht das Graphiksystem 112 möglicherweise keinen Mechanismus zur Kalibrierung durch den Benutzer bereitzustellen. Umgekehrt kann die Schwankung der Randfunktionen über die Zeit hinweg beträchtlich sein. Somit kann das Graphiksystem 112 einen Mechanismus (wie die oben beschriebenen) zur Kalibrierung der Randfunktionen durch den Benutzer bereitstellen.
  • Wenn die zeitliche Schwankung der Randfunktionen groß ist, kann das Graphiksystem 112 für eine kontinuierliche (d. h. Echtzeit-)Kalibrierung der Randfunktionen ausgelegt sein. Das Graphiksystem 112 kann zum Beispiel dafür ausgelegt sein, in Abständen unterschwellige Kalibrierungsmuster über jede der Projektionseinrichtungen anzuzeigen. Eine Videokamera kann die auf dem Schirm SCR angezeigten Kalibrierungsmuster aufnehmen. Das Graphiksystem 112 kann die Videobilder analysieren und als Reaktion auf die Videobilder einen Satz von Randfunktionen erzeugen, die die Ränder des Überlappungsbereichs oder der Überlappungsbereiche angeben.
  • Die vorliegende Erfindung betrachtet verschiedene Ausführungsformen des Graphiksystems 112, wobei jede Kombination von Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrierung unterstützt werden kann. Darüber hinaus kann das Graphiksystems 112 dafür ausgelegt sein (oder nicht), das Herunterladen von Randfunktionen zu unterstützen, die extern festgelegt wurden wie bei einer Kalibrierung durch den Hersteller.
  • Zwei Projektionseinrichtungen erzeugen nicht-überlappende Bilder Idealisierter Fall
  • 33 stellt eine duale Ansicht von physikalischen Pixeln auf dem Schirm SCR und von zugehörigen virtuellen Pixeln in dem 2-D-Darstellungsfeld 420 in dem Fall dar, daß zwei Projektionseinrichtungen PD1 und PD2 in einer nicht-überlappenden Konfiguration verwendet werden. Die auf dem Schirm SCR dargestellten physikalischen Pixel repräsentieren ein idealisiertes Projektionsszenario. Die Projektionseinrichtung PD1 erzeugt ein rechteckiges Array von physikalischen Pixeln auf der linken Seite des Schirms SCR. Dieses rechteckige Array wird hier als das linke physikalische Array LPA bezeichnet. Die Zentren der physikalischen Pixel, die das linke physikalische Array LPA ausmachen, sind durch kleine Kreise dargestellt. Ähnlich erzeugt die Projektionseinrichtung PD2 ein rechteckiges Array von physikalischen Pixeln auf der rechten Seite des Schirms SCR. Dieses zweite rechteckige Array wird hier als das rechte physikalische Array RPA bezeichnet. Die Zentren der physikalischen Pixel, die das rechte physikalische Array RPA ausmachen, sind durch kleine Dreiecke dargestellt. Die Linie L markiert die physikalische Grenze zwischen dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA. Auch wenn es schwierig oder unmöglich zu realisieren ist, nehmen wir für die Diskussion an, daß das linke physikalische Array LPA und das rechte physikalische Array RPA so ausgerichtet sind, daß sie ein kombiniertes rechteckiges Array wie in der Figur gezeigt bilden.
  • Das Zentrum jedes physikalischen Pixel auf dem Projektionsschirm SCR kann durch seine physikalischen Schirmkoordinaten U und V festgelegt werden. Der horizontale Abstand und der vertikale Abstand zwischen physikalischen Pixelzentren können mit Δu bzw. Δv bezeichnet werden. Jedes physikalische Pixel in dem linken physikalischen Array LPA kann durch ein Paar (I1,J1) ganzzahliger Indizes beschrieben werden, wobei der Index I1 einen Wert im Bereich 0 bis M-1 und der Index J1 einen Wert im Bereich zwischen 0 und N-1 annimmt. Wie zuvor bezeichne S die Menge der Indexpaare, d. h. S={(I1,J1):I1 = 0,1,2,...,M - 1, J1 = 0,1,2,...,N- 1}.
  • In ähnlicher Weise kann jedes physikalische Pixel in dem rechten physikalischen Array RPA durch ein Paar (I2,J2) ganzzahliger Indizes beschrieben werden, wobei der Index I2 einen Wert im Bereich 0 bis M-1 und der Index J2 einen Wert im Bereich zwischen 0 und N-1 annimmt.
  • Unter den abgebildeten, idealisierten Bedingungen hat die Funktion f1, die die Indexpaare (I1,J1) auf die physikalischen Pixelzentren (U,V) in dem linken physikalischen Array LPA abbildet, eine diagonal affine Struktur. Ähnlich hat die Funktion f2, die die Indexpaare (I2,J2) auf die physikalischen Pixelzentren (U,V) in dem rechten physikalischen Array RPA abbildet, eine diagonal affine Struktur. Darüber hinaus können die Funktionen f1 und f2 bis auf eine horizontale Verschiebung um die Distanz MΔu gleich sein.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 erzeugen virtuelle Pixelzentren in dem 2-D-Darstellungsfeld entsprechend den physikalischen Pixeln in dem linken physikalischen Array LPA. Die so erzeugten virtuellen Pixelzentren werden hier als das linke virtuelle Array LVA bezeichnet. Die Funktion g1 repräsentiere die Auswahl von virtuellen Pixelzentren, die das linke virtuelle Array ausmachen. Somit definiert die Funktion g1 für jedes Indexpaar (I1,J1) in der Menge S ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld, wobei X und Y die virtuellen Schirm-Koordinaten des virtuellen Pixelzentrums sind. Abtastungen in der Umgebung eines virtuellen Pixelzentrums (X,Y) in dem linken physikalischen Array werden verwendet, um einen Satz von Pixelwerten (z. B. rote, grüne, blaue, etc.) zu erzeugen, die die Farbe und Intensität der entsprechenden physikalischen Pixel in dem linken physikalischen Array LPA festlegen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können sich den Aufwand der Berechnung von Pixelwerten an den Pixelzentren des linken virtuellen Array aufteilen. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-1 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem ho rizontalen Index I1 kleiner als oder gleich (M/2)-1 durchführen, während die Abtastung-zu-Pixel-Berechnungseinheit 170-2 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index I1 größer als oder gleich M/2 durchführt.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 erzeugen virtuelle Pixelzentren in dem 2-D-Darstellungsfeld, die den physikalischen Pixeln des rechten physikalischen Array RPA entsprechen. Die so erzeugten, virtuellen Pixelzentren werden hier als das rechte virtuelle Array RVA bezeichnet. Die Funktion g2 repräsentiere die Auswahl von virtuellen Pixelzentren, die das rechte virtuelle Array RVA ausmachen. Somit definiert die Funktion g2 für jedes Indexpaar (I2,J2) in der Menge S ein virtuelles Pixelzentrum (X,Y) in dem rechte virtuelle Array RVA in dem 2-D-Darstellungsfeld. Abtastungen in der Umgebung eines virtuellen Pixelzentrums (X,Y) in dem rechten physikalischen Array werden verwendet, um einen Satz von Pixelwerten (z. B. rote, grüne, blaue, etc.) zu erzeugen, die die Farbe und Intensität der entsprechenden physikalischen Pixel in dem rechten physikalischen Array RPA festlegen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können sich den Aufwand der Berechnung von Pixelwerten an den Pixelzentren des rechten virtuellen Array aufteilen. Zum Beispiel kann die Abtastung-zu-Pixel-Berechnungseinheit 170-3 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index I2 kleiner als oder gleich (M/2)-1 durchführen, während die Abtastung-zu-Pixel-Berechnungseinheit 170-4 die Berechnungen von Pixelwerten für virtuelle Pixelzentren mit dem horizontalen Index I2 größer als oder gleich M/2 durchführt.
  • Wenn eine höhere Bandbreite gebraucht wird, können mehr als zwei Abtastung-zu-Pixel-Berechnungseinheiten jeder Projektionseinrichtung zugewiesen werden. Wenn umgekehrt die Verarbeitungskapazität jeder Abtastung-zu-Pixel-Berechnungseinheit hoch genug ist, braucht nur eine Abtastung-zu-Pixel-Berechnungseinheit jeder Projektionseinrichtung zugewiesen zu werden. Ferner können unterschiedliche Anzahlen von Abtastung-zu-Pixel-Berechnungseinheiten jeder Projektionseinrichtung zugewiesen werden. Man beachte, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170, die die zwei Projektionseinrichtungen treiben, innerhalb einer oder mehreren Graphikkarten derselben (oder einer ähnlichen) Konfiguration wie die Graphikkarte 116 enthalten sein können.
  • Die Funktionen
    Figure 00900001
    bilden Punkte (X,Y) in dem virtuellen Schirmraum auf Punkte (U,V) in dem physikalischen Schirmraum ab und insbesondere virtuelle Pixelzentren auf ihre entsprechenden physikalischen Pixelzentren. Es ist wünschenswert, daß diese beiden Funktionen diagonal affin, das Ansichtsverhältnis erhaltend und gleich sind, so daß Objekte, die auf beiden Seiten des Schirms SCR angezeigt werden, unverzerrt und konsistent in der Größe erscheinen. A sei eine das Ansichtsverhältnis erhaltende und diagonal affine Abbildung von dem virtuellen Schirmraum in den physikalischen Schirmraum. Wenn die Funktionen g1 und g2 so gewählt werden, daß
    Figure 00900002
    dann ist h1=h2=A wie gewünscht. Die Ausdrücke für g1 und g2 implizieren, daß das linke virtuelle Array und das rechte virtuelle Array gleichmäßig skalierte Versionen des linken physikalischen Array bzw. des rechten physikalischen Array sind. Darüber hinaus folgt, da f1 und f2 bis auf eine horizontale Verschiebung gleich sind, daß die Funktionen g1 und g2 bis auf eine horizontale Verschiebung gleich sind.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 können so die virtuellen Pixelzentren anordnen, daß das kombinierte virtuelle Array das 2-D-Darstellungsfeld überdeckt. Zum Beispiel angenommen, daß das 2-D-Darstellungsfeld ein Rechteck ist, das durch X-Werte im Bereich Null bis Xmax und Y-Werte im Bereich Null bis Ymax definiert ist. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können virtuelle Pixelzentren des linken virtuellen Array mittels der folgenden Definition für die Funktion g, berechnen: X = (Xmax/2M)I1 + (Xmax/4M), Y = (Ymax/2N)J1 + (Ymax/4N),für (I1,J1), die die Menge S durchlaufen. In ähnlicher Weise können die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 virtuelle Pixelzentren des rechten virtuellen Array mittels der folgenden Definition für die Funktion g2 berechnen: X = (Xmax/2M)I2 + (Xmax/2) + (Xmax/4M), Y = (Ymax/2N)J2 + (Ymax/4N),für (I2,I2), die die Menge S durchlaufen.
  • Alternativ können die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 bis 170-4 die virtuellen Pixelzentren so anordnen, daß das kombinierte virtuelle Array ein Teilfenster des 2-D-Darstellungsfeldes überdeckt, wie in 34 gezeigt. (Siehe 18D und den zugehörigen Text für die Diskussion des sichtbaren Teilfensters und seiner Verwendung bei den Berechnungen der Pixelwerte.) Angenommen zum Beispiel, daß das sichtbare Teilfenster 422 des 2-D-Darstellungsfeldes 420 als ein Rechteck definiert ist mit der unteren linken Ecke definiert durch (X1,Y1) und der oberen rechten Ecke definiert durch (X2,Y2). In diesem Fall können die virtuellen Pixelzentren des linken virtuellen Array durch die folgenden Relationen definiert werden X = X1 + I1Dx/2M + Dx/4M, Y = Y1 + J1Dy/2N + Dy/4N,wobei I1 von Null bis M-1 und J1 von Null bis N-1 läuft, wobei Dx=X2-X1 und Dy=Y2-Y1 ist. In ähnlicher Weise können die virtuellen Pixelzentren des rechten virtuellen Array durch die folgenden Relationen definiert werden X = X1 + Dx/2 + I2Dx/2M + Dx/4M, Y = Y1 + J2Dy/2N + Dy/4N,wobei qehlmöglichkeiten für die Funktion g betrachtet. Die obenstehenden Beispiele sind nicht limitierend gedacht. Die Darstellungseinrichtungen 150 können Abtastungen kontinuierlich in dem gesamten 2-D-Darstellungsfeld wiedergeben. Jedoch können die Abtastpositionen außerhalb des sichtbaren Teilfensters 422 zu den Farbberechnungen als die Hintergrundfarbe beitragen, wie in Verbindung mit
  • 18D diskutiert. Die in dem Randbereich wiedergegebenen Farbwerte (außerhalb des sichtbaren Teilfensters) können es ermöglichen, Effekte wie Schwenken und Zoomen effizienter zu implementieren. Wie oben beschrieben kann Schwenken und Zoomen durch Ändern der Koordinaten X1, X2, Y1 und Y2 des sichtbaren Teilfensters 422 als eine Funktion der Zeit t implementiert werden. Gemäß einer anderen Methodik ist es nur für Abtastpositionen innerhalb des sichtbaren Teilfensters 422 möglich, zu den Farbberechnungen (d. h. Faltungen der Pixelwerte) beizutragen.
  • Nach einer Ausführungsform kann Schwenken und Zoomen erreicht werden, indem die Startposition (XS(K),YS(K)), eine horizontale Schrittweite ΔX(K) eine vertikale Schrittweite ΔY(f) für jede Abtastung-zu-Pixel-Berechnungseinheit 170-K als eine Funktion der Zeit geändert wird. Zum Beispiel kann Schwenken durch Ändern der Startpositionen erreicht werden. Zoomen kann durch Ändern der Schrittweiten und der Startpositionen erreicht werden.
  • Kantenabgleich bzw. Edge Matching
  • In der Diskussion von 33 wurde angenommen, daß das linke physikalische Array LPA und das rechte physikalische Array RPA (von physikalischen Pixeln), die von den Projektionseinrichtungen PD1 bzw. PD2 erzeugt werden, ohne Überlappung ausgerichtet sind, um ein gleichmäßiges rechteckiges Array auf dem Schirm SCR zu bilden. In der Praxis ist diese Annahme aufgrund verschiedener Verzerrungsmechanismen, die den Projektionseinrichtungen und dem Schirm SCR eigen sind, schwierig oder unmöglich zu realisieren. Jeder Versuch, die Kanten der beiden physikalischen Arrays ohne Überlappung auszurichten, scheitert, weil die Kanten wie in den Beispielen der 35A und 35B angedeutet verzerrt sind. Daher ist es notwendig, die beiden physikalischen Arrays sich zumindest teilweise überlappen zu lassen, um eine Lücke an der Schnittstelle der beiden physikalischen Arrays zu vermeiden. Es ist wünschenswert, den Umfang der Überlappung zu minimieren, so daß die Größe des von dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA überdeckten Schirmbereiches maximiert wird. Wenn sich das linke physikalische Array LPA und das rechte physikalische Array RPA minimal überlappen, wie in den 35A und 35B angedeutet, erscheint der Überlappungsbereich als eine ungerade Verzerrungslinie L wegen der Fehlausrichtung der Pixel der beiden physikalischen Arrays. Darüber hinaus erscheint die Verzerrungslinie L relativ heller aufgrund der höheren Dichte von physikalischen Pixeln in dem Überlappungsbereich.
  • Nach einer Ausführungsform des Graphiksystems 112 sind die Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt, die virtuellen Pixelzentren (d. h. die Zentren der Faltung) in dem 2-D-Darstellungsfeld anzupassen, um die Anzeigeverzerrung, d. h. die physikalische Verzerrung der Positionen der physikalischen Pixel auf dem Schirm SCR, zu korrigieren. 36 stellt eine gleichzeitige Sicht der virtuellen Pixel in dem 2-D-Darstellungsfeld (das Teil des virtuellen Schirmraums ist) und der physikalischen Pixel auf dem Schirm SCR dar und hilft bei der Erläuterung des vorliegenden Ausführungsform, die mit zwei Projektionseinrichtungen in einer Konfiguration mit minimaler (oder geringer) Überlappung arbeitet. Für die Diskussion werden das linke physikalische Array LPA und das rechte physikalische Array RPA als N × M-Arrays angenommen, d. h. jedes mit N Pixeln vertikal und M Pixeln horizontal.
  • Die Funktion f1 bildet Indexpaare (I1,J1) in der Menge S auf physikalische Pixelzentren (U,V) ab, die das linke physikalische Array LPA ausmachen, und beschreibt eine beliebige Verzerrung des linken physikalischen Array. In ähnlicher Weise bildet die Funktion f2 Indexpaare (I2,J2) in der Menge S auf physikalische Pixelzentren (U,V) ab, die das rechte physikalische Array RPA ausmachen, und beschreibt eine beliebige Verzerrung des rechten physikalischen Array.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können so interpretiert werden, daß sie die Menge S von Indexpaaren einmal pro Videoeinzelbild traversieren. Für jedes Paar (I1,J1) in der Menge S wählen die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld aus. Die so erzeugte Ansammlung von virtuellen Pixelzentren wird hier als das linke virtuelle Array LVA bezeichnet. Abtastungen in der Umgebung des virtuellen Pixelzentrums werden zum Erzeugen eines Satzes von Pixelwerten (z. B. roter, grüner, blauer, etc.) für das entsprechende physikalische Pixel in dem linken physikalischen Array LPA verwendet. Die Funktion g1 stellt die Abbildung von Indexpaaren (I1,J1) auf virtuelle Pixelzentren (X,Y) dar, die das linke virtuelle Array LVA ausmachen.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können so interpretiert werden, daß sie die Menge S von Indexpaaren traversieren. Für jedes Paar (I2,J2) in der Menge S wählen die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld aus. Die so erzeugte Ansammlung von virtuellen Pixelzentren wird hier als das rechte virtuelle Array RVA bezeichnet. Abtastungen in der Umgebung des virtuellen Pixelzentrums werden zum Erzeugen eines Satzes von Pixelwerten (z. B. roter, grüner, blauer, etc.) für das entsprechende physikalische Pixel in dem rechten physikalischen Array RPA verwendet. Die Funktion g2 stellt die Abbildung von Indexpaaren (I2,J2) auf virtuelle Pixelzentren (X,Y) dar, die das rechte virtuelle Array RVA ausmachen.
  • Die Funktionen
    Figure 00930001
    bilden Punkte (X,Y) in dem virtuellen Schirmraum auf Punkte (U,V) in dem physikalischen Schirmraum ab und insbesondere virtuelle Pixelzentren auf ihre entsprechenden physikalischen Pixelzentren. Es ist wünschenswert, daß diese beiden Funktionen diagonal affin, das Ansichtsverhältnis erhaltend und gleich sind, so daß Objekte, die auf beiden Seiten des Schirms SCR angezeigt werden, unverzerrt und konsistent erscheinen. Gemäß der vorliegenden Erfindung kann den Funktionen h1 und h2 die gewünschte Struktur gegeben werden, wenn g1 = A–1
    Figure 00570001
    f1 und g2 = A–1
    Figure 00570001
    f2 gilt, wobei A eine diagonal affine und das Ansichtsverhältnis erhaltende Abbildung von XY nach UV ist.
  • Die obige Wahl der Funktionen g1 und g2 legt nahe, daß die Abtastung-zu-Pixel-Berechnungseinheiten 170 dieselbe Art von Verzerrungen beim Erzeugen der virtuellen Pixelzentren des linken virtuellen Array bzw. des rechten virtuellen Array implementieren können, um die Verzerrungen zu korrigieren, die dem linken physikalischen Array LPA und dem rechten physikalischen Array RPA eigen sind. Mit anderen Worten kann das linke virtuelle Array LVA so gewählt werden, daß es eine skalierte Version des linken physikalischen Array LPA ist. In ähnlicher Weise kann das rechte virtuelle Array RVA so gewählt werden, daß es eine skalierte Version des rechten physikali schen Array RPA ist. In 36 ist das linke physikalische Array als ein Parallelogramm dargestellt, das sich nach rechts lehnt, und das rechte physikalische Array als ein Parallelogramm dargestellt, das sich nach links lehnt. Somit kann die optimale Wahl für das linke virtuelle Array LVA ein Parallelogramm sein, das sich genau wie das LPA nach rechts lehnt. In ähnlicher Weise kann die optimale Wahl für das rechte virtuelle Array RVA ein Parallelogramm sein, das sich genau wie das RPA nach links lehnt.
  • Die Funktionen f1 und f2 können basierend auf Messungen, die von einer Aufnahmeeinrichtung wie einer Videokamera bereitgestellt werden, abgeschätzt werden. Zum Beispiel können die Abtastung-zu-Pixel-Berechnungseinheiten 170 ein oder mehrere Pixelmuster zur Kalibrierung zur Anzeige auf dem Schirm SCR an die Projektionseinrichtungen PD1 und PD2 übermitteln. Die Projektionseinrichtungen können als Reaktion auf jedes der Pixelmuster zur Kalibrierung physikalische Bilder erzeugen. Eine Videokamera kann die physikalischen Bilder aufnehmen, die für jedes der Kalibrierungsmuster auf dem Schirm SCR angezeigt werden. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 (oder eine ausgewählte Teilmenge dieser Einheiten) können die Funktionen f1 und f2 basierend auf den bekannten Kalibrierungsmustern und den aufgenommenen Bildern abschätzen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können zum Beispiel stückweise lineare Approximationen an die Funktionen f1 und f2 erzeugen und aus diesen stückweise lineare Approximationen an die Auswahlfunktionen g1 und g2 berechnen.
  • Nach einer anderen Ausführungsform nehmen die Abtastung-zu-Pixel-Berechnungseinheiten 170 Kalibrierungseingaben von einem Benutzer entgegen. Der Benutzer kann sich vor dem Schirm SCR befinden und den Schirm SCR beobachten. Der Benutzer kann die Art der Verzerrung, die durch jedes physikalischen Pixelarray an den Tag gelegt wird, feststellen und eine separate Kalibrierung für jedes physikalische Pixelarray wie oben in Verbindung mit den 25AD beschrieben durchführen. Man beachte, daß die Verformung des linken virtuellen Array LVA und des rechten virtuellen Array RVA bei diesen Kalibrierungen von den in 33 oder 34 angegebenen, nicht-überlappenden rechteckigen Konfigurationen ausgehen kann. Nach diesen Kalibrierungen können Objekte, die entweder in dem linken physikalischen Array oder in dem rechten physikalischen Array angezeigt werden, unverzerrt erscheinen. Wenn jedoch eines der physikalischen Arrays nur leicht skaliert oder versetzt gegenüber dem anderen physikalischen Array ist, wird der Betrachter immer noch eine Unschärfe entlang der Grenzlinie L wahrnehmen. Daher können zusätzliche Kalibrierungen, die die Beziehung (d. h. die relative Skalierung und Position) der beiden physikalischen Arrays behandeln, notwendig sein. Zum Beispiel hat das rechte physikalische Array RPA in 36 eine größere Höhe als das linke physikalische Array LPA. Daher kann der Benutzer einen vertikalen Skalierungsmodus aufrufen, um die fehlende Übereinstimmung der vertikalen Skalierung zwischen den beiden physikalischen Arrays zu korrigieren. In dem vertikalen Skalierungsmodus reagieren die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 auf die Plus-/Minus-Anpassungssignale, die von dem Benutzer gesetzt werden. Als Reaktion auf das Plus-Anpassungssignal können die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 das rechte virtuelle Array RVA in Richtung ansteigender vertikaler Höhe verformen. Als Reaktion auf das Minus-Anpassungssignal können die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 das linke virtuelle Array LVA in Richtung ansteigender vertikaler Höhe verformen. Die Darstellungseinheiten 150 können während des vertikalen Skalierungsmodus' Abtastungen für eine oder mehrere horizontale Linien in dem Abtastpuffer 162 erzeugen, d. h. horizontale Linien, die über die Grenzlinie L hinweg gehen. Gleichzeitig können die Abtastung-zu-Pixel-Berechnungseinheiten 170 Pixelwerte erzeugen, die in dem linkem physikalischen Array und dem rechten physikalischen Array angezeigt werden. Der Umfang der Abweichung in diesen horizontalen Linien bei der Anzeige in dem linkem physikalischen Array LPA und dem rechten physikalischen Array RPA bietet dem Benutzer eine Anzeige der Richtung, in der die vertikale Skalierungskorrektur fortgeführt werden sollte, um die Abweichung zu minimieren.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können Modi zum Durchführen von vertikaler Skalierung, horizontaler Skalierung, vertikaler Verschiebung, horizontaler Verschiebung und Rotation auf dem linken virtuellen Array LVA und/oder dem rechten virtuellen Array RVA bieten.
  • Wie oben angemerkt, betrachtet die vorliegende Erfindung verschiedene Ausführungsformen des Graphiksystems 112, wobei jede Kombination von Kalibrierung durch den Benutzer und/oder kontinuierlicher Kalibrierung von virtuellen Pixelarrays unterstützt werden kann. Darüber hinaus kann das Graphiksystems 112 dafür ausgelegt sein (oder nicht), das Herunterladen virtueller Pixelarray zu unterstützen, die extern berechnet/festgelegt wurden wie bei einer Kalibrierung durch den Hersteller.
  • Steuerung des Überstrahlens von Licht bzw Light Spillage Control
  • Im allgemeinen führt die Überlappung des linken physikalischen Array LPA und des rechten physikalischen Array RPA dazu, daß die Dichte physikalischer Pixel an der Grenzlinie L höher ist als anderswo. Daher ist die durchschnittliche Intensität des ganzheitlichen Bildes IMG entlang der Grenzlinie L höher. Daher kann der Benutzer sogar dann, wenn alle Verzerrungen einschließlich relativer Verzerrungen zwischen den physikalischen Arrays durch die oben diskutierten Techniken korrigiert wurden, eine helle Linie entlang der Schnittstelle der beiden Bilder wahrnehmen. Nach einer Ausführungsform der vorliegenden Erfindung ist eine physikalische Barriere PB senkrecht zum Schirm SCR und über der Grenzlinie L angeordnet, wie in den 37A & 37B abgebildet. 37A stellt eine frontale Ansicht der auf den Schirm SCR projizierten physikalischen Arrays dar. 37B stellt eine Draufsicht des Projektionssystems einschließlich der Projektionseinrichtungen PD1 und PD2 und des Schirms SCR dar. Strahlen, die von der linken Projektionseinrichtung PD1 ausgehen und auf der rechten Seite der Grenzlinie L auf den Schirm SCR auftreffen würden, können von der physikalische Barriere PB abgeblockt werden. Somit werden physikalische Pixel (oder Teile davon), die zu dem linken physikalischen Array LPA gehören und die rechte Seite der Grenzlinie L treffen würden, von der physikalische Barriere PB abgefangen und erscheinen nicht auf dem Schirm SCR, wie durch die kleinen, schattierten Kreise rechts von der Grenzlinie L angegeben. In ähnlicher Weise können Strahlen, die von der rechten Projektionseinrichtung PD2 ausgehen und auf der linken Seite der Grenzlinie L auf den Schirm SCR auftreffen würden, von der physikalische Barriere PB abgeblockt werden. Somit werden physikalische Pixel (oder Teile davon), die zu dem rechten physikalischen Array RPA gehören und die linke Seite der Grenzlinie L treffen würden, von der physikalische Barriere PB abgefangen und erscheinen nicht auf dem Schirm SCR, wie durch die kleinen, schattierten Dreiecke links von der Grenzlinie L angegeben. Die physikalische Barriere kann ein dünner Materialstreifen sein, der sich vom oberen Rand des Schirms bis zum unteren Rand des Schirms erstreckt. Die physikalische Barriere kann aus einem Material hergestellt sein, das Licht absorbiert. Wenn die physikalische Barriere PB angebracht ist, wird die Dichte von physikalischen Pixeln gesenkt, die in der Nähe der Grenzlinie L sichtbar sind (d. h. auf dem Schirm SCR erscheinen). Somit kann die helle Linie (oder der helle Streifen) entlang der Grenzlinie L durch die physikalische Barriere PB eliminiert (oder gemildert) werden. Die physikalische Barriere PB kann bei einem Aufprojektions- oder einem Rück- bzw. Durchprojektions-Szenario verwendet werden.
  • Man beachte, daß die physikalische Barrere PB verwendet werden kann, um das Überstrahlen von Licht in Situationen mit großer Überlappung zusätzlich zu den oben beschriebenen Situationen mit kleiner oder minimaler Überlappung verwendet werden kann. Wenn zum Beispiel die physikalischen Arrays an ihren Kanten ungleichmäßig oder in hohem Maße verzerrt sind, kann die Größe der Überlappung erhöht werden, so daß die ungleichmäßigen Kantenanteile über die Grenzlinie L überquellen und von der physikalischen Barriere PB kontrolliert werden. Im allgemeinen nimmt die Höhe der physikalischen Barriere PB, die zum Kontrollieren des Überstrahlens erforderlich ist, mit der horizontalen Breite der Überlappungsbereiche zu.
  • Hotspot- bzw. Lichtfleck-Korrektur
  • Nach einer Ausführungsform der vorliegenden Erfindung können die Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt sein, Hotspots bzw. Lichtflecke, oder allgemeiner Ungleichmäßigkeit der von einem Betrachter auf einem Schirm wahrgenommenen Lichtintensität, zu korrigieren.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können dafür ausgelegt sein, geometrische Information wie die Position/Orientierung der Projektionseinrichtungen PD1 und PD2, die Position und Orientierung des Schirms SCR bezogen auf die Projektionseinrichtungen und die Position des Betrachters (speziell des Auges oder der Augen des Betrachters) bezogen auf die Projektionseinrichtungen und/oder den Schirm SCR entgegenzunehmen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können dafür ausgelegt sein, basierend auf den geometrischen Informationen eine Intensitätsfunktion H(U,V) zu berechnen (oder zu approximieren), die die Intensität des an der Position des Betrachters (z. B. der Position des Kopfes) von den Punkten (U,V) auf dem Schirm SCR empfangenen Lichts darstellt. Ein lokales Maximum der Intensitätsfunktion H(U,V) zeigt eine Stelle an, an der der Betrachter einen Hotspot bzw. Lichtfleck wahrnimmt. Die Intensitätsfunktion H(U,V) ändert sich im allgemeinen, wenn sich der Betrachter bezüglich des Schirms SCR und/oder der Projektionseinrichtungen bewegt. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können Strahlverfolgungs- bzw. Ray-Tracing- und optische Modellierungs-Software beinhalten, die ausgeführt wird, um die Intensitätsfunktion H(U,V) zu erzeugen.
  • Nach einer alternativen Ausführungsform kann die Intensitätsfunktion aus den Meßwerten von einer Aufnahmeeinrichtung, die am Betrachter (z. B. am Kopf des Betrachters) angebracht ist, hergeleitet werden. Die Aufnahmeeinrichtung kann die empfangene Lichtintensität als eine Funktion des Eintreffwinkels messen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können auf den Meßdaten operieren, um eine Intensitätsfunktion H(U,V) basierend auf einem bekannten Abstand und einer bekannten Orientierung des Schirms SCR bezogen auf den Betrachter zu erzeugen.
  • Die Intensitätsfunktion H(U,V) kann in eine entsprechende Funktion H(X,Y) der virtuellen Schirmkoordinaten X und Y umgesetzt werden. Das absolute Minimum der Intensitätsfunktion H(X,Y) kann auf 1 normalisiert werden, d. h. Hn(X,Y)=H(X,Y)/Nmin. Von der normalisierten Intensitätsfunktion Hn(X,Y) kann der Reziprokwert gebildet werden, um eine Intensitätskorrekturfunktion J(X,Y) = 1/Hn(X,Y) zu erzeugen. Man beachte, daß die Intensitätskorrekturfunktion J(X,Y) ebenso berechnet werden kann, indem zuerst der Reziprokwert gebildet und danach das absolute Maximum des Reziprokwerts der Funktion auf Eins normalisiert wird.
  • In einer zweiten, alternativen Ausführungsform kann ein Betrachter einen Hotspot-Kalibrierungsmodus aufrufen. In dem Hotspot-Kalibrierungsmodus können die Darstellungseinrichtungen 150 ein erstes Markermuster (z. B: ein Fadenkreuzpaar) mit den Abtastungen in dem Abtastpuffer 162 wiedergeben. Das erste Markermuster kann an der Stelle (Xhs,Yhs) in dem 2-D-Darstellungsfeld 420 liegen. Darüber hinaus können die Darstellungseinrichtungen 150 das erste Markermuster als Reaktion auf horizontale und vertikale Justiereingaben, die vom Betrachter geliefert werden, innerhalb des 2-D-Darstellungsfeldes 420 bewegen. Als Reaktion auf horizontale Plus/Minus-Eingaben können die Darstellungseinrichtungen 150 das erste Markermuster in die Richtung ansteigender/absteigender X-Koordinate in dem 2-D-Darstellungsfeld 420 bewegen. Als Reaktion auf vertikale Plus-/Minus-Eingaben können die Darstellungseinrichtungen 150 das erste Markermuster in die Richtung ansteigender/absteigender Y-Koordinate in dem 2-D-Darstellungsfeld 420 bewegen. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 operieren auf den Abtastungen in dem Abtastpuffer 162 und erzeugen Pixelwerte für aufeinanderfolgende Einzelbilder der Videoausgabe, die an die Projektionseinrichtungen PD1 und PD2 übertragen werden. Somit erscheint das erste Markermuster auf dem Schirm SCR an einer bestimmten physikalischen Position. Der Betrachter schaut auf den Schirm SCR und verwendet die horizontalen und vertikalen Justiereingaben, um das erste Markermuster zu bewegen, bis es an einem ersten Lichtfleck auf dem Schirm SCR zentriert ist. Nach Kennzeichnung des Zentrums des ersten Hotspot kann der Betrachter weitere Eingaben liefern, die die Größe, Form und/oder Intensität des ersten Hotspot definieren. Zusätzliche Hotspots können in einer ähnlichen Weise identifiziert und charakterisiert werden. Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können auf den Daten zur Position (Xhs ,Yhs), Größe, Form und Intensität für einen oder mehrere Hotspots operieren und eine Intensitätsfunktion H(X,Y) erzeugen, um die Hotspotkonfiguration zu modellieren. Eine Intensitätskorrekturfunktion J(X,Y) kann aus der Intensitätsfunktion H(X,Y) wie oben beschrieben erzeugt werden.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170 können die Intensität der berechneten Pixelfarbwerte mittels der Intensitätskorrekturfunktion J(X,Y) herunter skalieren. Zum Beispiel kann die Intensität der Farbwerte, die an einem beliebigen virtuellen Pixelzentrum (X,Y) berechnet wurde, mit dem Korrekturwert J(X,Y) multipliziert werden. Somit erhält das entsprechende physikalischen Pixelzentrum (U,V), das die Intensität H(U,V) gehabt hätte, nun die Intensität H(U,V)J(U,V) = Hmin. Daher wird das Schirmbild, wie es von dem Betrachter wahrgenommen wird, gleichmäßig intensiv gemacht mit einer Intensität gleich der Minimalintensität vor der Korrektur.
  • Im Gegensatz zu den zum Edge-Blending der überlappenden Bilder durchgeführten Skalierungsoperationen kann die Intensitätskorrekturfunktion J(X,Y) für alle virtuellen Pixel in dem 2-D-Darstellungsfeld angewendet werden. Die Skalierungsfunktionen S1 und S2 werden separat (und parallel) auf virtuelle Pixel des linken virtuellen Array LVA bzw. des rechten virtuellen Array RVA angewendet. Die Intensitätskorrekturfunktion J(X,Y) kann jedoch mit jeder der Skalierungsfunktionen S1 und S2 kombiniert werden, so daß eine Multiplikation je Farbe und je Pixel anstelle von zwei durchgeführt werden kann. Somit kann die zusammengesetzte Skalierungsfunktion J1(X,Y)=J(X,Y)*S1(X,Y) verwendet werden, um die Pixelwerte zu skalieren, die für das linke virtuelle Array LVA bestimmt werden, und die zusammengesetzte Skalierungsfunktion J2(X,Y)=J(X,Y)*S2(X,Y) kann verwendet werden, um die Pixelwerte zu skalieren, die für das rechte virtuelle Array RVA bestimmt werden.
  • Das folgende Pseudocode-Fragment veranschaulicht eine mögliche Ausführungsform einer kombinierten Edge-Blending- und Hotspot-Korrektur, die von den Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 für die virtuellen Pixelzentren des linken virtuellen Array durchgeführt werden.
  • Figure 00980001
  • Jedes verzerrte virtuelle Pixelzentrum (Xd,Yd) kann durch Addieren des Vektorverschiebungswertes Δg1(I,J) zu einer zugehörigen Position (Xr,Yr) des rechteckigen Array erzeugt werden. Die roten, grünen und blauen Faltungsfunktionen werden aufgerufen, um die roten, grünen bzw. blauen Farbwerte an dem verzerrten Zentrum (Xd,Yd) zu berechnen. Sobald sie berechnet sind, werden die Farbwerte mit der zusammengesetzten Skalierungswert J1(Xd,Yd), ausgewertet an dem (oder interpoliert für das) verzerrte(n) Zentrum (Xd,Yd), multipliziert. Die skalierten Farbwerte werden durch einen Videokanal an die Projektionseinrichtung PD1 übermittelt.
  • Nach der bevorzugten Ausführungsform kann jede der Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 unabhängig voneinander betrieben werden und skalierte Farbwerte für einen entsprechenden vertikalen Streifen der Indexmenge S erzeugen. Daher kann das obenstehende Codefragment von jeder Abtastung-zu-Pixel-Berechnungseinheit 170-1 und 170-2 ausgeführt werden, wobei der horizontale Pixelindex I auf den entsprechenden vertikalen Streifen beschränkt ist.
  • Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können eine ähnliche Methodik (wie in dem obenstehenden Pseudocode-Fragment) verwenden, um für das rechte virtuellen Array RVA Farbwerte zu berechnen und die Farbwerte zu skalieren. Es wird jedoch die zweite zusammengesetzte Skalierungsfunktion J2(X,Y) anstelle der ersten zusammengesetzten Skalierungsfunktion J1(X,Y) verwendet.
  • Wenn nötig, können mehr als zwei Abtastung-zu-Pixel-Berechnungseinheiten der Projektionseinrichtung PD1 (oder der Projektionseinrichtung PD2) zugewiesen werden. Umgekehrt kann eine Abtastung-zu-Pixel-Berechnungseinheit der Projektionseinrichtung PD1 (oder der Projektionseinrichtung PD2) zugewiesen zu werden, wenn die Videobandbreite der Abtastung-zu-Pixel-Berechnungseinheit hoch genug ist, um der Projektionseinrichtung als Quelle zu dienen.
  • Man beachte, daß die zusammengesetzte Skalierungsfunktion J1(X,Y) auf einem Gitter von Positionen (Xk,Yk) in dem 2-D-Darstellungsfeld 420 berechnet werden kann. Diese zusammengesetzten Skalierungswert J1(Xk,Yk) an den Gitterpositionen können in einem Speicher gespeichert werden, auf den von den Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 zugegriffen werden kann. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-1 und 170-2 können die gespeicherten Werte verwenden, um zusammengesetzte Skalierungswerte für virtuelle Pixelzentren (X,Y) zu interpolieren, die auf dazwischen liegende Positionen fallen.
  • In ähnlicher Weise können die zusammengesetzten Skalierungswerte J2(X,Y) an einem zweiten Gitter von Positionen (Xj,Yj) in dem 2-D-Darstellungsfeld 420 berechnet werden. Die berechneten Werte können in einem zweiten Speicher gespeichert werden, auf den von den Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 zugegriffen werden kann. Die Abtastung-zu-Pixel-Berechnungseinheiten 170-3 und 170-4 können diese gespeicherten Werte verwenden, um zusammengesetzte Skalierungswerte J2(X,Y) für Positionen (X,Y) außerhalb des zweiten Gitters zu interpolieren.
  • Nach einer Ausführungsform ist das Graphiksystem 112 an eine Anzeigeeinrichtung (z. B. ein CRT-Anzeige) angeschlossen, die eine ungleichmäßige Helligkeit über ihre Schirmoberfläche hinweg aufweist. Die Intensitätskorrekturfunktion J(X,Y) kann dafür ausgelegt sein, die ungleichmäßige Helligkeit zu kompensieren. Ein typischer CRT-Schirm kann in der Schirmmitte doppelt so hell sein wie an den Schirmkanten. Daher kann die Intensitätskorrekturfunktion bei der Mitte des Schirms einen Minimalwert haben (der positiv und kleiner als eins ist), um die Helligkeit in der Mitte auf mit den Kanten konsistente Werte zu dämpfen.
  • Nach einer alternativen Ausführungsform kann die Intensitätskorrekturtunktion J(X,Y) auf Abtastwerte anstatt auf Pixelwerte angewendet werden. Nachdem ein Farbwert V für eine bei (X,Y) positionierte Abtastung in dem 2-D-Darstellungsfeld 420 berechnet wurde, kann die Graphikverarbeitungseinheit 90 den Farbwert mit der Intensitätskorrekturfunktion J(X,Y), ausgewertet an der Position der Abtastung, multiplizieren. Der skalierte Farbwert J(X,Y)*V kann in dem Abtastpuffer 162 gespeichert werden. In ähnlicher Weise können die beim Edge-Blending verwendeten Skalierungsfunktionen S1 und S2 auf Abtastwerte anstatt auf Pixelwerte angewendet werden 38 stellt eine Ausführungsform eines Verfahrens zum Durchführen der Hotspot-Korrektur gemäß der vorliegenden Erfindung dar. In Schritt 510 schätzt, berechnet und/oder mißt ein innerhalb des Computersystems 80 beinhalteter Hüllkurven- bzw. Envelope-Prozessor die von einem Betrachter wahrgenommene Intensitätsverteilung. Der Envelope-Prozessor kann von den Abtastung-zu-Pixel-Berechnungseinheiten 170 (oder irgendeiner Teilmenge davon, die auf einer oder mehreren Instanzen der Graphikkarte 116 enthalten ist) realisiert werden. Nach einer alternativen Ausführungsform kann der Envelope-Prozessor durch die Host-CPU 102 realisiert werden. In Schritt 515 berechnet der Envelope-Prozessor eine Intensitätskorrekturfunktion (oder -tabelle), die proportional dem Reziprokwert der wahrgenommenen Intensitätsverteilung ist.
  • In Schritt 520 bestimmt die generische Abtastung-zu-Pixel-Berechnungseinheit 170-K ein virtuelles Pixelzentrum (X,Y) in dem 2-D-Darstellungsfeld 420. In Schritt 525 berechnet die Abtastung-zu-Pixel-Berechnungseinheit 170-K einen Pixelwert oder Pixelwerte durch Faltung der Abtastungen, die in dem 2-D-Darstellungsfeld 420 an der Position (X,Y) liegen.
  • In Schritt 530 skaliert die generische Abtastung-zu-Pixel-Berechnungseinheit 170-K den Pixelwert oder die Pixelwerte mit einem Wert der Intensitätskorrekturtunktion, der für die Position (X,Y) in dem 2-D-Darstellungsfeld 420 passend ist. In Schritt 535 kann die generische Abtastung-zu-Pixel-Berechnungseinheit 170-K den oder die skalierten Pixelwerte) an eine Anzeigeeinrichtung (z. B. eine Projektionseinrichtung) ausgeben. Die generische Abtastung-zu-Pixel-Berechnungseinheit 170-K kann die Schritte 520 bis 535 wiederholt für (a) aufeinanderfolgende virtuelle Pixelzentren (X,Y) in einer Abfragelinie, (b) aufeinanderfolgende Abfragelinien in einem Einzelbild und (c) für aufeinanderfolgende Einzelbilder in einer Videosequenz durchführen.
  • Beliebige Anzahl von Projektionseinrichtungen
  • Die oben beschriebenen Ausführungsformen der vorliegenden Erfindung lassen sich in natürlicher Weise auf eine beliebige Anzahl von Projektionseinrichtungen PD1 bis PDI verallgemeinern. Zum Beispiel können vier Projektionseinrichtungen PD1 und PD4 in einer 2-mal-2-Konfiguration wie in 39 angedeutet konfiguriert werden. Die vier Projektionseinrichtungen können mit dem Graphiksystem 112 über vier Videosignalbusse verbunden sein. Jede Projektionseinrichtung strahlt einen Lichtkonus aus, der auf dem Schirm SCR als ein Rechteck (näherungsweise) auftrifft. Die vier Rechtecke können sich überlappen, wie von der 3 angedeutet.
  • Nach einer Ausführungsform der vorliegenden Erfindung ist eine Menge von 4N Abtastung-zu-Pixel-Berechnungseinheiten 170 dafür ausgelegt, Verzerrungskorrektur, Edge-Blending, Farbverzerrungskompensation (einschließlich Farbabweichungskompensation), Kantenvergleich und/oder Hotspot-Korrektur mittels der vier Projektionseinrichtungen PD1 bis PD4 durchzuführen. Eine Teilmenge von N Abtastung-zu-Pixel-Berechnungseinheiten 170 kann jeder Projektionseinrichtung spe ziel) zugewiesen sein. Die Menge von 4N Abtastung-zu-Pixel-Berechnungseinheiten 170 kann innerhalb mehrerer Graphikkarten von ähnlicher Konfiguration wie die Graphikkarte 16 beinhaltet sein.
  • Wie in 40 angedeutet kann eine erste Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 virtuelle Pixelzentren auswählen, die das virtuelle Array VA1 ausmachen, um Verzerrungen zu kompensieren, die dem von der Projektionseinrichtung PD1 erzeugten, physikalischen Array PA1 eigen sind. Eine zweite Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann virtuelle Pixelzentren auswählen, die das virtuelle Array VA2 ausmachen, um Verzerrungen zu kompensieren, die dem von der Projektionseinrichtung PD2 erzeugten, physikalischen Array PA2 eigen sind. Eine dritte Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann virtuelle Pixelzentren auswählen, die das virtuelle Array VA3 ausmachen, um Verzerrungen zu kompensieren, die dem von der Projektionseinrichtung PD3 erzeugten, physikalischen Array PA3 eigen sind. Eine vierte Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann virtuelle Pixelzentren auswählen, die das virtuelle Array VA4 ausmachen, um Verzerrungen zu kompensieren, die dem von der Projektionseinrichtung PD4 erzeugten, physikalischen Array PA4 eigen sind.
  • Die erste Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann Pixelwerte (z. B. Farbwerte) an jedem virtuellen Pixelzentrum des virtuelle Array VA1 berechnen. Die Pixelwerte treiben entsprechende physikalische Pixel des physikalischen Array PA1. Die zweite Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann Pixelwerte (z. B. Farbwerte) an jedem virtuellen Pixelzentrum des virtuelle Array VA2 berechnen. Die Pixelwerte treiben entsprechende physikalische Pixel des physikalischen Array PA2. Die dritte Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann Pixelwerte (z. B. Farbwerte) an jedem virtuellen Pixelzentrum des virtuelle Array VA3 berechnen. Die Pixelwerte treiben entsprechende physikalische Pixel des physikalischen Array PA3. Die vierte Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann Pixelwerte (z. B. Farbwerte) an jedem virtuellen Pixelzentrum des virtuellen Array VA4 berechnen. Die Pixelwerte treiben entsprechende physikalische Pixel des physikalischen Array PA4.
  • Alle vier Teilmengen der Abtastung-zu-Pixel-Berechnungseinheiten 170 können parallel betrieben werden. Man beachte, daß die virtuellen Arrays VA und die physikalischen Arrays RA in separaten Feldern dargestellt sind, um die Entsprechung zwischen den virtuellen Arrays VA in dem 2-D-Darstellungsfeld und den physikalischen Arrays PA auf dem Schirm SCR hervorzuheben.
  • Zusätzlich kann sich jede Teilmenge von N Abtastung-zu-Pixel-Berechnungseinheiten 170 den Aufwand für die Berechnung der Pixelwerte für das entsprechende virtuelle Array aufteilen. Zum Beispiel kann jede Abtastung-zu-Pixel-Berechnungseinheit 170-K der Teilmenge auf einer Spalte des virtuellen Array operieren, wie oben in vorangegangenen Ausführungsformen beschrieben.
  • Die Positionen der virtuellen Arrays VA in dem 2-D-Darstellungsfeld können ähnlich zu den Positionen der physikalischen Arrays PA auf dem Schirm SCR sein. Zum Beispiel kann das virtuelle Array VA1 in der oberen linken Ecke des 2-D-Darstellungsfeld 420 liegen, da das physikalischen Array PA1 die obere linke Ecke des Schirms SCR einnimmt. Ferner können die virtuellen Arrays VA wie oben diskutiert in ähnlicher Weise wie ihre entsprechenden physikalischen Arrays PA verzerrt sein, um die physikalischen Verzerrungen zu kompensieren. Außerdem können sich die virtuellen Arrays VA gegenseitig in derselben Weise überlappen, in der sich die physikalischen Arrays PA überlappen.
  • Die virtuellen Pixelzentren, die jedes virtuelle Array VA1 ausmachen, können basierend auf einer Abschätzung der entsprechenden Anzeigefunktion f1 ausgewählt werden. Die Anzeigefunktion kann basierend auf physikalischen Messungen mit einer Aufnahmeeinrichtung (z. B. einer Videokamera) wie oben diskutiert abgeschätzt werden.
  • Darüber hinaus können die virtuellen Pixelzentren, die das virtuelle Array VA1 ausmachen, aus Kalibrierungen bestimmt werden, wie oben bei den Ausführungsformen beschrieben, die sich mit zwei Projektionseinrichtungen befassen. Eine Reihe von Kalibrierungen kann individuell auf jedem virtuellen Array durchgeführt werden. Im Anschluß daran können zusätzliche Kalibrierungen durchgeführt werden, die die relative Verzerrung jedes virtuellen Array gegenüber seinen benachbarten virtuellen Arrays behandeln.
  • Farbverzerrung (z. B. Farbabweichung), die von jeder der Projektionseinrichtungen PD1 bis PD4 herbeigeführt wird, kann durch Verwenden unterschiedlicher Sätze virtueller Pixelzentren für jede Farbe kompensiert werden. Jede Teilmenge SSi der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann drei Arrays von virtuellen Pixelzentren auswählen, ein Array für jede Farbe. Die Positionen der virtuellen Pixelzentren können in jedem virtuellen Farbarray ausgewählt werden, um die von der Projektionseinrichtungen PDi auf der entsprechenden Farbe herbeigeführte Farbverzerrung zu kompensieren. Die Positionen der virtuellen Pixelzentren in jedem virtuellen Farbarray können basierend auf Kalibrierungen durch den Benutzer, physikalischen Meßwerten, etc. ausgewählt werden.
  • Die Skalierungsfunktionen S1, S2, S3 und S4 können verwendet werden, um Edge-Blending durchzuführen. Zum Beispiel kann die Skalierungsfunktion S1 ein Produkt einer vertikalen Skalierungsfunktion V1(Y) und einer horizontalen Skalierungsfunktion H1(X) sein. In der Notation von 41 kann die horizontale Skalierungsfunktion H1(X) gleich eins sein für X im Bereich von Null bis Xa und von eins zu Null übergeben, wenn X durch den horizontalen Überlappungsbereich ansteigt, d. h. von Xa bis Xb. Die vertikale Skalierungsfunktion V1(Y) kann gleich eins sein für Y-Werte zwischen Yb und Ymax und kann von eins nach Null übergehen, wenn Y durch den Überlappungsbereich von Yb nach Ya hin abfällt. Die Skalierungsfunktion S1(X,Y)=V1(Y)H1(X) ist gleich eins in dem nicht gemeinsamen Inneren des virtuellen Array VA1 und geht in den Überlappungsbereichen zu Null über. Jede der Skalierungsfunktionen Si kann ähnlich definiert sein. Somit kann die Summe der Skalierungsfunktionen in den Überlappungsbereichen gleich eins sein. In dem zentralen Überlappungsbereich (d. h. Xa<X<Xb Und Ya<Y<Yb) überlappen sich alle vier virtuellen Arrays VA und entsprechend addieren sich die vier Skalierungsfunktionen zu eins.
  • Jede Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 kann die entsprechende Skalierungsfunktion Si verwenden, um Pixelwerte (z. B. Farbwerte) vor der Übertragung an die entsprechende Projektionseinrichtung PDi zu skalieren.
  • Die Hotspot-Korrektur kann durch Multiplizieren der Farbwerte mit einer Intensitätskorrekturfunktion J(X,Y) durchgeführt werden. Wie oben bei den Ausführungsformen, die zwei Projektionseinrichtungen behandeln, diskutiert kann die Intensitätskorrekturfunktion J(X,Y) basierend auf physikali schen Meßwerten, geometrischer Modellierung, Benutzereingabe oder irgendeiner Kombination davon berechnet werden. Jede Teilmenge der Abtastung-zu-Pixel-Berechnungseinheiten 170 erzeugt Farbwerte an den virtuellen Pixelzentren (X,Y) des entsprechenden virtuellen Array VAi und kann jeden Farbwert mit der Intensitätskorrekturtunktion J(X,Y), ausgewertet (oder interpoliert) an dem entsprechenden virtuellen Pixelzentrum (X,Y), multiplizieren. Man beachte, daß die Intensitätskorrekturfunktion J(X,Y) mit jeder der Skalierungsfunktion Sj(X,Y) kombiniert werden kann, so daß wie oben beschrieben eine Multiplikation je Farbe und je Pixel anstelle von zwei Multiplikationen durchgeführt werden kann.
  • Kantenvergleich bzw. Edge Matching kann durchgeführt werden, indem die Projektionseinrichtungen PD1 bis PD4 so konfiguriert werden, daß sich ihre physikalischen Arrays PA minimal (oder gering) überlappen. Die oben diskutierten Kalibrierungen der virtuellen Pixelzentren können durchgeführt werden, um sicherzustellen, daß in den verzerrten physikalischen Arrays PA angezeigte Objekte unverzerrt und in der Größe konsistent sind, speziell in den Überlappungsbereichen. Die Kalibrierung der virtuellen Arrays VA1 bis VA4 kann bei der in 42 angedeuteten, nichtüberlappenden Anfangskonfiguration beginnen. Es kann eine vertikale physikalische Barriere verwendet werden, um den Lichtübertritt in X-Richtung zu steuern, und eine horizontale physikalische Barriere kann verwendet werden, um den Lichtübertritt in Y-Richtung zu steuern. Die vertikale physikalische Barriere kann bei X=Xc positioniert sein. Die horizontale physikalische Barriere kann bei Y=Yc positioniert sein.
  • Die verschiedenen hier dargestellten Ausführungsformen haben Farbe in Begriffen roter, grüner und blauer Komponenten diskutiert. Die Prinzipien der vorliegenden Erfindung können jedoch bei jedem beliebigen Farbmodell verwendet werden. Zum Beispiel werden andere Ausführungsformen in Betracht gezogen, bei denen Farben mittels mehr als drei spektralen Basisfunktionen ausgedrückt werden.
  • Viele andere Projektionskonfigurationen werden zur Verwendung mit dem Graphiksystem 112 in Betracht gezogen. Zum Beispiel kann ein Satz von K*L Projektionseinrichtungen so konfiguriert sein, daß sie ein K-auf-L-Muster von Rechtecken auf dem Schirm SCR erzeugen, K Rechtecke vertikal und L Rechtecke horizontal mit oder ohne Überlappung. Andere Geometrien werden ebenfalls in Betracht gezogen. Zum Beispiel können die Projektionseinrichtungen dafür ausgelegt sein, eine sechseckige Kachelung des Schirms SCR zu erzeugen. Jede Projektionseinrichtung kann ein sechseckiges Bild erzeugen.
  • Obwohl die obenstehenden Ausführungsformen in beträchtlicher Detaillierung beschrieben wurden, sind andere Versionen möglich. Zahlreiche Variationen und Abänderungen werden Fachleuten auf dem Gebiet offensichtlich, sobald die obenstehende Offenbarung voll gewürdigt wird. Es ist beabsichtigt, daß die folgenden Ansprüche so interpretiert werden, daß sie alle solche Variationen und Abänderungen umfassen. Man beachte, daß die hier verwendeten Überschriften nur organisatorischen Zwecken dienen und nicht dazu gedacht sind, die hier bereitgestellte Beschreibung oder die angefügten Ansprüche einzuschränken.

Claims (12)

  1. Grafiksystem (112) für das Glätten der Verteilung der Lichtenergie, die von einem Betrachter eines angezeigten Bildes wahrgenommen wird, das auf einer Anzeigefläche von einem oder mehreren Anzeigeeinrichtungen erzeugt wird, wobei das Grafiksystem aufweist: eine erste Einheit (170) zur Umrechnung von Abfrage in Pixel, die derart konfiguriert ist, daß sie erste Pixelwerte berechnet durch Auswählen und Filtern der Abfragen, daß sie die ersten Pixelwerte mit den ersten Intensitätsskalierungswerten skaliert, und daß sie die ersten skalierten Pixelwerte einer ersten Projektionseinrichtung bereitstellt, wobei die ersten Intensitätsskalierungswerte derart konfiguriert sind, daß sie eine Nicht-Gleichförmigkeit in der wahrgenommenen Verteilung der Lichtenergie korrigiert, und wobei die ersten Intensitätsskalierungswerte basierend auf einer Intensitätsfunktion berechnet werden, die die Nicht-Gleichförmigkeit in der empfangenen Verteilung der Lichtenergie modelliert.
  2. Grafiksystem nach Anspruch 1, wobei die ersten Intensitätsskalierungswerte basierend auf einer Intensitätskorrekturfunktion berechnet werden und wobei die Intensitätskorrekturfunktion aus dem Reziproken der Intensitätsfunktion erzeugt wird.
  3. Grafiksystem nach Anspruch 1 oder 2, wobei die ersten Intensitätsskalierungswerte zugewiesene numerische Werte sind, um jeden der ersten Pixelwerte abhängig von seiner Nähe in Bezug auf das Zentrum eines ersten Lichtfleck- bzw. Hot-Spot-Bereichs auf der Anzeigeoberfläche abzuschwächen.
  4. Grafiksystem nach einem vorherigen Anspruch, wobei die erste Einheit zur Umrechnung von Abfrage in Pixel derart ausgelegt ist, daß sie die ersten Intensitätsskalierungswerte basierend auf einem optischen Modell berechnet, das die Position des Betrachters, eine Position der ersten Projektionseinrichtung und eine Position der Anzeigeoberfläche berücksichtigt, und die eine erwartete Verteilung der Lichtenergie an der Position des Betrachters erzeugt.
  5. Grafiksystem nach einem vorherigen Anspruch, das aufweist: eine zweite Einheit zur Umrechnung von Abfrage in Pixel, die derart ausgelegt ist, daß sie zweite Pixelwerte durch Auswählen und Filtern der Abfragen berechnet, daß sie die zweiten Pixelwerte mit zweiten Intensitätsskalierungswerten skaliert und daß sie die zweiten skalierten Pixelwerte einer zweiten Projektionseinrichtung bereitstellt, wobei die ersten Intensitätsskalierungswerte und die zweiten Intensitätsskalierungswerte derart ausgelegt sind, daß sie die Nicht-Gleichförmigkeit in der wahrgenommenen Verteilung der Lichtenergie korrigieren.
  6. Grafiksystem nach einem vorherigen Anspruch, wobei die erste Einheit zur Umrechnung von Abfrage in Pixel derart ausgelegt ist, daß sie die ersten Pixelwerte durch Auswählen und Filtern der Abfragen bei einer ersten Mehrzahl von ersten virtuellen Pixelpositionen berechnet.
  7. Verfahren für das Erzeugen von Bildern auf einer oder mehreren Anzeigeeinrichtungen, wobei das Verfahren aufweist: Auswählen und Filtern von Abfragen, um erste Pixelwerte zu berechnen, Skalieren der ersten Pixelwerte mit ersten Intensitätsskalierungswerten und Bereitstellen der ersten skalierten Pixelwerte zu einer ersten Projektionseinrichtung, wobei die ersten Intensitätsskalierungswerte derart ausgelegt sind, daß sie eine Nicht-Gleichförmigkeit in der wahrgenommenen Verteilung der Lichtenergie korrigieren, und wobei die ersten Intensitätsskalierungswerte basierend auf einer Intensitätsfunktion berechnet werden, die die Nicht-Gleichförmigkeit in der empfangenen Verteilung der Lichtenergie modelliert.
  8. Verfahren nach Anspruch 7, wobei die ersten Intensitätsskalierungswerte basierend auf einer Intensitätskorrekturfunktion berechnet werden und wobei die Intensitätskorrekturtunktion aus dem Reziproken der Intensitätsfunktion berechnet wird.
  9. Verfahren nach Anspruch 7 oder 8, das weiterhin aufweist: Zuweisen numerischer Werte zu den ersten Intensitätsskalierungswerten, um jeden der ersten Pixelwerte abhängig von der Nähe in Bezug auf ein Zentrum einer ersten Hot-Spot-Region auf der Anzeigeoberfläche abzuschwächen.
  10. Verfahren nach einem der Ansprüche 7 bis 9, das weiterhin aufweist: Berechnen der ersten Intensitätsskalierungswerte basierend auf einem optischen Modell, das eine Position des Betrachters, eine Position der ersten Projektionseinrichtung und eine Position der Anzeigeoberfläche beinhaltet, wobei das Verfahren eine erwartete Verteilung der Lichtenergie an der Position des Betrachters erzeugt.
  11. Verfahren nach einem der Ansprüche 7 bis 10, das weiterhin aufweist: Auswählen und Filtern der Abfragen, um zweite Pixelwerte zu berechnen, Skalieren der zweiten Pixelwerte mit zweiten Intensitätsskalierungswerten und Bereitstellen der zweiten skalierten Pixelwerte zu einer zweiten Projektionseinrtchtung, wobei die ersten Intensitätsskalierungswerte und die zweiten Intensitätsskalierungswerte derart ausgelegt sind, daß sie die Nicht-Gleichförmigkeit in der wahrgenommenen Verteilung der Lichtenergie korrigieren.
  12. Verfahren nach einem der Ansprüche 7 bis 11, wobei das Auswählen und Filtern das Auswählen und Filtern der Abfragen bei einer ersten Mehrzahl von ersten virtuellen Pixelpositionen aufweist, um die ersten Pixelwerte zu berechnen.
DE60103535T 2000-03-17 2001-03-16 Graphisches system Expired - Fee Related DE60103535T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US19071100P 2000-03-17 2000-03-17
US190711P 2000-03-17
US09/751,375 US6771272B2 (en) 2000-03-17 2000-12-29 Graphics system having a super-sampled sample buffer with hot spot correction
US751375 2000-12-29
PCT/US2001/008586 WO2001071665A2 (en) 2000-03-17 2001-03-16 A graphics system having a super-sampled sample buffer with hot spot correction, edge blending, edge matching, distortion correction, and chromatic distortion compensation

Publications (2)

Publication Number Publication Date
DE60103535D1 DE60103535D1 (de) 2004-07-01
DE60103535T2 true DE60103535T2 (de) 2005-06-09

Family

ID=26886366

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60103535T Expired - Fee Related DE60103535T2 (de) 2000-03-17 2001-03-16 Graphisches system

Country Status (6)

Country Link
US (1) US6771272B2 (de)
EP (1) EP1295254B1 (de)
AT (1) ATE268030T1 (de)
AU (1) AU4752301A (de)
DE (1) DE60103535T2 (de)
WO (1) WO2001071665A2 (de)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618115B1 (en) * 1999-11-19 2003-09-09 Semiconductor Energy Laboratory Co., Ltd. Defective pixel compensation system and display device using the system
US7002589B2 (en) * 2000-03-17 2006-02-21 Sun Microsystems, Inc. Blending the edges of multiple overlapping screen images
US7101988B2 (en) * 2000-10-12 2006-09-05 Marical, Inc. Polyvalent cation-sensing receptor in Atlantic salmon
US7339609B2 (en) * 2001-08-10 2008-03-04 Sony Corporation System and method for enhancing real-time data feeds
US7091989B2 (en) * 2001-08-10 2006-08-15 Sony Corporation System and method for data assisted chroma-keying
US20030030658A1 (en) * 2001-08-10 2003-02-13 Simon Gibbs System and method for mixed reality broadcast
US7173672B2 (en) * 2001-08-10 2007-02-06 Sony Corporation System and method for transitioning between real images and virtual images
AU2003210440A1 (en) 2002-01-04 2003-07-24 Neurok Llc Three-dimensional image projection employing retro-reflective screens
US20030187820A1 (en) 2002-03-29 2003-10-02 Michael Kohut Media management system and process
US7019713B2 (en) * 2002-10-30 2006-03-28 The University Of Chicago Methods and measurement engine for aligning multi-projector display systems
US7106352B2 (en) * 2003-03-03 2006-09-12 Sun Microsystems, Inc. Automatic gain control, brightness compression, and super-intensity samples
JP3690402B2 (ja) * 2003-03-28 2005-08-31 セイコーエプソン株式会社 画像処理システム、プロジェクタ、プログラム、情報記憶媒体および画像処理方法
US7483031B2 (en) 2003-04-17 2009-01-27 Nvidia Corporation Method for synchronizing graphics processing units
US7336277B1 (en) * 2003-04-17 2008-02-26 Nvidia Corporation Per-pixel output luminosity compensation
US7015920B2 (en) * 2003-04-30 2006-03-21 International Business Machines Corporation Method and system for providing useable images on a high resolution display when a 2D graphics window is utilized with a 3D graphics window
US7701489B1 (en) 2003-05-27 2010-04-20 Apple Inc. Method and apparatus for color correction
EP1503333A1 (de) * 2003-08-01 2005-02-02 Sony International (Europe) GmbH Korrektur uneinheitlicher Bildwiedergabe
US7369699B1 (en) * 2003-08-29 2008-05-06 Apple Inc. Methods and apparatuses for restoring color and enhancing electronic images
US7266255B1 (en) * 2003-09-26 2007-09-04 Sun Microsystems, Inc. Distributed multi-sample convolution
JP4400200B2 (ja) * 2003-12-10 2010-01-20 セイコーエプソン株式会社 画像表示方法、画像表示装置および画像表示プログラム
US7292207B1 (en) 2004-08-27 2007-11-06 Sun Microsystems, Inc. Computing blending functions for the tiling of overlapped video projectors
US8462384B2 (en) * 2004-09-29 2013-06-11 Apple Inc. Methods and apparatuses for aesthetically enhanced image conversion
JP4501847B2 (ja) * 2005-02-23 2010-07-14 セイコーエプソン株式会社 画像表示装置、画像表示装置の補正値作成方法、及び画像表示装置の補正値作成プログラム、及びこのプログラムが記録された記録媒体
FR2884992B1 (fr) * 2005-04-22 2007-06-08 Thales Sa Procede de synchronisation et d'asservissement dans les systemes de communications sans fil
WO2006116536A1 (en) 2005-04-26 2006-11-02 Imax Corporation Electronic projection systems and methods
US20070024764A1 (en) * 2005-07-29 2007-02-01 Optoma Technology, Inc. Methods and systems that compensate for distortion introduced by anamorphic lenses in a video projector
US7717574B1 (en) 2005-09-30 2010-05-18 Obscura Digital, Inc. Method for simplifying the imaging of objects with non-Lambertian surfaces
EP1969579B1 (de) * 2005-12-06 2013-11-06 Dolby Laboratories Licensing Corporation Modulare elektronische displays
US7905606B2 (en) * 2006-07-11 2011-03-15 Xerox Corporation System and method for automatically modifying an image prior to projection
US7742060B2 (en) * 2006-09-22 2010-06-22 Autodesk, Inc. Sampling methods suited for graphics hardware acceleration
US8297758B2 (en) * 2007-02-20 2012-10-30 Daegu Gyeongbuk Institute Of Science And Technology Multimedia player displaying 2 projection images
US7675524B1 (en) * 2007-05-17 2010-03-09 Adobe Systems, Incorporated Image processing using enclosed block convolution
US8788967B2 (en) * 2008-04-10 2014-07-22 Perceptive Pixel, Inc. Methods of interfacing with multi-input devices and multi-input display systems employing interfacing techniques
US8209628B1 (en) 2008-04-11 2012-06-26 Perceptive Pixel, Inc. Pressure-sensitive manipulation of displayed objects
WO2010036375A1 (en) * 2008-09-29 2010-04-01 Kessler Jonathan A Interactive communication system and method
US20110012908A1 (en) * 2009-07-20 2011-01-20 Sharp Laboratories Of America, Inc. System for compensation of differential aging mura of displays
US8130229B2 (en) 2009-11-17 2012-03-06 Analog Devices, Inc. Methods and apparatus for image processing at pixel rate
WO2012173851A2 (en) 2011-06-13 2012-12-20 Dolby Laboratories Licensing Corporation High directivity screens
CA2847999C (en) * 2011-10-20 2019-11-12 Imax Corporation Invisible or low perceptibility of image alignment in dual projection systems
CN103365481B (zh) * 2012-03-27 2016-07-06 中强光电股份有限公司 投影系统及其自动校正方法
US8817044B2 (en) * 2012-06-12 2014-08-26 Christie Digital Systems Usa, Inc. Method, system and apparatus for blending overlapping images
TWI501021B (zh) * 2012-11-26 2015-09-21 Everest Display Inc 互動式投影系統及其光標的座標校正方法
CN104282014A (zh) * 2013-07-13 2015-01-14 哈尔滨点石仿真科技有限公司 基于nurbs曲面的多通道几何校正与边缘融合方法
FR3019338B1 (fr) * 2014-03-26 2017-07-14 Sylvain David Systeme et un procede de traitement de donnees
WO2015172236A1 (en) 2014-05-15 2015-11-19 Mtt Innovation Incorporated Optimizing drive schemes for multiple projector systems
TWI552606B (zh) * 2014-07-11 2016-10-01 Image processing device and its projection image fusion method
JP2016109934A (ja) * 2014-12-08 2016-06-20 キヤノン株式会社 画像表示システム及びその制御方法、並びに、プログラム
JP6659129B2 (ja) * 2015-12-03 2020-03-04 キヤノン株式会社 投影装置及びその制御方法、投影システム
US10303414B2 (en) * 2016-07-15 2019-05-28 Panasonic Intellectual Property Management Co., Ltd. Device, system, and method of controlling projection image
US10750204B2 (en) * 2016-09-16 2020-08-18 Rozo Systems System and method for processing data
CN109104596B (zh) 2017-06-21 2021-02-26 中强光电股份有限公司 投影系统以及显示影像的校正方法
CN109682398B (zh) * 2018-12-25 2022-07-08 中国科学院长春光学精密机械与物理研究所 立体测绘相机整机内方位元素定标方法、装置及系统
JP2021144108A (ja) * 2020-03-11 2021-09-24 セイコーエプソン株式会社 タイリング用スクリーン、及びマルチプロジェクションシステム
KR20220072380A (ko) * 2020-11-25 2022-06-02 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11915399B2 (en) * 2020-12-31 2024-02-27 Changzhou Raytech Optronics Co., Ltd. Method and device for correcting lateral chromatic aberration, storage medium, and computer equipment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731865A (en) 1986-03-27 1988-03-15 General Electric Company Digital image correction
US5933132A (en) 1989-11-07 1999-08-03 Proxima Corporation Method and apparatus for calibrating geometrically an optical computer input system
FR2660090B1 (fr) 1990-03-23 1994-07-29 Thomson Csf Dispositif de visualisation par projection a boucle de contre-reaction pour la correction de l'ensemble des defauts de l'image projetee.
US5465121A (en) 1993-03-31 1995-11-07 International Business Machines Corporation Method and system for compensating for image distortion caused by off-axis image projection
US6466206B1 (en) 1998-02-17 2002-10-15 Sun Microsystems, Inc. Graphics system with programmable real-time alpha key generation
US6456339B1 (en) * 1998-07-31 2002-09-24 Massachusetts Institute Of Technology Super-resolution display

Also Published As

Publication number Publication date
US6771272B2 (en) 2004-08-03
ATE268030T1 (de) 2004-06-15
WO2001071665A2 (en) 2001-09-27
WO2001071665A3 (en) 2003-01-16
US20020070944A1 (en) 2002-06-13
AU4752301A (en) 2001-10-03
DE60103535D1 (de) 2004-07-01
EP1295254B1 (de) 2004-05-26
EP1295254A2 (de) 2003-03-26

Similar Documents

Publication Publication Date Title
DE60103535T2 (de) Graphisches system
DE60100452T2 (de) Dynamische einstellung von muster zum pixel filterung in antwort auf benutzereingang und/oder sensoreingang
DE60000686T2 (de) Graphisches system mit super-abgetastetem musterpuffer mit erzeugung von ausgangpixeln unter verwendung von selektiven adjustierung der filterung zur artifaktverminderung
US6940529B2 (en) Graphics system configured to perform distortion correction
DE69909437T2 (de) Graphisches system mit superabtasten mit veränderlicher auflösung
US6924816B2 (en) Compensating for the chromatic distortion of displayed images
US7079157B2 (en) Matching the edges of multiple overlapping screen images
US7002589B2 (en) Blending the edges of multiple overlapping screen images
DE69835408T2 (de) Verfahren und Vorrichtung zur Komposition von Bildfarben unter Speicherbeschränkungen
DE112014002469B4 (de) System und Verfahren zur Erzeugung von Bildern für eine augennaheLichtfeldanzeige
DE69932059T2 (de) Trilineare texturfilterung mit optimiertem speicherzugriff
DE69833531T2 (de) Vollszenen-Antialiasing mit verbesserten Überabtastungstechniken
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
EP1882234B1 (de) Subpixelwiedergabe mehrerer grundfarben mit metamerer filterung
EP1227444B1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE69735488T2 (de) Verfahren und vorrichtung zum ausrichten von bildern
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE69636599T2 (de) Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild
DE69917799T2 (de) Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE69722139T2 (de) Dreidimensionale abbildung von bildtexturen
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE4416935C2 (de) Verfahren zum Erzeugen räumlich wirkender Bilder
EP2052550A2 (de) Bildverarbeitungsvorrichtung für farb-bilddaten und verfahren zur bildverarbeitung von farb-bilddaten
DE202017104934U1 (de) Mehrstufiges Kameraträgersystem für die stereoskope Bildaufnahme

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee