DE102012002442B3 - Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter - Google Patents

Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter Download PDF

Info

Publication number
DE102012002442B3
DE102012002442B3 DE201210002442 DE102012002442A DE102012002442B3 DE 102012002442 B3 DE102012002442 B3 DE 102012002442B3 DE 201210002442 DE201210002442 DE 201210002442 DE 102012002442 A DE102012002442 A DE 102012002442A DE 102012002442 B3 DE102012002442 B3 DE 102012002442B3
Authority
DE
Germany
Prior art keywords
output
input
views
image
calibration
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.)
Active
Application number
DE201210002442
Other languages
German (de)
Inventor
Marcel Heinz
Guido Brunnett
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.)
3DLNSIGHT GMBH, DE
Original Assignee
3DInsight GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 3DInsight GmbH filed Critical 3DInsight GmbH
Priority to DE201210002442 priority Critical patent/DE102012002442B3/en
Application granted granted Critical
Publication of DE102012002442B3 publication Critical patent/DE102012002442B3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/327Calibration thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/363Image reproducers using image projection screens
    • 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/3182Colour adjustment, e.g. white balance, shading or gamut

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

The method involves carrying out production of output signals by decoding input signals for separation of views and combining an application of calibration parameters with a coding of the views in a required output-format. An input pixel actually influencing the output signals is generally passed through calibrating sub steps. Computation of a geometric distortion and determination of pixel-specific, position-dependent and color independent-calibration parameter are performed for an output pixel position even when the views influence the output signals at a position. An independent claim is also included for a device for controlling stereoscopic or multiview-capable multisegment-projection systems.

Description

Technisches GebietTechnical area

Die Erfindung betrifft ein Verfahren zur Aufbereitung von Bildsignalen für Mehrsegment-Projektionsanlagen, die aus monoskopischen oder stereoskopischen Projektoren aufgebaut sind, sowie eine Vorrichtung zur Ansteuerung von derartigen Mehrsegment-Projektionsanlagen mit einem oder mehreren Videosignalen, die Bildinhalte von ein oder mehreren Ansichten beinhalten.The invention relates to a method for processing image signals for multi-segment projection systems, which are constructed from monoscopic or stereoscopic projectors, as well as a device for controlling such multi-segment projection systems with one or more video signals, the image content of one or more views.

Stand der TechnikState of the art

Stereoskopische Sichtsysteme werden heute in vielen Bereichen eingesetzt. Es existiert eine Vielzahl unterschiedlicher Verfahren, um einem menschlichen Betrachter unterschiedliche Bildinhalte für das linke und rechte Auge zuzuführen. Bei der stereoskopischen Bilderzeugung kann zwischen Systemen unterschieden werden, die die Einzelbilder eines stereoskopischen Bildpaares getrennt verarbeiten (zum Beispiel zwei separate Projektoren, die auf die gleiche Fläche projizieren), sowie Systemen, die stereoskopische Bildpaare zusammengefasst entgegennehmen und über nur eine Bilderzeugungseinheit verfügen, die für beide Einzelbilder benutzt wird (wie zum Beispiel Shutter-Verfahren, Anaglyphbrillen).Stereoscopic vision systems are used today in many areas. There are a variety of different methods for providing different image contents to the human eye viewers for the left and right eyes. In stereoscopic imaging, a distinction can be made between systems which process the individual images of a stereoscopic image pair separately (for example two separate projectors projecting onto the same surface) and systems which collect stereoscopic image pairs in summary and have only one imaging unit which is suitable for both frames are used (such as shutter methods, anaglyph glasses).

Für viele Einsatzzwecke wie zum Beispiel Produktentwicklung, Virtuelles Prototyping, Fabrikplanung oder Produktpräsentationen ist eine sehr große Bildfläche bei gleichzeitig hoher Bildauflösung erforderlich. Einzelne Displaysysteme erfüllen derartige Anforderungen nicht, daher finden segmentierte Anzeigesysteme Verwendung, die separate Anzeigesysteme derartig kombinieren, dass ein homogener Bildeindruck über die Gesamtfläche entsteht. Eine weit verbreitete Ausprägung dieser Technik sind Mehrsegment-Projektionsanlagen, bei denen mehrere Projektoren auf einzelne Teilbereiche einer gemeinsamen Projektionsfläche projizieren, wobei sich die Bilder benachbarter Projektoren teilweise überlappen können. Bei diesen Systemen ergibt sich die Notwendigkeit einer Kalibrierung zum Ausgleich von:

  • – Verzerrungen, die von der Projektor-Optik verursacht werden ([1])
  • – Verzerrungen durch nicht exakt senkrechte Projektion (Trapezentzerrung, [2])
  • – Verzerrungen durch nichtebene Projektionsflächen
  • – Helligkeits- und Farbunterschieden innerhalb eines Segments ([3])
  • – Helligkeits- und Farbunterschieden zwischen den Segmenten ([4], [5])
  • – Helligkeitsunterschieden in den Überlappungsbereichen (Edge-Blending, [4])
For many purposes such as product development, virtual prototyping, factory planning or product presentations, a very large image area is required with high image resolution. Individual display systems do not meet such requirements, so use segmented display systems that combine separate display systems such that a homogeneous image impression over the total area arises. A widespread feature of this technique are multi-segment projection systems in which project several projectors on individual portions of a common projection screen, the images of adjacent projectors can overlap partially. In these systems, the need for calibration to compensate for:
  • - Distortions caused by the projector optics ([1])
  • - Distortions due to not exactly vertical projection (trapezoidal strain, [2])
  • - Distortions by non-planar projection surfaces
  • - Brightness and color differences within a segment ([3])
  • - Brightness and color differences between the segments ([4], [5])
  • - Brightness differences in the overlapping areas (edge blending, [4])

Zur Kalibrierung derartiger Anlagen werden unterschiedliche Ansätze verfolgt. Die Bandbreite reicht dabei von vollständig manuellen Verfahren, bei denen die Korrekturparameter von Hand eingestellt werden müssen, über interaktive und halbautomatische Verfahren bis hin zu vollautomatischen kamerabasierten Systemen. Dabei werden spezielle Kalibriermuster auf der Anlage dargestellt und mittels einer Kamera der Ist-Zustand erfasst. Das Kalibriersystem berechnet daraus die zur Überführung des Ist-Zustands in den Soll-Zustands benötigten Kalibrierparameter. Diese können auf Bildinhalte angewendet werden und bewirken eine geometrische Verzerrung (Warping [1], [2], [5], [7], [4], [8], [9]) der Bilddaten sowie eine Anpassung der Farbwerte ([4], [5]). Werden die so aufbereiteten Bilddaten mit den Projektoren wiedergegeben, so ergibt sich ein homogener Bildeindruck auf der Projektionsfläche.For calibration of such systems different approaches are pursued. The spectrum ranges from fully manual procedures, where the correction parameters have to be set manually, through interactive and semi-automatic procedures to fully automated camera-based systems. Special calibration patterns are displayed on the system and the actual status is recorded by means of a camera. From this, the calibration system calculates the calibration parameters required for transferring the actual state into the desired state. These can be applied to image content and cause a geometric distortion (warping [1], [2], [5], [7], [4], [8], [9]) of the image data as well as an adjustment of the color values ([ 4], [5]). If the image data processed in this way are reproduced with the projectors, the result is a homogeneous image impression on the projection surface.

Stereoskopische Mehrsegmentprojektionsanlagen lassen sich auf zwei Arten realisieren:

  • a) Benutzung der doppelten Anzahl (monoskopischer) von Projektoren, so dass jeder Punkt der Bildfläche von jeweils mindestens zwei Projektoren ausgeleuchtet wird, in Kombination mit einem geeigneten Filtersystem zur Trennung der Bildpaare (zum Beispiel Polarisationsfilter) oder
  • b) Einsatz von stereoskopischen Projektoren.
Stereoscopic multi-segment projection systems can be realized in two ways:
  • a) using twice the number (monoscopic) of projectors, so that each point of the image area is illuminated by at least two projectors, in combination with a suitable filter system for the separation of image pairs (for example polarization filter) or
  • b) Use of stereoscopic projectors.

Die Variante a) hat den Vorteil, dass sie direkt in die bisherige Bildaufbereitungskette integriert werden kann, weil jedes Segment nur – genau wie im monoskopischen Fall – einen Ausschnitt eines Einzelbildes berücksichtigen muss. Allerdings sind solche Systeme prinzipiell aufwendig und teuer, neben der Verdopplung der Projektorkosten ergibt sich auch ein größerer Aufwand zur mechanischen Befestigung der Projektoren. Eventuell notwendige Off-Axis-Projektionen sowie der Einsatz von Lens-Shift führen zu stärkeren Verzerrungen. Weitere Nachteile sind der erhöhter Platzbedarf und Stromverbrauch. Wünschenswert ist daher der Einsatz stereoskopischer Projektoren in Mehrsegment-Projektionsanlagen.The variant a) has the advantage that it can be integrated directly into the previous image processing chain, because each segment only - just as in the monoscopic case - must take into account a section of a single image. However, such systems are in principle complex and expensive, in addition to doubling the cost of the projector also results in a greater effort for mechanical attachment of the projectors. Any necessary off-axis projections and the use of lens shift lead to stronger distortions. Other disadvantages are the increased space requirements and power consumption. It is therefore desirable to use stereoscopic projectors in multi-segment projection systems.

Es gibt derzeit keinen allgemein akzeptierten Standard zur Zuführung stereoskopischer Bildinhalte an solche Projektoren, sondern eine Reihe unterschiedlicher Stereoformate, die beschreiben, wie die zwei Einzelbilder innerhalb des Gesamtbildes kodiert werden müssen:

  • – nebeneinander oder untereinander mit jeweils halbierter Auflösung pro Ansicht
  • – zeilenweise oder spaltenweise verschachtelt
  • – Schachbrett-Muster (insbesondere bei DLP-Projektoren verbreitet)
  • – Sequentielle Zuführung mit doppelter Frequenz (typisch 120 Hz)
There is currently no universally accepted standard for delivering stereoscopic image content to such projectors, but a number of different stereo formats that describe how the two frames must be encoded within the overall image:
  • - side by side or below each other, each with halved resolution per view
  • - nested line by line or column by column
  • - Checkerboard pattern (especially popular with DLP projectors)
  • - Sequential feeding with double frequency (typically 120 Hz)

Auf Grund dieser Tatsache besteht die Notwendigkeit, Stereoformate ineinander umwandeln zu können. Es existieren einzelne Verfahren und Geräte, die derartige Konvertierungen vornehmen können ([10], [6]).Because of this, there is a need to be able to interconvert stereomata. There are individual methods and devices that can perform such conversions ([10], [6]).

Das Verfahren und die Vorrichtung nach [6] erlaubt die Konvertierung der Bildinhalte in Echtzeit und kann dabei mit beliebig vielen Ein- und Ausgabesignalen arbeiten, wobei die Bilddaten dabei auch weiterverarbeitet werden können, um z. B. die Bilder zu skalieren oder die stereoskopische Ausrichtung anzupassen, also die Positionierung der linken und rechten Ansicht zueinander zu verändern. Das Verfahren bzw. die Vorrichtung genügt jedoch nicht zur Ansteuerung von stereoskopischen Mehrsegment-Projektionsanlagen, da dabei keine Anwendung eines Kalibrierverfahrens erfolgt, sondern löst dabei nur das Teilproblem der Ansteuerung der Projektoren im jeweiligen stereoskopischen Format, oder beim Einsatz mehrerer monoskopischer Projektoren, die auf die gleiche Bildfläche projizieren, auch die getrennte Zuführung der Ansichten und gegeben falls den Ausgleich von moderaten Lageunterschieden durch die Anpassung der stereoskopischen Ausrichtung sowie Keystone-Korrektur. Alle darüber hinaus auftretenden Bildverzerrungen (z. B. durch die Projektionsoptiken oder nicht perfekt planare Projektionsflächen) werden dabei vernachlässigt.The method and the device according to [6] allows the conversion of the image content in real time and can work with any number of input and output signals, the image data can also be further processed to z. As to scale the images or adjust the stereoscopic orientation, so to change the positioning of the left and right view to each other. However, the method or the device is not sufficient for driving stereoscopic multi-segment projection systems, since it does not apply a calibration method, but solves only the sub-problem of controlling the projectors in the respective stereoscopic format, or when using several monoscopic projectors on the projecting the same image area, including the separate feeding of the views and, if appropriate, the compensation of moderate positional differences by adjusting the stereoscopic alignment and keystone correction. All image distortions occurring beyond this (eg due to the projection optics or not perfectly planar projection surfaces) are thereby neglected.

Problembeschreibung/Nachteile der bisherigen VerfahrenProblem description / disadvantages of the previous methods

Beim Einsatz stereoskopischer Projektoren innerhalb von Mehrsegment-Projektionsanlagen stellt sich das Problem, dass die Kalibrierparameter für jede Bildansicht individuell angewendet werden müssen. Es ist im Allgemeinen nicht einfach möglich, ein für einen derartigen Projektor aufbereitetes Eingabesignal direkt zu entzerren, da die Stereo-Kodierung durch die geometrische Verzerrung zerstört werden würde.When using stereoscopic projectors within multi-segment projection systems, the problem arises that the calibration parameters must be used individually for each image view. It is generally not easily possible to directly equalize an input signal prepared for such a projector, since the stereo coding would be destroyed by the geometric distortion.

Die naheliegende Vorgehensweise zur Lösung dieses Problems besteht in der Dekodierung der Eingabesignale in die einzelnen Bildansichten, Anwendung der Kalibrierungsparameter auf die Einzelansichten und erneuter Kodierung der Ansichten in ein für den Projektor geeignetes Format. Das Verfahren aus [6] arbeitet nach diesem Prinzip: die Bildinhalte werden in zwei separate Kanäle für die linke und rechte Ansicht getrennt und die Bildverarbeitung separat auf diesen Kanälen durchgeführt, die Kombination des Verfahrens aus [6] mit einem Kalibrierverfahren stellt dann nur eine Erweiterung der bereits vorhandenen Bildverarbeitungsschritte dar.The obvious approach to solving this problem is decoding the input signals into the individual image views, applying the calibration parameters to the individual views, and re-encoding the views into a format suitable for the projector. The method from [6] works according to this principle: the image contents are separated into two separate channels for the left and right view and the image processing is carried out separately on these channels, the combination of the method from [6] with a calibration method then only provides an extension the already existing image processing steps.

Der Hauptnachteil dieser Vorgehensweise liegt in dem hohen Berechnungsaufwand und den daraus resultierenden Kosten für Rechneranlagen. Insbesondere existieren moderne Grafikkarten mit sechs Ausgängen. Damit lässt sich zum Beispiel eine Mehrsegment-Projektionsanlage aus 3×2 stereoskopischen Projektoren mit nur einem einzigen Rechner betreiben, falls es gelingt, die notwendige Datenverarbeitung effizient mittels dieser Grafikkarte durchzuführen.The main disadvantage of this approach lies in the high computational effort and the resulting costs for computer systems. In particular, there are modern graphics cards with six outputs. This allows, for example, a multi-segment projection system of 3 × 2 stereoscopic projectors operate with only a single computer, if it is possible to perform the necessary data processing efficiently using this graphics card.

Die naive Herangehensweise führt zu einem erhöhten Verarbeitungsaufwand, da

  • a) die Kalibrierungsverarbeitung für alle Pixel aller Ansichten durchgeführt wird, unabhängig davon, welche Ansichten auf Grund des benötigten Ausgabeformates tatsächlich in den jeweiligen Ausgabepixeln sichtbar sind, und
  • b) das Kalibrierverfahren immer unabhängig für alle Ansichten durchgeführt wird, und dabei für alle Ansichten bei einer gegebenen Ausgabeposition identische Kalibrierschritte mehrfach durchgeführt werden.
The naive approach leads to an increased processing effort, since
  • a) the calibration processing is performed for all pixels of all views, regardless of which views are actually visible in the respective output pixels due to the required output format, and
  • b) the calibration procedure is always performed independently for all views, and identical calibration steps are carried out repeatedly for all views at a given output position.

Zielstellunggoal

Ziel der vorliegenden Erfindung ist es, stereoskopische Mehrsegment-Projektionsanlagen bestehend aus monoskopischen oder stereoskopischen Projektoren anzusteuern, wobei die Eingangssignale beliebige monoskopische, stereoskopische oder Multiview-Bildinhalte repräsentieren. Dabei sollen neben monoskopischen Inhalten auch stereoskopische und Multiview-Bilddaten in unterschiedlichen Stereo- bzw. Multiview-Formaten sowohl bei der Bildentgegennahme als auch der Bildausgabe unterstützt und eine automatische Konvertierung der Formate vorgenommen werden.The aim of the present invention is to control stereoscopic multi-segment projection systems consisting of monoscopic or stereoscopic projectors, wherein the input signals represent any monoscopic, stereoscopic or multiview image contents. In addition to monoscopic content, stereoscopic and multiview image data in different stereo or multiview formats should be supported in the image reception as well as the image output and an automatic conversion of the formats should be carried out.

Aufgabe der Erfindung ist es, die Kalibrierparameter in Echtzeit auf diese Bildinhalte anzuwenden. Um eine hohe Gesamtauflösung verarbeiten zu können, ist die Effizienz der Bildverarbeitung von entscheidender Bedeutung. Daher ist es erforderlich, die Stereokonvertierung und Anwendung der Kalibrierungsdaten nicht als getrennte Schritte durchzuführen (indem die stereoskopischen Einzelbilder zunächst getrennt, die Kalibrierung nacheinander auf die Einzelbilder des Bildpaares angewendet und schließlich wieder zum Ausgabebild im gewünschten Format kombiniert werden), sondern es ist die Zielstellung der Erfindung, die Erzeugung der stereoskopischen Bildausgabe direkt mit der Anwendung der Kalibrierung derart zu kombinieren, so dass nur die tatsächlich im Ausgabebild sichtbaren Pixel bei der Anwendung der Kalibrierung berücksichtigt werden müssen und Teilschritte bei der Anwendung der Kalibrierung, die für beide Einzelbilder identisch sind, auch nur einmalig ausgeführt werden. The object of the invention is to apply the calibration parameters in real time to these image contents. In order to be able to process a high overall resolution, the efficiency of the image processing is of crucial importance. Therefore, it is not necessary to perform the stereo conversion and application of the calibration data as separate steps (by first separating the stereoscopic images, applying the calibration sequentially to the frames of the image pair, and finally combining them back to the output image in the desired format), but it is the objective the invention of combining the generation of the stereoscopic image output directly with the application of the calibration such that only the pixels actually visible in the output image must be taken into account in the application of the calibration and sub-steps in the application of the calibration which are identical for both individual images, also be executed only once.

Neben stereoskopischen Sichtsystemen gibt es bereits erste Multiview-Systeme, bei denen mehr als zwei Ansichten einer Szene benutzt werden. Dies ermöglicht einerseits die Realisierung von Mehrbenutzer-Stereosystemen, bei denen jedem Nutzer seine individuelle stereoskopische Ansicht präsentiert wird. Andererseits wird dies für autostereoskopische Sichtsysteme verwendet. Solche Systeme werden in Zukunft weitere Verbreitung finden. Im Hinblick darauf ist es ein weiteres Ziel der hier vorliegenden Erfindung, auch mehr als die für herkömmliche Stereoskopie benötigten zwei Ansichten zu verarbeiten.In addition to stereoscopic vision systems, there are already the first multiview systems that use more than two views of a scene. On the one hand, this enables the realization of multi-user stereo systems in which each user is presented with their individual stereoscopic view. On the other hand, this is used for autostereoscopic vision systems. Such systems will become more widespread in the future. In view of this, it is a further object of the present invention to also process more than the two views required for conventional stereoscopy.

Beschreibung der ErfindungDescription of the invention

Zur Lösung der zuvor genannten Aufgaben wird mit der Erfindung ein Verfahren zur Aufbereitung von monoskopischen, stereoskopischen und Multiview-Bildinhalten zur Ansteuerung von Mehrsegment-Projektionsanlagen vorgeschlagen. Die Erfindung beinhaltet weiterhin eine Vorrichtung bestehend aus

  • – einem oder mehreren Rechnersystemen mit je – einer oder mehreren Grafikkarten mit je einem oder mehreren Ausgängen – einem oder mehreren Videograbbern mit je einem oder mehreren Eingängen
In order to achieve the aforementioned objects, the invention proposes a method for processing monoscopic, stereoscopic and multiview image contents for the control of multi-segment projection systems. The invention further includes a device consisting of
  • - One or more computer systems, each with - one or more graphics cards, each with one or more outputs - one or more video grabbers, each with one or more inputs

Die Gesamtzahl der Grafikkartenausgänge im System wird im Folgenden mit A bezeichnet, die Gesamtzahl der Video-Eingänge mit E. Um eine Mehrsegment-Projektionsanlage mit P separaten Projektoren zu betreiben, muss die Anlage so konzipiert werden, dass A >= P gilt. Die Anzahl der Eingänge E muss dabei >= 1 sein.The total number of video card outputs in the system is denoted by A below, the total number of video inputs by E. To operate a multi-segment projection system with P separate projectors, the system must be designed so that A> = P. The number of inputs E must be> = 1.

Liste der Formelzeichen:List of formula symbols:

  • A Anzahl der AusgängeA number of outputs
  • Ba Bildbreite (Anzahl Pixel) von Ausgang aB a Image width (number of pixels) of output a
  • C = (Cx, Cy) normierte Koordinaten im Eingabe-Koordinatensystem, (0, 0) entspricht linker unterer Ecke und (1, 1) rechter oberer EckeC = (C x , C y ) normalized coordinates in the input coordinate system, (0, 0) corresponds to left lower corner and (1, 1) right upper corner
  • De Eingabe-Bildformat von Eingang eD e input image format of input e
  • E Anzahl der EingängeE number of inputs
  • F = (Fr, Fg, Fb) RGB-Farbsample aus einem EingabebildpufferF = (F r , F g , F b ) RGB color sample from an input image buffer
  • F' = (F'r, F'g, F'b) korrigiertes RGB-Farbsample nach EingabeformatdekodierungF '= (F' r , F ' g , F' b ) corrected RGB color sample after input format decoding
  • Ga Ausgabe-Bildformat von Ausgang aG a Output image format of output a
  • Ha Bildhöhe (Anzahl Pixel) von Ausgang aH a Image height (number of pixels) of output a
  • K = {K0, ... Kk-1} Liste von Intermediate-Ansichten eines spezifischen AusgabepixelsK = {K 0 , ... K k-1 } List of intermediate views of a specific output pixel
  • L = {L0, ..., Ll-1} Liste der aktiven Intermediate-AnsichtenL = {L 0 , ..., L l-1 } List of active intermediate views
  • Me Bildbreite (Anzahl Pixel) von Eingang eM e image width (number of pixels) of input e
  • M'e Breite eines Eingabepixels im normierten KoordinatensystemM ' e Width of an input pixel in the normalized coordinate system
  • Ne Bildhöhe (Anzahl Pixel) von Eingang eN e Image height (number of pixels) of input e
  • N'e Höhe eines Eingabepixels im normierten KoordinatensystemN ' e height of an input pixel in the normalized coordinate system
  • O = (Ox, Oy) Pixelkoordinaten im Ausgabe-Koordinatensystem, (0, 0) entspricht linker unterer Ecke und (Ba-1, Ha-1) rechter oberer EckeO = (O x , O y ) pixel coordinates in the output coordinate system, (0, 0) corresponds to left lower corner and (B a-1 , H a-1 ) right upper corner
  • P Anzahl der ProjektorenP number of projectors
  • Q Größe je Eingabe-RingpufferQ size per input ring buffer
  • Re Anzahl benutzter Einträge im Eingabe-Ringpuffer von Eingang eR e Number of used entries in the input ring buffer of input e
  • S = {S0, ..., Ss-1} Liste von Eingängen in einer SynchronisationsgruppeS = {S 0 , ..., S s-1 } List of inputs in a synchronization group
  • T = (Tx, Ty) Koordinaten im Geräte-Koordinatensystem des ProjektorsT = (T x , T y ) Coordinates in the device coordinate system of the projector
  • U = (Ux, Uy) normierte Koordinaten im Intermediate-Koordinatensystem (0, 0) entspricht linker unterer Ecke und (1, 1) rechter oberer EckeU = (U x , U y ) normalized coordinates in the intermediate coordinate system (0, 0) corresponds left lower corner and (1, 1) right upper corner
  • Vi i-te Ansicht eines Ein- oder AusgabebildpuffersV i i th view of an input or output image buffer
  • Figure 00070001
    Liste der Intermediate-Ansichten, die Ausgang a zugeordnet sind
    Figure 00070001
    List of intermediate views associated with output a
  • Zj = (Zj,r, Zj,g, Zj,b) RGB-Farbsample aus der der Ausgabe-Ansicht j zugeordneten Intermediate-Ansicht des Intermediate-Bildpuffers Zj = ( Zj, r , Zj , g , Zj , b ) RGB color sample from the intermediate view's intermediate view associated with the output view j
  • Z kombiniertes Farbsample aller Ansichten, beschrieben als Vektor von Farbkomponenten, nicht notwendigerweise dreidimensionalZ combined color sample of all views described as a vector of color components, not necessarily three-dimensional
  • Z' Ausgabefarbsample nach Korrektur durch das KalibrierverfahrenZ 'output color sample after correction by the calibration method
  • a Index eines Ausgangs, 0 <= a <= A – 1a Index of an output, 0 <= a <= A - 1
  • e Index eines Eingangs, 0 <= e <= E – 1e index of an input, 0 <= e <= E - 1
  • i Intermediate-Ansichti Intermediate view
  • j Index einer Ein- oder Ausgabeansichtj Index of an input or output view
  • k Anzahl der Intermediate-Ansichten eines spezifischen Ausgabepixelsk Number of intermediate views of a specific output pixel
  • l Anzahl der aktiven Intermediate-Ansichtenl Number of active intermediate views
  • pi Pixel im Intermediate-Bildpuffer von Ansicht ip i pixels in the intermediate image buffer of view i
  • pa Pixel im Ausgabe-Bildpuffer von Ansicht ap a pixel in the output image buffer of view a
  • s Anzahl der Eingänge in einer Synchronisationsgruppe Ss Number of inputs in a synchronization group S
  • ve Anzahl der Eingabe-Ansichten von Eingang ev e Number of input views of input e
  • wa Anzahl der Ausgabe-Ansichten von Ausgang aw a Number of output views of output a
  • α pixelspezifische Kalibrierparameter (abhängig von den Gerätekoordinaten, aber unabhängig von der Pixelfarbe)α pixel-specific calibration parameters (depending on the device coordinates, but independent of the pixel color)
  • βa Allgemeine Kalibrierparameter für Projektor an Ausgang aβ a General calibration parameters for projector at output a
  • δ0, δ1 Parameter für Eingabeformatdekodierung anaglyphδ 0 , δ 1 Parameter for input format decoding anaglyph
  • μ0, μ1, μm Parameter für Ausgabeformatkodierung anaglyphμ 0 , μ 1 , μ m Parameters for output format coding anaglyph
  • εe Parameter für die Multiview-Eingabeformatdekodierungε e Parameter for multiview input format decoding
  • εa Parameter für die Multiview-Ausgabeformatkodierungε a Parameter for the multiview output format coding

Verwendete mathematische FunktionenUsed mathematical functions

Bei der Beschreibung des Verfahrens wird auf mathematische Funktionen Bezug genommen, die hier definiert werden:

  • x mod y: x modulo y: Rest der Ganzahldivision x/y
  • floor(x): x gerundet in Richtung der nächstkleineren Ganzzahl
  • dot(x, y) = xx·yx + xy·yy + xz·yz: Skalarprodukt der dreidimensionalen Vektoren
  • clamp(x, a, b) = a, falls x < a x, falls a <= x <= b b, falls x > b
  • nearest(x, y) = (floor(x·y – 0.5) + 0.5)/y
  • factor(x, y) = (x·y – 0.5) – floor(x·y – 0.5)
  • pixel(x, e): Farbwert (RGB-Vektor) des Pixels des Eingabe-Bildpuffers von Eingang e, dessen Pixelzentrum den Koordinaten x = (xx, xy) am nächsten liegt, wobei das Koordinatensystem derart normiert ist, dass (0, 0) der linken unteren Bildecke und (1, 1) der rechten oberen Bildecke entsprechen. Die tatsächlichen Pixelkoordinaten x' zum Zugriff auf den Bildpuffer mit der gegebenen Auflösung Me·Ne entsprechen dabei x' = (clamp(floor(xx·Me), 0, Me – 1), clamp(floor(xy·Ne), 0, Ne – 1).
bilinear(f, x1, x2, x3, x4, e) = (1 – fy)·((1 – fx)·pixel(x1, e) + fx·pixel(x2, e)) + fy·((1 – fx)·pixel(x3, e) + fx·pixel(x4, e)) In describing the method, reference is made to mathematical functions defined herein:
  • x mod y: x modulo y: remainder of the integer division x / y
  • floor (x): x rounded in the direction of the next smallest integer
  • dot (x, y) = x x · y x + x y · y y + x z · y z : scalar product of the three-dimensional vectors
  • clamp (x, a, b) = a, if x <ax, if a <= x <= bb, if x> b
  • nearest (x, y) = (floor (x · y - 0.5) + 0.5) / y
  • factor (x, y) = (x · y - 0.5) - floor (x · y - 0.5)
  • pixel (x, e): color value (RGB vector) of the pixel of the input image buffer of input e whose pixel center is closest to the coordinates x = (x x , x y ), the coordinate system being normalized such that (0 , 0) correspond to the lower left corner and (1, 1) to the upper right corner. The actual pixel coordinates x 'for accessing the image buffer with the given resolution M e · N e in this case correspond to x' = (clamp (floor (x x * M e ), 0, M e - 1), clamp (floor (x y · N e ), 0, N e - 1).
bilinear (f, x 1 , x 2 , x 3 , x 4 , e) = (1-f y ) * ((1-f x ) * pixel (x 1 , e) + f x * pixel (x 2 , e)) + f y * ((1-f x ) * pixel (x 3 , e) + f x * pixel (x 4 , e))

Das hier beschriebene Verfahren nimmt Bezug auf ein Kalibrierverfahren zur Aufbereitung von Bildinhalten hinsichtlich mindestens eines der folgenden Aspekte:

  • – Platzierung und Ausrichtung der Projektoren. Jedem Projektor muss nur der Teilausschnitt zugeführt werden, der seinem Anteil auf der gemeinsamen Projektionsfläche entspricht
  • – Ausgleich geometrischer Verzerrungen der Projektors
  • – Ausgleich von Helligkeitsunterschieden in den Überlappungsbereichen mehrerer Projektoren
  • – Angleichen von Farben und Helligkeiten zwischen den Projektoren
  • – Angleichen von Farb- und Helligkeitsunterschieden innerhalb des projizierten Bildes eines einzelnen Projektors.
The method described herein makes reference to a calibration method for rendering image content regarding at least one of the following aspects:
  • - Placement and orientation of the projectors. Each projector must be fed only the partial section, which corresponds to its share on the common projection screen
  • - Compensation of geometric distortions of the projector
  • - Compensation of brightness differences in the overlapping areas of several projectors
  • - Matching colors and brightness between the projectors
  • - Matching color and brightness differences within the projected image of a single projector.

Damit dies mit dem hier vorgestellten Verfahren kombiniert werden kann, wird vorausgesetzt, dass sich die notwendige Bildaufbereitung gemäß des Kalibrierverfahrens mit den drei im Folgenden definierten mathematischen Funktionen beschreiben lässt:

  • warpa(x, βa): geometrische Anpassung: Berechnet 2D-Koordinaten im Intermediate-Koordinatensystem, welches dem Ausgabepixel mit den Gerätekoordinaten x = (xx, xy) vom Projektor am Ausgang a entspricht. Damit lässt sich sowohl der grundsätzliche Bildausschnitt als auch ein Image-Warping zur Entzerrung der Projektorbilder realisieren.
  • parama(x, βa): Berechnung positionsabhängiger aber farbunabhängiger Parameter: Berechnet einen nicht näher spezifizierten Parametervektor mit Kalibrierungsparametern in Abhängigkeit des Ausgabepixels mit den Gerätekoordinaten x = (xx, xy) vom Projektor am Ausgang a. Dieser Parametervektor ist nur abhängig von der Pixelposition, nicht aber der später zu setzenden Pixelfarbe oder der gewählten stereoskopischen Ansicht. Als Beispiel eines solchen Parameters kann der Blend-Faktor für Soft-Edge-Blending genannt werden.
  • colora(Z, α, βa): Anpassung der Farben: Berechnet den Farbvektor, der die korrigierte Projektor-Eingangsfarbe für den Projektor am Ausgang a und die gewünschte Farbe Z beschreibt, dabei kann auf die Parameter α = parama(x) zurückgegriffen werden, die getrennt von dieser Funktion berechnet wurden.
So that this can be combined with the method presented here, it is assumed that the necessary image processing can be described according to the calibration method with the three mathematical functions defined below:
  • warp a (x, β a ): geometric fit: Computes 2D coordinates in the intermediate coordinate system, which corresponds to the output pixel with the device coordinates x = (x x , x y ) from the projector at output a. Thus, both the basic image detail and an image warping for equalization of the projector images can be realized.
  • param a (x, β a ): Calculation of position-dependent but color-independent parameters: Calculates an unspecified parameter vector with calibration parameters depending on the output pixel with the device coordinates x = (x x , x y ) from the projector at output a. This parameter vector is only dependent on the pixel position, but not the pixel color to be set later or the selected stereoscopic view. As an example of such a parameter, the blend factor for soft edge blending may be mentioned.
  • color a (Z, α, β a ): Adjusting the colors: Computes the color vector that describes the corrected projector input color for the projector at the output a and the desired color Z, while allowing the parameters α = param a (x) be recalculated separately from this function.

Alle drei Funktionen verfügen über den Parameter βa, der alle spezifischen Parameter des gewählten Kalibrierverfahrens für den Projektor am Ausgang a repräsentiert.All three functions have the parameter β a , which represents all specific parameters of the selected calibration method for the projector at the output a.

Das Verfahren zur Aufbereitung der Bildinhalte wird in 3 Phasen durchgeführt:The process for processing the image content is carried out in 3 phases:

Phase 1: Einrichtung der AnlagePhase 1: Installation of the system

a): Konfiguration der Anlagea): Configuration of the system

  • – Jedem Eingang e der E Eingänge werden manuell zugeordnet: – ein Eingabe-Format De, und im Falle eines Multiview-Eingabeformates auch ein Parameter εe. Das Eingabe-Format legt die Anzahl der Eingabe-Ansichten ve fest, wobei jeder der ve Eingabe-Ansichten eine beliebige Anzahl von Intermediate-Ansichten zugeordnet wird. Auf die möglichen Eingabe-Formate wird im Abschnitt „Konvertierung der Eingabeformate” näher eingegangen. – Parameterwerte δ0,e und δ1,e, falls anaglyphes Eingabeformat gewählt wurde. – die Position und Orientierung des Segments im normalisierten Intermediate-Koordinatensystem in Form von vier 2D-Punktkoordinaten zur Beschreibung eines Rechtecks. – eine Synchronisationsgruppe, gekennzeichnet durch eine Ganzzahl. Alle Eingänge, denen die gleiche Zahl zugeordnet wird, bilden eine Synchronisationsgruppe.- Each input e of the E inputs are assigned manually: - an input format D e , and in the case of a multiview input format also a parameter ε e . The input format specifies the number of input views v e, each of e v input views any number of intermediate views is assigned. The possible input formats are described in more detail in the section "Conversion of input formats". - Parameter values δ 0, e and δ 1, e , if anaglyphes input format was selected. The position and orientation of the segment in the normalized intermediate coordinate system in the form of four 2D point coordinates describing a rectangle. A synchronization group characterized by an integer. All inputs to which the same number is assigned form a synchronization group.
  • – Für jeden Ausgang a der A Ausgänge: – Ermittlung der Kalibrierungsparameter βa für den an diesem Ausgang a betriebenen Projektor. – Manuelle Zuordnung eines Ausgabe-Formates Ga, das für diesen Projektor geeignet ist. Im Multiview-Fall muss zusätzlich der Parameter εa festgelegt werden. Das Ausgabe-Format bestimmt die Anzahl der Ausgabe-Ansichten wa, wobei jedem der wa Ausgabe-Ansichten genau eine Intermediate-Ansicht zugeordnet wird. Es entsteht die Liste
    Figure 00110001
    Auf die möglichen Ausgabe-Formate wird im Abschnitt „Konvertierung der Ausgabeformate” näher eingegangen. – Festlegung der Pixelauflösung: Ba Breite, Ha Höhe – Festlegung der Parameterwerte μ0, μ1 und μm, falls ein anaglyphes Ausgabeformat gewählt wurde.
    - For each output a of the A outputs: - Determination of the calibration parameters β a for the projector operated at this output a. - Manual assignment of an output format G a , which is suitable for this projector. In the multiview case, the parameter ε a must be set additionally. The output format determines the number of output views w a , with each of the w a output views being assigned exactly one intermediate view. The list is created
    Figure 00110001
    The possible output formats are described in more detail in the section "Conversion of output formats". - Definition of the pixel resolution: B a width, H a height - Definition of the parameter values μ 0 , μ 1 and μ m if an anaglyphic output format has been selected.
  • – Konfiguration weiterer Parameter – Festlegung der Pixelauflösung des Intermediate-Framebuffers. – Festlegung der Ringpuffer-Größe Q- Configuration of further parameters - Determine the pixel resolution of the intermediate frame buffer. - Determination of the ring buffer size Q

Die Phase 1a) wird nach dem Aufbau der Anlage durchgeführt, sowie bei jeder Änderung der Zuspielsituation oder der Konfiguration der Anlage (Anzahl und Art der Projektoren). Anzumerken ist, dass derartige Konfigurationsdaten in Rechneranlagen abgespeichert und wieder abgerufen werden können, so dass ein schnelles Umschalten zwischen vorher definierten Zuspielsituationen realisierbar ist.Phase 1a) is carried out after the system has been set up, as well as whenever the playback situation or configuration of the system (number and type of projectors) has changed. It should be noted that such configuration data can be stored in computer systems and retrieved again, so that a fast switching between previously defined feed situations can be realized.

Die Ermittlung der eigentlichen Kalibrierparameter βa bleibt hiervon unberührt. Der Ablauf und die Zeitpunkte der Kalibrierung hängen direkt vom eingesetzten Kalibrierverfahren ab, haben aber keinen weiteren Einfluss auf die Konfiguration dieses Verfahrens. The determination of the actual calibration parameters β a remains unaffected. The procedure and times of calibration depend directly on the calibration procedure used, but have no further influence on the configuration of this method.

b) Initialisierung des Intermediate-Bildpuffersb) Initialization of the intermediate image buffer

  • – Ermittlung der tatsächlich benötigten Intermediate-Ansichten durch Auflistung aller zugeordneten Intermediate-Ansichten über alle A Ausgänge, wobei Duplikate entfernt werden, es entsteht eine Liste L = {L0, ..., Ll-1}, die die l tatsächlich relevanten (weil an mindestens einem Projektor ausgegebenen) Intermediate-Ansichten enthält.- Determination of the actually required intermediate views by listing all assigned intermediate views on all A outputs, with duplicates removed, resulting in a list L = {L 0 , ..., L l-1 }, which are the l actually relevant (because there are at least one projector output) intermediate views.
  • – Erzeugung eines Intermediate-Bildpuffers, der l getrennte Farbpuffer enthält. Die Auflösung jedes Puffers ist identisch und wird in Phase 1a) festgelegt.Generation of an intermediate image buffer containing 1 separate color buffers. The resolution of each buffer is identical and is set in phase 1a).

Die Phase 1b) muss beim Starten des Verfahrens ausgeführt sowie nach jeder Konfigurationsänderung (Phase 1a)) erneut durchlaufen werden.Phase 1b) must be executed when starting the procedure and run again after every configuration change (phase 1a)).

c) Initialisierung der Eingabe-Bildpufferc) initialization of the input image buffer

  • – Für jeden Eingang werden ein Ringpuffer aus Bildpuffern sowie ein zusätzlicher Eingabe-Bildpuffer angelegt. Die Pixelauflösung aller Puffer eines Eingangs ist jeweils identisch und entspricht der Auflösung des am Eingang anliegenden Signals aus Me Spalten und Ne Zeilen.- A ring buffer consisting of image buffers and an additional input image buffer are created for each input. The pixel resolution of all buffers of an input is identical in each case and corresponds to the resolution of the signal present at the input from M e columns and N e rows.
  • – Für jeden Eingang e wird die Anzahl der benutzten Puffer im Ringpuffer Re mit 0 initialisiert.- For each input e, the number of used buffers in the ring buffer R e is initialized with 0.

Die Phase 1c) wird beim Starten des Verfahrens ausgeführt und bei einer Konfigurationsänderung oder einer Änderung der Auflösung eines Eingabesignals erneut durchlaufen.Phase 1c) is executed at the start of the process and iterated during a configuration change or a change in the resolution of an input signal.

d) Initialisierung der Ausgabe-Bildpufferd) Initialization of the output image buffers

  • – Für jeden Ausgang wird ein Ausgabe-Bildpuffer mit Ba Spalten und Ha Zeilen angelegt. Falls Ga = stereo gewählt wurde, so wird ein stereoskopischer Ausgabepuffer angelegt, der aus einer Ansicht für das linke und einer Ansicht für das rechte Auge, jeweils in der vollen Auflösung, besteht. Falls Ga = mv gewählt wurde, so wird ein Multivew-Ausgabepuffer bestehend aus εa Ansichten, jeweils in der vollen Auflösung, angelegt.- For each output an output frame buffer with B a columns and H a rows is created. If G a = stereo has been selected, then a stereoscopic output buffer is created consisting of a view for the left and a view for the right eye, each in full resolution. If G a = mv has been selected, a multivew output buffer consisting of ε a views, each in full resolution, is created.

Die Phase 1d) wird beim Starten der des Verfahrens ausgeführt und bei einer Konfigurationsänderung erneut durchlaufen.Phase 1d) is executed at the start of the process and run through again during a configuration change.

Phase 2: Verfahren zur Aufbereitung der BildinhaltePhase 2: Process for the preparation of the image content

In Phase 2 werden die Bilddaten der Eingangssignale verarbeitet und die Intermediate-Bildpuffer entsprechend aktualisiert. zeigt ein Programmablaufplan zur Durchführung dieser Phase.In Phase 2, the image data of the input signals are processed and the intermediate image buffers updated accordingly. shows a program flow chart for performing this phase.

a) Aktualisierung der Eingabesignalea) Updating the input signals

  • – Sobald neue Bildinformationen an einem Eingang e' vorliegen, wird überprüft, ob Re' < Q gilt. Ist dies der Fall, so werden Bildinformationen in den nächsten freien Slot des Ringpuffers kopiert und Re' um 1 inkrementiert, andernfalls wird der Bildinhalt verworfen (Frame Dropping)- As soon as new image information is present at an input e ', it is checked whether R e' <Q holds. If this is the case, image information is copied to the next free slot of the ring buffer and R e ' is incremented by 1, otherwise the image content is discarded (frame dropping).
  • – Sei S = {S0, ..., Ss-1} die Synchronisationsgruppe, zu der Eingang e' gehört. Falls für alle s Eingänge e der Synchronisationsgruppe S Re > 0 gilt, so muss der Bildinhalt dieser Synchronisationsgruppe wie in Phase 2b) beschrieben weiterverarbeitet werden, andernfalls ist die Synchronisationsgruppe nicht komplett und es ist keine Aktualisierung der Eingabe-Bildpuffer erforderlich und Phase 2a) beginnt erneut.Let S = {S 0 , ..., S s-1 } be the synchronization group to which input e 'belongs. If the synchronization group SR e > 0 applies to all s inputs e, then the image content of this synchronization group must be further processed as described in phase 2b), otherwise the synchronization group is not complete and no update of the input image buffer is required and phase 2a) begins again.

b) Aktualisierung der Eingabe-Bildpuffer b) Updating the input image buffers

  • – Iteration über alle Eingänge e der Synchronisationsgruppe S. Kopieren des ältesten noch nicht verarbeiteten Bildinhaltes aus dem Eingang e zugeordneten Ringpuffer in den Eingang e zugeordneten Eingabe-Bildpuffer und dekrementieren von Re um 1. Damit enthalten die Eingabe-Bildpuffer den neuen Bildinhalt der Synchronisationsgruppe zum Synchronisationszeitpunkt und die Ringpuffer haben wieder Platz für mindestens einen weiteren Frame.- iteration over all inputs e of the synchronization group S. Copy of the oldest unprocessed image content from input buffer e associated ring buffer in the input e associated input image buffer and decrement of R e by 1. Thus, the input image buffer contain the new image content of the synchronization group at the synchronization time and the ring buffers have room for at least one more frame.
  • – Da in Phase 2b) mindestens ein Eingabe-Bildpuffer aktualisiert wurde, muss der gesamte Intermediate-Puffer aktualisiert werden. Daher erfolgt für jeden Eingang e aller E Eingänge (nicht nur der Synchronisationsgruppe) das in Phase 2c) beschriebene Verfahren.Since at least one input image buffer has been updated in phase 2b), the entire intermediate buffer must be updated. Therefore, for each input e of all E inputs (not just the synchronization group), the method described in phase 2c) is performed.

c) Verarbeitung der Eingabeinhaltec) processing the input contents

  • – Iteration über alle dem Eingang zugeordneten Eingabe-Ansichten j.- iteration over all input views assigned to the input j.
  • – Iteration über alle dem Eingange zugeordneten Intermediate-Ansichten aus der Konfiguration in Phase 1a). Sei i die jeweilige Intermediate-Ansicht. Falls Ansicht i nicht in der Liste der zugeordneten Ansichten L vorhanden ist, werden die Bildinformationen dieser Ansicht nicht weiter betrachtet, andernfalls:- iteration over all intermediate views associated with the input from the configuration in phase 1a). Let i be the respective intermediate view. If view i is not present in the list of associated views L, the image information of that view will not be considered, otherwise:
  • – Iteration über alle Pixel pi im Intermediate-Koordinatensystem, die vom dem Eingang e zugeordneten Rechteck eingeschlossen werden (Rasterisierung) und Durchführung der im Folgenden als Phase 2d) beschriebenen Verarbeitung.- iteration over all the pixels p i in the intermediate coordinate system which are enclosed by the input e assigned rectangular (rasterization), and performing the processing described in the following as phase 2d).

d) Verarbeitung der Eingabe-Pixeld) Processing of input pixels

  • – Berechnung der Pixelkoordinaten C im Eingangskoordinatensystem unter Benutzung einer Abbildung, die die Intermediate-Koordinaten des Vierecks auf die Pixelkoordinaten der Eckpunkte des Eingangsbildes abbildet. Dies führt (optional) zu Skalierung, Rotation und Spiegelung der Bildinformationen.Calculation of the pixel coordinates C in the input coordinate system using an image that maps the intermediate coordinates of the quadrilateral to the pixel coordinates of the vertices of the input image. This leads (optionally) to scaling, rotation and mirroring of the image information.
  • – Bestimmung des Farbwerts
    Figure 00140001
    durch Sampling des Eingabebildpuffers entsprechend Schritt 1 des Konvertierungsverfahrens für Eingabedaten in Abhängigkeit des Eingabeformates De, der aktuellen Ansicht j sowie der berechneten Eingabe-Pixelkoordinaten C.
    - Determination of the color value
    Figure 00140001
    by sampling the input image buffer corresponding to step 1 of the input data conversion method depending on the input format D e , the current view j, and the calculated input pixel coordinates C.
  • – Modifikation des Farbwerts F zu Farbwert
    Figure 00140002
    in Abhängigkeit des Eingabeformats De und der aktuellen Ansicht j gemäß Schritt 2 des Konvertierungsverfahrens für Eingabedaten.
    - Modification of the color value F to color value
    Figure 00140002
    depending on the input format D e and the current view j according to step 2 of the input data conversion method.
  • – Aktualisieren des aktuellen Pixels pi im der Intermediate-Ansicht i zugeordnetem Farbpuffer des Intermediate-Bildpuffers mit dem resultierendem Farbwert F'.Updating the current pixel p i in the intermediate image i associated color buffer of the intermediate image buffer with the resulting color value F '.

Konvertierung der EingabeformateConversion of the input formats

In Phase 2d) wurde Bezug genommen auf das Konvertierungsverfahren für Eingabedaten. Diese Konvertierung erfolgt dabei immer in zwei Schritten, die hier als die mathematischen Funktionen decode1 und decode2 bezeichnet wurden. Diese Funktionen werden für jedes unterstützte Eingabeformat im Folgenden spezifiziert:

  • decode1(C, j, e): Sampling des Farbwertes in Abhängigkeit von Pixelposition und Ansicht: In diesem Verarbeitungsschritt wir der Farbwert an den Eingabe-Pixelkoordinaten C der Ansicht j des Bildes im Eingabebildpuffer e ermittelt. Nach Möglichkeit wird eine bilineare Interpolation der Pixelfarbwerte in der 2×2 Pixel großen lokalen Nachbarschaft durchgeführt. Dabei muss berücksichtigt werden, dass benachbarte Pixel einer Ansicht nicht direkt benachbarten Pixeln im Eingabe-Framepuffer entsprechen müssen, es kann daher eine Anpassung der Eingabe-Pixelkoordinaten in Abhängigkeit der Eingabe-Ansicht erfolgen.
  • M'e = 1/Me: Pixelbreite in normierten Koordinaten
  • N'e = 1/Ne: Pixelhöhe in normierten Koordinaten
  • j: Ansicht (Zählung beginnt bei 0)
  • C = (Cx, Cy): Die unmodifizierten normierten Eingabe-Pixelkoordinaten
  • decode2(F, j, e): Modifikation des Farbwerts in Abhängigkeit der Ansicht: Manche Stereoformate benutzen Farbkanäle zur Kodierung unterschiedlicher Ansichten. In diesen Fällen ist es notwendig, die Farbinformationen in Abhängigkeit der Eingabe-Ansicht zu modifizieren.
In phase 2d), reference was made to the conversion method for input data. This conversion always takes place in two steps, which were referred to here as the mathematical functions decode1 and decode2. These functions are specified below for each supported input format:
  • decode1 (C, j, e): Sampling of the color value as a function of pixel position and view: In this processing step, the color value at the input pixel coordinate C of the view j of the image in the input image buffer e is determined. If possible, bilinear interpolation of the pixel color values in the 2x2 pixel local neighborhood is performed. It has to be taken into account that neighboring pixels of a view do not have to correspond directly to neighboring pixels in the input frame buffer, therefore an adaptation of the input pixel coordinates can take place depending on the input view.
  • M ' e = 1 / M e : pixel width in normalized coordinates
  • N ' e = 1 / N e : pixel height in normalized coordinates
  • j: view (counting starts at 0)
  • C = (C x , C y ): The unmodified normalized input pixel coordinates
  • decode2 (F, j, e): Modification of the color value depending on the view: Some stereo formats use color channels to encode different views. In these cases, it is necessary to modify the color information depending on the input view.

Eingabeformat mono: monoskopischInput format mono: monoscopic

Es wird eine Eingabe-Ansicht definiert. Der Eingabe-Bildpuffer enthält die Eingabe-Ansicht 0 als Vollbild. In ist diese Bildkodierung beispielhaft skizziert. C' = (nearest(Cx, Me), nearest(Cy, Ne)) f = (factor(Cx, Me), factor(Cy, Ne)) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0, N'e) x4 = C' + (M'e, N'e) decode1mono(C, j, e) = bilinear(f, x1, x2, x3, x4, e) decode2mono(F, j, e) = F An input view is defined. The input frame buffer contains the input view 0 in full screen. In this picture coding is sketched by way of example. C '= (nearest (C x , M e ), nearest (C y , N e )) f = (factor (C x , M e ), factor (C y , N e )) x 1 = C' x 2 = C '+ (M' e , 0) x 3 = C '+ (0, N' e ) x 4 = C '+ (M' e , N ' e ) decode 1 mono (C, j, e) = bilinear (f, x 1 , x 2 , x 3 , x 4 , e) decode2 mono (F, j, e) = F

Eingabeformat ilh: Interlaced (zeilenweise)Input format ilh: Interlaced (line by line)

Es werden zwei Eingabe-Ansichten definiert. Der Eingabe-Bildpuffer enthält zeilenweise abwechselnd Ansicht 0 (gerade Zeilennummern) und Ansicht 1 (ungerade Zeilennummern). In ist diese Bildkodierung beispielhaft skizziert. C'x = nearest(Cx, Me) fx = factor(Cx, Me) hy = (Cy·Ne + j – 0.5)/2 C'y = (floor(hy)·2 – j + 0.5)/Ne fy = (Cy – C'y)/(2·N'e) C' = (C'x, C'y) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0,2·N'e) x4 = C' + (M'e, 2·N'e) decode1ilh(C, j, e) = bilinear((fx, fy), x1, x2, x3, x4, e) decode2ilh(F, j, e) = F Two input views are defined. The input image buffer contains line by line views 0 (even line numbers) and view 1 (odd line numbers). In this picture coding is sketched by way of example. C ' x = nearest (C x , M e ) f x = factor (C x , M e ) h y = (C y * N e + j-0.5) / 2 C' y = (floor (h y ) 2 - j + 0.5) / N e f y = (C y - C ' y ) / (2 * N' e ) C '= (C' x , C ' y ) x 1 = C' x 2 = C ' + (M ' e , 0) x 3 = C' + (0.2 · N ' e ) x 4 = C' + (M ' e , 2 · N' e ) decode1 ilh (C, j, e) = bilinear ((f x , f y ), x 1 , x 2 , x 3 , x 4 , e) decode 2 ilh (F, j, e) = F

Eingabeformat ilv: Interlaced (spaltenweise)Input format ilv: Interlaced (column by column)

Es werden zwei Eingabe-Ansichten definiert. Der Eingabe-Bildpuffer enthält spaltenweise abwechselnd Ansicht 0 (gerade Spaltennummern) und Ansicht 1 (ungerade Spaltennummern). In ist diese Bildkodierung beispielhaft skizziert. hx = (Cx·Me + j – 0.5)/2 C'x = (floor(hx)·2 – j + 0.5)/Me fx = (Cx – C'x)/(2·M'e) C'y = nearest(Cy, Ne) fy = factor(Cy, Ne) C' = (C'x, C'y) x1 = C' x2 = C' + (2·M'e, 0) x3 = C' + (0, N'e) x4 = C' + (2·M'e, N'e) decode1ilv(C, j, e) = bilinear((fx, fy), x1, x2, x3, x4, e) decode2ilv(F, j, e) = F Two input views are defined. The input image buffer contains column-by-column alternately view 0 (even column numbers) and view 1 (odd column numbers). In this picture coding is sketched by way of example. h x = (C x * M e + j - 0.5) / 2 C ' x = (floor (h x ) * 2 - j + 0.5) / M e f x = (C x -C' x ) / (2 M ' e ) C' y = nearest (C y , N e ) f y = factor (C y , N e ) C '= (C' x , C ' y ) x 1 = C' x 2 = C ' + (2 · M ' e , 0) x 3 = C' + (0, N ' e ) x 4 = C' + (2 · M ' e , N' e ) decode 1 ilv (C, j, e) = bilinear ((f x , f y ), x 1 , x 2 , x 3 , x 4 , e) decode 2 ilv (F, j, e) = F

Eingabeformat cb: Checkerboard (Schachbrett-Muster) Input format cb: Checkerboard (checkerboard pattern)

Es werden zwei Eingabe-Ansichten definiert, welche schachbrettartig über den Eingabe-Bildpuffer verteilt sind. Ist die Summe aus Spalten- und Zeilennummer gerade, so entspricht das Pixel Ansicht 0, andernfalls Ansicht 1. In ist diese Bildkodierung beispielhaft skizziert. hx = floor((Me·Cx – Ne·Cy) + 1 – j)/2)·2 + j; hy = floor((Me·Cx + Ne·Cy) + j)/2)·2 + 1 – j; C'x = 0.5·(hx + hy)/Me C'y = 0.5·(hx – hy)/Ne decode1cb(C, j, e) = pixel((C'x, C'y), e) decode2cb(F, j, e) = F Two input views are defined, which are spread across the input image buffer in a checkerboard pattern. If the sum of column and row number is even, the pixel will be View 0, otherwise, View 1. In this picture coding is sketched by way of example. h x = floor ((M e * C x -N e * C y ) + 1-j) / 2) * 2 + j; h y = floor ((M e * C x + N e * C y ) + j) / 2) * 2 + 1-j; C 'x = 0.5 * (h x + h y) / M e C' y = 0.5 * (h x - h y) / N e decode1 cb (C, j, e) = pixel ((C 'x, C ' y ), e) decode2 cb (F, j, e) = F

Eingabeformat sbs: Side-By-Side (Nebeneinander)Input format sbs: Side-By-Side

Es werden zwei Eingabe-Ansichten definiert, welche als zwei Vollbilder (jeweils mit halbierter Auflösung) nebeneinander im Eingabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. hx = 0.5·(Cx + j) C'x = nearest(hx, Me) C'y = nearest(Cy, Ne) f = (factor(hx, Me), factor(Cy, Ne)) C' = (C'x, C'y) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0, N'e) x4 = C' + (M'e, N'e) decode1sbs(C, j, e) = bilinear(f, x1, x2, x3, x4, e) decode2sbs(F, j, e) = F Two input views are defined, which are coded as two frames (each with halved resolution) side by side in the input frame buffer. In this picture coding is sketched by way of example. h x = 0.5 · (C x + j) C ' x = nearest (h x , M e ) C' y = nearest (C y , N e ) f = (factor (h x , M e ), factor (C y , N e )) C '= (C' x , C ' y ) x 1 = C' x 2 = C '+ (M' e , 0) x 3 = C '+ (0, N' e ) x 4 = C '+ (M' e , N ' e ) decode 1 sbs (C, j, e) = bilinear (f, x 1 , x 2 , x 3 , x 4 , e) decode 2 sbs (F, j, e ) = F

Eingabeformat tb: Top-Bottom (Untereinander)Input format tb: Top-Bottom

Es werden zwei Eingabe-Ansichten definiert, welche als zwei Vollbilder (jeweils mit halbierter Auflösung) untereinander im Eingabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. C'x = nearest(Cx, Me) hy = 0.5·(Cy + j) C'y = nearest(hy, Ne) f = (factor(Cx, Me), factor(hy, Ne)) C' = (C'x, C'y) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0, N'e) x4 = C' + (M'e, N'e) decode1tb(C, j, e) = bilinear(f, x1, x2, x3, x4, e) decode2tb(F, j, e) = F Two input views are defined, which are coded as two frames (each with halved resolution) among each other in the input frame buffer. In this picture coding is sketched by way of example. C ' x = nearest (C x , M e ) h y = 0.5 · (C y + j) C' y = nearest (h y , N e ) f = (factor (C x , M e ), factor (h y , N e )) C '= (C' x , C ' y ) x 1 = C' x 2 = C '+ (M' e , 0) x 3 = C '+ (0, N' e ) x 4 = C '+ (M' e , N ' e ) decode 1 tb (C, j, e) = bilinear (f, x 1 , x 2 , x 3 , x 4 , e) decode 2 tb (F, j, e ) = F

Eingabeformat ag: anaglyphInput format ag: anaglyph

Es werden zwei Eingabe-Ansichten definiert, welche in unterschiedlichen Farbkanälen kodiert sind. Die entstehenden Einzelansichten entsprechen dabei einem monochromen Bildinhalt. Die Kodierung der Farbkanäle wird über folgende Parameter gesteuert:

  • – δ0: dreidimensionaler Vektor mit einem Koeffizient pro Farbkanal, beschreibt den Anteil von Ansicht 0
  • – δ1: dreidimensionaler Vektor mit einem Koeffizient pro Farbkanal, beschreibt den Anteil von Ansicht 1
Two input views are defined, which are coded in different color channels. The resulting individual views correspond to a monochrome image content. The coding of the color channels is controlled by the following parameters:
  • - δ 0 : three-dimensional vector with one coefficient per color channel, describes the proportion of view 0
  • - δ 1 : three-dimensional vector with one coefficient per color channel, describes the proportion of view 1

In ist diese Bildkodierung beispielhaft skizziert. C' = (nearest(Cx, Me), nearest(Cy, Ne)) f = (factor(Cx, Me), factor(Cy, Ne)) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0, N'e) x4 = C' + (M'e, N'e) decode1ag(C, j, e) = bilinear(f, x1, x2, x3, x4, e) h = dot(F, (1 – j)·δ0 + j·δ1) decode2ag(F, j, e) = (h, h, h) In this picture coding is sketched by way of example. C '= (nearest (C x , M e ), nearest (C y , N e )) f = (factor (C x , M e ), factor (C y , N e )) x 1 = C' x 2 = C '+ (M' e , 0) x 3 = C '+ (0, N' e ) x 4 = C '+ (M' e , N ' e ) decode1 ag (C, j, e) = bilinear (f, x 1 , x 2 , x 3 , x 4 , e) h = dot (F, (1-j) * δ 0 + j * δ 1 ) decode 2 ag (F, j, e) = (h, h, h)

Eingabeformat sbsmv: Side-By-Side Multiview (Nebeneinander)Input format sbsmv: Side-By-Side Multiview

Es wird eine beliebige Anzahl von εe Eingabe-Ansichten definiert, die als Vollbilder mit jeweils der Bildbreite Mee nebeneinander im Eingabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. hx = (1/εe)·(Cx + j) C'x = nearest(hx, Me) C'y = nearest(Cy, Ne) f = (factor(hx, Me), factor(Cy, Ne)) C' = (C'x, C'y) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0, N'e) x4 = C' + (M'e, N'e) decode1sbsmv(C, j, e) = bilinear(f, x1, x2, x3, x4, e) decode2sbsmv(F, j, e) = F An arbitrary number of ε e input views are defined, which are coded as frames with the image width M e / ε e next to one another in the input image buffer. In this picture coding is sketched by way of example. h x = (1 / ε e ) · (C x + j) C ' x = nearest (h x , M e ) C' y = nearest (C y , N e ) f = (factor (h x , M e ), factor (C y , N e )) C '= (C' x , C ' y ) x 1 = C' x 2 = C '+ (M' e , 0) x 3 = C '+ (0, N ' e ) x 4 = C' + (M ' e , N' e ) decode 1 sbsmv (C, j, e) = bilinear (f, x 1 , x 2 , x 3 , x 4 , e) decode 2 sbsmv ( F, j, e) = F

Eingabeformat tbmv: Top-Bottom Multiview (Untereinander)Input format tbmv: Top-Bottom Multiview

Es wird eine beliebige Anzahl von εe Eingabe-Ansichten definiert, die als Vollbilder mit jeweils der Bildhöhe Nee untereinander im Eingabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. C'x = nearest(Cx, Me) hy = (1/εe)·(Cy + j) C'y = nearest(hy, Ne) f = (factor(Cx, Me), factor(hy, Ne)) C' = (C'x, C'y) x1 = C' x2 = C' + (M'e, 0) x3 = C' + (0, N'e) x4 = C' + (M'e, N'e) decode1tbmv(C, j, e) = bilinear(f, x1, x2, x3, x4, e) decode2tbmv (F, j, e) = F It is defined any number of ε e input views that are encoded as frames with each image height N e / ε e with each other in the input frame buffer. In this picture coding is sketched by way of example. C ' x = nearest (C x , M e ) h y = (1 / ε e ) · (C y + j) C' y = nearest (h y , N e ) f = (factor (C x , M e ), factor (h y , N e )) C '= (C' x , C ' y ) x 1 = C' x 2 = C '+ (M' e , 0) x 3 = C '+ (0, N ' e ) x 4 = C' + (M ' e , N' e ) decode 1 tbmv (C, j, e) = bilinear (f, x 1 , x 2 , x 3 , x 4 , e) decode 2 tbmv ( F, j, e) = F

Abschluss von Phase 2:Completion of phase 2:

Nachdem alle Eingangsdaten der Synchronisationsgruppe verarbeitet wurden, enthält der Intermediate-Bildpuffer, die neuen Bildinformationen, getrennt nach den einzelnen Intermediate-Ansichten, als Vollbilder. Falls im Verlauf von Phase 2 der Intermediate-Bildpuffer modifiziert wurde, muss nun Phase 3 ausgeführt werden, um die Ausgabepuffer ebenfalls zu aktualisieren. Andernfalls wird wieder Phase 2 von Beginn an ausgeführt.After all input data of the synchronization group have been processed, the intermediate image buffer contains the new image information, separated into individual intermediate views, as full images. If the intermediate image buffer has been modified during Phase 2, Phase 3 must now be performed to update the output buffers as well. Otherwise, Phase 2 will start again from the beginning.

Phase 3) Erzeugung der AusgabesignalePhase 3) Generation of the output signals

In Phase 3 werden die Ausgabe-Bildpuffer aktualisiert, so dass die geänderten Eingabe-Bilddaten schließlich auch von den Projektoren dargestellt werden. zeigt einen Programmablaufplan zur Durchführung dieser Phase.In Phase 3, the output image buffers are updated so that eventually the changed input image data is also displayed by the projectors. shows a program flow chart for performing this phase.

a) Ermittlung der Intermediate-Ansichten pro Pixel, a) determination of the intermediate views per pixel,

  • – Iteriere über jeden Ausgang a der A Ausgänge und iteriere über jedes Pixel pa des Ausgangs a und führe das in Phase 2b) beschriebene Verfahren aus.- iterate over each output a of the A outputs and iterate over each pixel p a of the output a and perform the procedure described in phase 2b).

b) Ermittlung der Farbwerte aller Ausgabe-Ansichten pro Pixel,b) determining the color values of all output views per pixel,

  • – O = (Ox, Oy) entspricht den Pixelkoordinaten von pa,.- O = (O x , O y ) corresponds to the pixel coordinates of p a ,.
  • – Berechnung der Geräte-Pixelkoordinaten T(Tx, Ty) gemäß Schritt 1 des Konvertierungsverfahrens für Ausgabedaten.
    Figure 00200001
    Calculation of the device pixel coordinates T (T x , T y ) according to step 1 of the output data conversion method.
    Figure 00200001
  • – Ermittlung der Intermediate-Bildkoordinaten U, die den Geräte-Pixelkoordinaten T zugeordnet sind. Diese Umrechnung erfolgt mit Hilfe der gespeicherten Kalibrierparameter des zugehörigen Projektors, die in irgend einer Form eine Abbildung der Gerätekoordinaten auf die Intermediate-Koordinaten beschreiben, welche nicht näher in der Beschreibung dieser Erfindung betrachtet werden soll. U = warpa(T, βa)- Determining the intermediate image coordinates U, which are assigned to the device pixel coordinates T. This conversion is done using the stored calibration parameters of the associated projector, which in some form describe a mapping of the device coordinates to the intermediate coordinates, which should not be further considered in the description of this invention. U = warp a (T, β a )
  • – Ermittlung des den Geräte-Pixelkoordinaten zugeordneten Parametervektors α, wie z. B. einen Blend-Faktor für Soft-Edge-Blending. α = parama(T, βa)- Determining the device pixel coordinates associated parameter vector α, such. For example, a blend factor for soft edge blending. α = param a (T, β a )
  • – Ermittlung der Liste K = {K0, ..., Kk-1} der k benötigten Ausgabe-Ansichten je nach Ausgabe-Format für Ausgabekoordinaten O gemäß Schritt 2 des Konvertierungsverfahrens für Ausgabedaten.
    Figure 00200001
    Determination of the list K = {K 0 ,..., K k-1 } of the k required output views depending on output format for output coordinates O according to step 2 of the output data conversion method.
    Figure 00200001
  • – Ermittlung der zugehörigen Intermediate-Ansichten i für alle Ansichten j der Liste K mittels der Zuordnungsliste Wa von Ausgabe-Ansichten zu Intermediate-Ansichten aus der KonfigurationDetermination of the associated intermediate views i for all views j of the list K by means of the assignment list W a from output views to intermediate views from the configuration
  • – Für jede der ermittelten Intermediate-Ansichten i: Bilineares Filtern des zugehörigen Intermediate-Bildpuffers an den Intermediate-Bildkoordinaten U. Es ergibt sich pro Ausgabe-Ansicht j ein Farbsample Zj For each of the detected intermediate views i: Bilinear filtering of the associated intermediate image buffer at the intermediate image coordinate U. The result for each output view j is a color sample Z j
  • – Nachdem alle Farbsamples aller Ansichten j aus Liste K berechnet wurden, wird Phase 3c) durchgeführtAfter all color samples of all views j from list K have been calculated, phase 3c) is performed

c) Erzeugung des Ausgabepixelfarbwertsc) Generation of the output pixel color value

  • – Kombination der Farbsamples Zj aller Ausgabe-Ansichten gemäß Schritt 3 des Konvertierungsverfahrens für Ausgabedaten zum Farbsample Z.
    Figure 00210001
    - Combination of the color samples Z j all output views according to step 3 of the conversion method for output data for color sampling Z.
    Figure 00210001
  • – Umrechnung des Farbwertes auf den Ausgabefarbwert für den Projektor anhand der Kalibrierparameter. Z' = colora(Z, α, βa)- Conversion of the color value to the output color value for the projector based on the calibration parameters. Z '= color a (Z, α, β a )
  • – Aktualisieren des Ausgabepixels pa mit Farbwert Z'Updating the output pixel p a with color value Z '

Konvertierung der AusgabeformateConversion of the output formats

Die Konvertierung der Intermediate-Bilddaten in das jeweilige Ausgabeformat erfolgt immer in drei Schritten, die jeweils abstrakt durch die mathematischen Funktionen encode1, encode2 und encode3 beschrieben werden.

  • encode1(O, a): Ermittlung der Gerätekoordinaten in Abhängigkeit der Ausgabepixelposition: Diese Geräte-Pixelkoordinaten dienen als Eingabekoordinaten der Image-Warping-Stufe der Geometriekalibrierung.
  • encode2(O, a): Ermittlung der notwendigen Ansichten in Abhängigkeit der Ausgabepixelposition: Jedes Ausgabe-Pixel kann Bilddaten von keiner, einer oder mehreren Ausgabe-Ansichten enthalten. In diesem Schritt muss ermittelt werden, welche Ausgabe-Ansichten tatsächlich auf dieses Ausgabe-Pixel wirken. Es entsteht eine Liste K, die alle k Ausgabe-Ansichten enthält, wobei jede Ansicht durch eine Ganzzahl definiert wird, deren Zählung bei Null beginnt. Die Liste der Ansichten ist abhängig von den Ausgabe-Pixelkoordinaten O.
  • encode3(O, a, Z0, ..., Zk-1): Kombination der Farbwerte mehrerer Ansichten In Phase 3b) wird für jede Ausgabe-Ansicht j der Liste K ein Farbsample Zj der der Ausgabe-Ansicht i zugeordneten Intermediate-Ansicht ermittelt. Diese Farbsamples werden mit dieser Funktion zu einem finalen Farbwert Z kombiniert. Dies ist notwendig für Ausgabeformate, die unterschiedliche Ansichten in unterschiedlichen Farbkanälen kodieren, sowie für stereoskopische oder Multiview-Ausgabebildpuffer.
The conversion of the intermediate image data into the respective output format always takes place in three steps, which are abstractly described by the mathematical functions encode1, encode2 and encode3.
  • encode1 (O, a): Obtain Device Coordinates Dependent on Output Pixel Position: These device pixel coordinates serve as input coordinates of the image warping level of the geometry calibration.
  • encode2 (O, a): Determining the Necessary Views Dependent on the Output Pixel Position: Each output pixel may contain image data from none, one or more output views. In this step, it must be determined which output views actually affect that output pixel. A list K is created containing all k output views, each view being defined by an integer whose count starts from zero. The list of views depends on the output pixel coordinates O.
  • encode3 (O, a, Z 0 , ..., Z k-1 ): Combining the Color Values of Multiple Views In step 3b), for each output view j of the list K, a color sample Z j of the intermediates associated with the output view i View determined. These color samples are combined with this function to form a final color Z value. This is necessary for output formats that encode different views in different color channels, as well as for stereoscopic or multiview output image buffers.

Ausgabeformat mono: monoskopisch Output format mono: monoscopic

Es wird eine Ausgabe-Ansicht definiert. Der Ausgabe-Bildpuffer enthält die Ausgabe-Ansicht 0 als Vollbild. In ist diese Bildkodierung beispielhaft skizziert. encode1mono(O, a) = O encode2mono(O, a) = {0} encode3mono(O, a, Zj) = Zj An output view is defined. The output frame buffer contains the output view 0 in full screen. In this picture coding is sketched by way of example. encode1 mono (O, a) = O encode2 mono (O, a) = {0} encode3 mono (O, a, Z j ) = Z j

Ausgabeformat stereo: Stereoskopischer BildpufferOutput format stereo: Stereoscopic image buffer

Viele Workstation-Grafikkarten unterstützen den sogenannten Quadbuffer-Modus. Dabei enthält der Framebuffer separate Bildpuffer für die Aufnahme der Bilder für das linke und rechte Auge (in Kombination mit dem üblichen Double Buffering ergeben sich vier Puffer, daher der Name). Es ist sinnvoll, ein derartiges Ausgabe-Format direkt zu unterstützen. Da in diesem Verfahren beide Ansichten immer zusammen verarbeitet werden, betrachten wir die Farbsamples eines Pixels für beide Ansichten als Vektor mit der doppelten Anzahl an Komponenten Z = (Zr1, Zg1, Zb1, Zr2, Zg2, Zb2). Beim Aktualisieren eines Ausgabepixels werden dann immer beide Ansichten aktualisiert. encode1stereo(O, a) = O encode2stereo(O, a) = {0, 1} encode3stereo(O, a, Z0, Z1) = (Z0,r, Z0,g, Z0,b, Z1,r, Z1,g, Z1,b) Many workstation graphics cards support the so-called quadbuffer mode. The framebuffer contains separate image buffers for recording the images for the left and right eye (in combination with the usual double buffering, there are four buffers, hence the name). It makes sense to support such an output format directly. Since both views are always handled together in this process, we consider the color samples of a pixel for both views as a vector with twice the number of components Z = (Z r1, Z g1, Z b1, Z r2, Z g2, Z b2). When updating an output pixel, both views are always updated. encode1 stereo (O, a) = O encode2 stereo (O, a) = {0, 1} encode3 stereo (O, a, Z 0 , Z 1 ) = (Z 0, r , Z 0, g , Z 0, b , Z 1, r , Z 1, g , Z 1, b )

Ausgabeformat mv: Multiview-BildpufferOutput format mv: Multiview image buffer

Im Hinblick auf zukünftige Entwicklungen ist es sinnvoll, ein Ausgabeformat mit einer beliebigen Anzahl εa von Ansichten zur Verfügung zu haben, bei dem alle Ansichten in der vollen Ausgabeauflösung zur Verfügung stehen. Dafür wird hier ein allgemeines Multiview-Ausgabeformat definiert, bei dem der Ausgabepuffer εa separate Bildpuffer enthält. Da in diesem Verfahren alle Ansichten immer zusammen verarbeitet werden, betrachten wir die Farbsamples eines Pixels für alle εa Ansichten als Vektor mit der εa-fachen Anzahl an Komponenten Z = (Zr1, Zg1, Zb1, Zr2, Zg2, Zb2, ...). Beim Aktualisieren eines Ausgabepixels werden dann immer alle Ansichten aktualisiert. encode1mv(O, a) = O encode2mv(O, a) = {0, 1}

Figure 00230001
In view of future developments, it makes sense to have an output format with any number ε a of views at which all views are available in the full output resolution. For this purpose, a general multiview output format is defined in which the output buffer ε contains a separate image buffer. Since in this method all views are always processed together, we consider the color samples of a pixel for all ε a views as a vector with the ε a -fold number of components Z = (Z r1 , Z g1 , Z b1 , Z r2 , Z g2 , Z b2 , ...). When updating an output pixel, all views will always be updated. encode1 mv (O, a) = O encode2 mv (O, a) = {0, 1}
Figure 00230001

Ausgabeformat ilh: Interlaced (zeilenweise)Output format ilh: Interlaced (line by line)

Es werden zwei Ausgabe-Ansichten definiert. Der Ausgabe-Bildpuffer enthält zeilenweise abwechselnd Ansicht 0 (gerade Zeilennummern) und Ansicht 1 (ungerade Zeilennummern). In ist diese Bildkodierung beispielhaft skizziert. encode1ilh(O, a) = O encode2ilh(O, a) = {Oy mod 2} encode3ilh(O, a, Zj) = Zj Two output views are defined. The output frame buffer contains line by line views 0 (even line numbers) and view 1 (odd line numbers). In this picture coding is sketched by way of example. encode1 ilh (O, a) = O encode2 ilh (O, a) = {O y mod 2} encode3 ilh (O, a, Z j ) = Z j

Ausgabeformat ilv: Interlaced (spaltenweise)Output format ilv: interlaced

Es werden zwei Ausgabe-Ansichten definiert. Der Ausgabe-Bildpuffer enthält spaltenweise abwechselnd Ansicht 0 (gerade Spaltennummern) und Ansicht 1 (ungerade Spaltennummern). In ist diese Bildkodierung beispielhaft skizziert. encode1ilv(O, a) = O encode2ilv(O, a) = {Ox mod 2} encode3ilv(O, a, Zj) = Zj Two output views are defined. The output image buffer contains column-by-column alternately view 0 (even column numbers) and view 1 (odd column numbers). In this picture coding is sketched by way of example. encode1 ilv (O, a) = O encode2 ilv (O, a) = {O x mod 2} encode3 ilv (O, a, Z j ) = Z j

Ausgabeformat cp: Checkerboard (Schachbrett-Muster) Output format cp: Checkerboard (checkerboard pattern)

Es werden zwei Ausgabe-Ansichten definiert, welche schachbrettartig über den Ausgabe-Bildpuffer verteilt sind. Ist die Summe aus Spalten- und Zeilennummer gerade, so entspricht das Pixel Ansicht 0, andernfalls Ansicht 1. In ist diese Bildkodierung beispielhaft skizziert. encode1cp(O, a) = O encode2cp(O, a) = {(Ox + Oy) mod 2} encode3cp(O, a, Zj) = Zj Two output views are defined, which are spread across the output image buffer in a checkerboard pattern. If the sum of column and row number is even, the pixel will be View 0, otherwise, View 1. In this picture coding is sketched by way of example. encode1 cp (O, a) = O encode2 cp (O, a) = {(O x + O y ) mod 2} encode3 cp (O, a, Z j ) = Z j

Ausgabeformat sbs: Side-By-Side (Nebeneinander)Output format sbs: Side-By-Side

Es werden zwei Ausgabe-Ansichten definiert, welche als zwei Vollbilder (jeweils mit halbierter Auflösung) nebeneinander im Ausgabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. encode1sbs(O, a) = ((2·Ox) mod Ba, Oy) encode2sbs(O, a) = {floor(2·Ox/Ba)} encode3sbs(O, a, Zj) = Zj Two output views are defined, which are coded as two frames (each with halved resolution) side by side in the output frame buffer. In this picture coding is sketched by way of example. encode1 sbs (O, a) = ((2 * O x ) mod B a , O y ) encode 2 sbs (O, a) = {floor (2 * O x / B a )} encode 3 sbs (O, a, Z j ) = Z j

Ausgabeformat tb: Top-Bottom (Untereinander)Output format tb: Top-Bottom

Es werden zwei Ausgabe-Ansichten definiert, welche als zwei Vollbilder (jeweils mit halbierter Auflösung) untereinander im Ausgabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. encode1tb(O, a) = (Ox, (2·Oy) mod Ha) encode2tb(O, a) = {floor(2·Oy/Ha)} encode3tb(O, a, Zj) = Zj Two output views are defined, which are coded as two frames (each with halved resolution) among each other in the output frame buffer. In this picture coding is sketched by way of example. encode1 tb (O, a) = (Ox, (2 · O y ) mod H a ) encode2 tb (O, a) = {floor (2 · O y / H a )} encode3 tb (O, a, Z j ) = Z j

Ausgabeformat ag: anaglyphOutput format ag: anaglyph

Es werden zwei Ausgabe-Ansichten definiert, welche in unterschiedlichen Farbkanälen kodiert sind. Die Kodierung der Farbkanäle wird über folgende Parameter gesteuert:

  • – μ0: dreidimensionaler Vektor mit einem Koeffizient pro Farbkanal, beschreibt den Anteil von Ansicht 0
  • – μ1: dreidimensionaler Vektor mit einem Koeffizient pro Farbkanal, beschreibt den Anteil von Ansicht 1
Two output views are defined, which are coded in different color channels. The coding of the color channels is controlled by the following parameters:
  • - μ 0 : three-dimensional vector with one coefficient per color channel, describes the proportion of view 0
  • - μ 1 : three-dimensional vector with one coefficient per color channel, describes the proportion of view 1

In ist diese Bildkodierung beispielhaft skizziert. encode1ag(O, a) = O encode2ag(O, a) = {0, 1} encode3ag(O, a, Z0, Z1) = μ0·Z0 + μ1·Z1 In this picture coding is sketched by way of example. encode1 ag (O, a) = O encode2 ag (O, a) = {0, 1} encode3 ag (O, a, Z 0 , Z 1 ) = μ 0 × Z 0 + μ 1 × Z 1

Ausgabeformat agm: anaglyph_monochromOutput format agm: anaglyph_monochrom

Analog zum Format „anaglyph”, jedoch werden die Farbsamples noch mittels eines zusätzlichen Parameters in eine monochromatische Darstellung umgerechnet.

  • – μm: dreidimensionaler Vektor mit einem Koeffizient pro Farbkanal, beschreibt die Konvertierung in monochromatische Darstellung encode1agm(O, a) = O encode2agm(O, a) = {0, 1} h0 = dot(Z0, μm) h1 = dot(Z1, μm) Z'0 = (h0, h0, h0) Z'1 = (h1, h1, h1) encode3agm(O, a, Z0, Z1) = μ0·Z'0 + μ1·Z'1
Analogous to the format "anaglyph", however, the color samples are converted by means of an additional parameter into a monochromatic representation.
  • - μ m : three-dimensional vector with one coefficient per color channel, describes the conversion into monochromatic representation encode1 agm (O, a) = O encode2 agm (O, a) = {0, 1} h 0 = dot (Z 0 , μ m ) h 1 = dot (Z 1 , μ m ) Z ' 0 = (h 0 , h 0 , h 0 ) Z ' 1 = (h 1 , h 1 , h 1 ) encode3 agm (O, a, Z 0 , Z 1 ) = μ 0 · Z' 0 + μ 1 · Z ' 1

Ausgabeformat sbsmv: Side-By-Side Multiview (Nebeneinander) Output format sbsmv: Side-By-Side Multiview

Es wird eine beliebige Anzahl von εa Ausgabe-Ansichten definiert, die als Vollbilder mit jeweils der Bildbreite Bae nebeneinander im Eingabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. encode1sbsmv(O, a) = ((εa·Ox) mod Ba, Oy) encode2sbsmv(O, a) = {floor(εa·Ox/Ba)} encode3sbsmv(O, a, Zj) = Zj An arbitrary number of ε a output views are defined, which are coded as frames with in each case the image width B a / e e next to one another in the input image buffer. In this picture coding is sketched by way of example. encode1 sbsmv (O, a) = ((ε a * O x ) mod B a , O y ) encode 2 sbsmv (O, a) = {floor (ε a * O x / B a )} encode 3 sbsmv (O, a , Z j ) = Z j

Ausgabeformat tbmv: Top-Bottom (Untereinander)Output format tbmv: Top-Bottom

Es wird eine beliebige Anzahl von εa Ausgabe-Ansichten definiert, die als Vollbilder mit jeweils der Bildhöhe Hae untereinander im Eingabe-Bildpuffer kodiert sind. In ist diese Bildkodierung beispielhaft skizziert. encode1tbmv(O, a) = (Ox, (εa·Oy) mod Ha) encode2tbmv(O, a) = {floor(εa·Oy/Ha)} encode3tbmv(O, a, Zj) = Zj It is defined any number of ε a output views that are encoded as frames with each image height H a / ε e with each other in the input frame buffer. In this picture coding is sketched by way of example. encode1 tbmv (O, a) = (Ox, (ε a · O y ) mod H a ) encode2 tbmv (O, a) = {floor (ε a * O y / H a )} encode3 tbmv (O, a, Z j ) = Z j

Abschluss von Phase 3:Completion of Phase 3:

Damit ist das Verfahren für einen darzustellenden Bildinhalt (bestehend aus den Bildsignalen aller relevanten Eingänge) abgeschlossen, die Projektoren erhalten als Eingabesignal die entsprechend der Kalibrierparameter verzerrten und farblich angepassten Teilbilder in dem für den jeweiligen Projektor erforderlichen monoskopischen, stereoskopischen oder Multiview-Format. Nach Abschluss von Phase 3 wird das Verfahren wieder mit Phase 2 fortgeführt, um in Echtzeit fortlaufend die neuen Eingangssignale verarbeiten und darstellen zu können.Thus, the process for an image content to be displayed (consisting of the image signals of all relevant inputs) is completed, the projectors receive as input signal the distorted according to the calibration parameters and color-matched partial images in the required for each projector monoscopic, stereoscopic or multiview format. After completing Phase 3, the process will be resumed with Phase 2 to continuously process and display the new input signals in real time.

Vorteilhaft an diesem Verfahren ist insbesondere, dass die Formate der Eingabe- und Ausgabeansichten unabhängig voneinander individuell frei wählbar sind und die Anwendung des eigentlichen Kalibrierverfahrens derart mit der Konvertierung der Daten in das Ausgabeformat kombiniert wird, so dass der Verarbeitungsaufwand minimiert wird. Weiterhin ist vorteilhaft, dass das Verfahren mit moderner Computertechnologie in Form von Vertex- und Fragmentshadern direkt auf der Grafikkarte ausführbar ist.An advantage of this method is, in particular, that the formats of the input and output views are independently selectable independently of each other and the application of the actual calibration method is combined with the conversion of the data in the output format, so that the processing cost is minimized. Furthermore, it is advantageous that the method can be executed directly on the graphics card with modern computer technology in the form of vertex and fragment shaders.

Für die Ansteuerung großer Anlagen bestehend aus sehr vielen Projektoren genügt der Einsatz eines einzigen Rechners nicht mehr. In diesem Fall kann das Verfahren auch in einem Rechnercluster eingesetzt werden. Dazu ist lediglich anzumerken, dass im Falle von sich überlappenden Projektorbildern die diesen Bereich betreffenden Eingabebilddaten gegebenenfalls an mehrere Rechner verteilt werden müssen. Das hier vorgestellte Verfahren kann dann auf jedem Rechner des Clusters individuell ausgeführt werden, wobei die von einem anderen Clusterknoten stammenden Bilddaten jeweils als weiteres Eingabesignal betrachtet werden.For the control of large systems consisting of very many projectors, the use of a single computer is no longer sufficient. In this case, the method can also be used in a computer cluster. It should merely be noted that, in the case of overlapping projector images, the input image data relating to this area may have to be distributed to several computers. The method presented here can then be executed individually on each computer of the cluster, wherein the image data originating from another cluster node are each regarded as a further input signal.

Ausführungsbeispiel: Stereoskopische Powerwall mit 4 stereoskopischen Projektoren und 3 EingängenExemplary embodiment: Stereoscopic powerwall with 4 stereoscopic projectors and 3 inputs

Für das Ausführungsbeispiel wird von einer Anlage bestehend aus 4 baugleichen stereoskopischen FullHD-Projektoren ausgegangen, die als 2×2-Array so angeordnet sind, dass sich die projizierten Bilder auf der ebenen Projektionsfläche jeweils um ca. 20% überlappen. Als Projektoren kommen Ein-Chip DLP-Projektoren zum Einsatz, die Stereoinhalt kodiert als Checkerboard-Daten (mit effektiv halbierter Auflösung pro Ansicht) entgegennehmen und die beiden Ansichten im Shutterverfahren mit abwechselnd mit einer Frequenz von 120 Hz darstellen.For the exemplary embodiment, it is assumed that a system consisting of 4 structurally identical stereoscopic FullHD projectors, which are arranged as a 2 × 2 array so that the projected images on the planar projection surface each overlap by approximately 20%. The projectors used are single-chip DLP projectors, which encode stereo contents encoded as checkerboard data (with effectively halved resolution per view) and display the two views alternately with a frequency of 120 Hz using the shutter method.

Als Bildquelle soll eine Grafik-Workstation dienen, die stereoskopische Bildinhalte als Vollbilder in der Auflösung 1920×1200 über jeweils einen eigenen Grafikkarten-Ausgang zur Verfügung stellt. Weiterhin soll in einem kleinen Rechteck rechts oben im Gesamtbild die Ausgabe eines Notebooks eingeblendet werden (Bild-in-Bild). Das Notebook verfügt über nur einen Ausgang, es soll aber trotzdem stereoskopische Bildinhalte darstellen. Die Auflösung des Notebooks betrage 1024×768 Pixel.The image source is a graphics workstation that provides stereoscopic image content as full-screen images in 1920 × 1200 resolution via its own graphics card output. Furthermore, the output of a notebook should be displayed in a small rectangle in the upper right corner of the picture (picture-in-picture). The notebook has only one output, but it should still represent stereoscopic image content. The resolution of the notebook is 1024 × 768 pixels.

In ist ein Beispielaufbau einer derartigen Anlage skizziert.In an example structure of such a system is outlined.

Phase 1) Phase 1)

a)a)

Es existieren die Eingänge 0, 1, 2 sowie die Ausgänge 0 bis 3.There are inputs 0, 1, 2 and outputs 0 to 3.

Die Eingänge werden wie folgt konfiguriert

  • – Eingang 0: – D0 = mono (monoskopisches Eingabe-Format) – Es wird nur eine Ansicht wie folgt zugeordnet: – Eingabe-Ansicht 0 -> Intermediate-Ansicht 0 – Als Rechteck wird das achsparallele Rechteck (0, 0), (1, 0), (1, 1), (0, 1) gewählt, damit der Eingang auf Vollbild-Darstellung skaliert wird – Zuweisung von Synchronisationsgruppe 0
  • – Eingang 1: – D1 = mono (monoskopisches Eingabe-Format) – Es wird nur eine Ansicht wie folgt zugeordnet: – Eingabe-Ansicht 0 -> Intermediate-Ansicht 1 – Als Rechteck wird das achsparallele Rechteck (0, 0), (1, 0), (1, 1), (0, 1) gewählt, damit der Eingang auf Vollbild-Darstellung skaliert wird – Zuweisung von Synchronisationsgruppe 0
  • – Eingang 2: – D2 = ilh (Eingabe-Format: Interlaced (zeilenweise) – Das interlaced-Format definiert 2 Ansichten, die wie folgt zugewiesen werden: – Eingabe-Ansicht 0 -> Intermediate-Ansicht 0 – Eingabe-Ansicht 1 -> Intermediate-Ansicht 1 – Als Rechteck wird (0.5, 0.75), (1.0, 0.75), (1.0, 1.0), (0.5, 1.0) gewählt, damit dieser Eingang in der rechten oberen Ecke erscheint. – Zuweisung von Synchronisationsgruppe 1
The inputs are configured as follows
  • - Input 0: - D 0 = mono (monoscopic input format) - Only one view is assigned as follows: - Input view 0 -> Intermediate view 0 - As a rectangle, the axis-parallel rectangle (0, 0), ( 1, 0), (1, 1), (0, 1) is selected so that the input is scaled to full screen representation - assignment of synchronization group 0
  • - Input 1: - D 1 = mono (monoscopic input format) - Only one view is assigned as follows: - Input view 0 -> Intermediate view 1 - As a rectangle, the axis-parallel rectangle (0, 0), ( 1, 0), (1, 1), (0, 1) is selected so that the input is scaled to full screen representation - assignment of synchronization group 0
  • - Input 2: - D 2 = ilh (Input format: Interlaced - The interlaced format defines 2 views, which are assigned as follows: - Input view 0 -> Intermediate view 0 - Input view 1 - > Intermediate view 1 - Select a rectangle (0.5, 0.75), (1.0, 0.75), (1.0, 1.0), (0.5, 1.0) so that this input appears in the upper right corner - Assigning synchronization group 1

In diesem Beispiel sollen die baugleichen Projektoren alle in den gleichen Einstellungen betrieben werden. Daher ist die Konfiguration für jeden Ausgang a der A Ausgänge identisch:

  • – Ausgang a: – Ermittlung der Kalibrierparameter βa. In diesem Beispiel wird ein kamerabasiertes Kalibrierverfahren verwendet, welches an Hand bekannter projizierter Bildmuster die Position und geometrische Verzerrung ermittelt. Weiterhin berechnet das Kalibrierverfahren einen Blendfaktor für jedes Pixel des Projektors, der für den Helligkeitsabgleich in den Überlappungsbereichen eigesetzt wird. Derartige Verfahren sind im Abschnitt „Stand der Technik” erläutert. – Ga = cb (Ausgabe-Format: Checkerboard) – Das Checkerboard-Ausgabeformat definiert 2 Ansichten, denen wie folgt Intermediate-Ansichten zugewiesen werden: Wa = {0, 1} – Ausgabe-Ansicht 0 -> Intermediate-Ansicht 0 – Ausgabe-Ansicht 1 -> Intermediate-Ansicht 1 – Ba = 1920, Ha = 1080 (FullHD)
In this example, the identical projectors are all to be operated in the same settings. Therefore the configuration is identical for each output a of the A outputs:
  • - Output a: - Determination of the calibration parameters β a . In this example, a camera-based calibration method is used which determines the position and geometric distortion based on known projected image patterns. Furthermore, the calibration method calculates a glare factor for each pixel of the projector that is used for the brightness adjustment in the overlap areas. Such methods are explained in the section "Prior Art". - G a = cb (Output Format: Checkerboard) - The checkerboard output format defines 2 views to which intermediate views are assigned as follows: W a = {0, 1} - Output View 0 -> Intermediate View 0 - Output View 1 -> Intermediate View 1 - B a = 1920, H a = 1080 (FullHD)

Als Auflösung für den Intermediate-Puffer werden beispielhaft 3840×2160 Pixel gewählt, weil dies der Gesamtauflösung des Projektor-Arrays (ohne Berücksichtigung der Überlappung) entspricht. Als Ringpuffer-Größe wird beispielhaft 3 verwendet.By way of example, 3840 × 2160 pixels are selected as the resolution for the intermediate buffer, because this corresponds to the overall resolution of the projector array (without consideration of the overlap). As a ring buffer size, 3 is used as an example.

b)b)

Die Aufzählung aller Intermediate-Ansichten aller Ausgänge mit Entfernung der Duplikate ergibt L = {0, 1}. Es werden also 2 Intermediate-Ansichten verwendet, so dass 2 Intermediate-Bildpuffer, jeweils mit der Auflösung 3840×2160 Pixel, angelegt werdenThe enumeration of all intermediate views of all outputs with the removal of the duplicates yields L = {0, 1}. Thus, 2 intermediate views are used so that 2 intermediate frame buffers, each with a resolution of 3840 × 2160 pixels, are created

c)c)

Für jeden Eingang e werden ein Ringpuffer mit Q = 3 Bildpuffern sowie ein zusätzlicher Eingabe-Bildpuffer angelegt. Die Auflösungen der Bildpuffer sind pro Eingang konstant und ergeben sich aus den zugespielten Bildsignalen wie folgt:

  • – M0 = M1 = 1920, N0 = N1 = 1200
  • – M2 = 1024, N2 = 768
For each input e, a ring buffer with Q = 3 image buffers and an additional input image buffer are created. The resolutions of the image buffers are constant per input and result from the recorded image signals as follows:
  • - M 0 = M 1 = 1920, N 0 = N 1 = 1200
  • - M 2 = 1024, N 2 = 768

Weiterhin wird für alle Eingänge e Re mit 0 initialisiert.Furthermore, e R e is initialized to 0 for all inputs.

d)d)

Es wird für jeden der 4 Ausgänge eine Ausgabe-Bildpuffer mit 1920×1080 Pixeln angelegt.An output image buffer of 1920 × 1080 pixels is applied for each of the 4 outputs.

Phase 2)Phase 2)

a)a)

Es treffe zunächst am Eingang e' = 1 ein neues Bild ein. Da R1 = 0 < Q gilt, wird das Eingabebild in den Ringpuffer von Eingang 1 kopiert. Die Synchronisationsgruppe, zu der e' gehört, ist S = {0, 1}. Da die Bedingung R0 > 0 nicht gilt, wird das Verfahren wieder bei Phase 2a fortgesetzt und auf weitere Bilddaten gewartet.First, at the entrance e '= 1, it enters a new image. Since R 1 = 0 <Q, the input image is copied to the ring buffer of input 1. The synchronization group to which e 'belongs is S = {0, 1}. Since the condition R 0 > 0 does not apply, the process is continued again at phase 2a and waits for further image data.

Es treffe nun am Eingang e' = 0 ein neues Bild ein. Da R0 = 0 < Q gilt, wird das Eingabebild in den Ringpuffer von Eingang 0 kopiert. Die Synchronisationsgruppe, zu der e' gehört, ist S = {0, 1}. Da Re > 0 für alle e aus S gilt, wird das Verfahren in Phase 2b) fortgesetzt.It now enters a new image at the input e '= 0. Since R 0 = 0 <Q, the input image is copied to the ring buffer of input 0. The synchronization group to which e 'belongs is S = {0, 1}. Since R e > 0 for all e from S, the process continues in phase 2b).

b)b)

Für jeden Eingang e aus S wird der älteste noch nicht verarbeitete Bildinhalt des Ringpuffers in den Eingabe-Bildpuffer kopiert und Re um 1 dekrementiert, so dass wieder R0 = R1 = 0 gilt. Die ältesten Bildinhalte sind in diesem Fall die ersten (und einzigen) Bilddaten, die in den Ringpuffer kopiert wurden. Es wird nun für jeden Eingang e der E Eingänge Phase 2c) durgeführt.For each input e from S, the oldest unprocessed image content of the circular buffer is copied into the input frame buffer and R e is decremented by 1 so that again R 0 = R 1 = 0. The oldest image contents in this case are the first (and only) image data copied to the ring buffer. It is now carried out for each input e of the inputs Phase 2c).

c) e = 0c) e = 0

Da v0 = 1 gilt, gibt es eine Eingabe-Ansicht j = 0. Aus der Konfiguration (Phase 1a) kann Ansicht 0 die Intermediate-Ansicht i = 0 zugeordnet werden. Diese ist in der Liste L enthalten, also wird die Rasterisierung durchgeführt: Für jedes Pixel pi, des Intermediate-Bildpuffers für Ansicht i, das im Rechteck von Eingang 0 im normierten Intermediate-Koordinatensystem liegt wird Phase 2d) ausgeführt.Since v 0 = 1, there is an input view j = 0. From the configuration (phase 1a) view 0 can be assigned the intermediate view i = 0. This is contained in list L, so the rasterization is performed: for each pixel p i , the intermediate image buffer for view i, which lies in the rectangle of input 0 in the normalized intermediate coordinate system, phase 2d) is executed.

d) e = 0, Pixel pi d) e = 0, pixel p i

Für das Pixel werden die zugehörigen Eingabe-Koordinaten ausgerechnet. Dies erfolgt über eine lineare Abbildung, welche den normierten Intermediate-Koordinaten normierte Eingabe-Pixelkoordinaten zuweist, derart, dass die gegebenen Eckpunkte des Rechtecks im Intermediate-Koordinatensystem auf die Eckpunkte des Eingabebildes (0, 0), (1, 0), (1, 1), (1, 0) abgebildet werden. Dies lässt sich mathematisch mit den affinen Abbildungen Skalierung, Spiegelung und Translation erreichen. Im Beispiel ergibt sich für den Eingang 0 die Einheits-Transformation.For the pixel, the corresponding input coordinates are calculated. This is done via a linear mapping which assigns normalized input pixel coordinates to the normalized intermediate coordinates, such that the given vertices of the rectangle in the intermediate coordinate system correspond to the vertices of the input image (0, 0), (1, 0), (1 , 1), (1, 0). This can be achieved mathematically with the affine mappings scaling, mirroring and translation. In the example, the unit transformation results for input 0.

Hier wird beispielhaft die Vorgehensweise für das Pixel pi mit den normierten Intermediate-Koordinaten (0.5, 0.5), also der Bildmitte gewählt. Es ergibt sich C = (0.5, 0.5). D0 = mono, also müssen die decode-Funktionen des monoskopischen Bildformats angewandt werden, decode1mono beschreibt ein gewöhnliches bilineares Filtern in der 2×2-Nachbarschaft von C. F ergibt sich damit als der bilinear gefilterte Bildinhalt des Eingabe-Bildpuffers 0 an den Koordinaten C, decode2mono beschreibt eine Einheitsabbildung, so dass F' = F gilt. Schließlich wird der Farbwert des Pixels pi des Intermediate-Bildpuffers der Ansicht i = 0 auf F' gesetzt.Here, by way of example, the procedure for the pixel p i with the normalized intermediate coordinates (0.5, 0.5), ie the center of the image, is selected. The result is C = (0.5, 0.5). D 0 = mono, so the decode functions of the monoscopic image format must be used, decode1 mono describes ordinary bilinear filtering in the 2 × 2 neighborhood of C. Thus F results in the bilinear filtered image content of the input frame buffer 0 to the Coordinates C, decode2 mono describes a unit map such that F '= F. Finally, the color value of the pixel p i of the intermediate image buffer of the view i = 0 is set to F '.

Die Phase 2d) wird für jedes weitere der 3840×2160 Pixel des Rechtecks im Intermediate-Bildpuffer durchgeführt, damit ergibt sich eine (verzerrend) skalierte, bilinear gefilterte Kopie des Eingabebildes von Eingang 0 im Intermediate-Bildpuffer der Ansicht 0. Da der Eingabe-Ansicht keine weiteren Intermediate-Ansichten mehr zugeordnet sind, ist Phase 2c) für Eingang 0 ebenfalls angeschlossen, es folgt die Ausführung von Phase 2c) und d) für Eingang e = 1.Phase 2d) is performed for each additional one of the 3840 × 2160 pixels of the rectangle in the intermediate frame buffer, resulting in a (distorted) scaled, bilinear filtered copy of the input image of input 0 in the intermediate image buffer of view 0. If no more intermediate views are assigned, phase 2c) is also connected for input 0, followed by the execution of phase 2c) and d) for input e = 1.

c) e = 1 c) e = 1

Die Ausführung unterscheidet sich von der schon geschilderten Ausführung für e = 0 nur dadurch, dass nun in Intermediate-Ansicht i = 1 rasterisiert wird. Die Intermediate-Bildpuffer enthalten nun das komplette stereoskopische Signal der Workstation, aber noch nicht den Bild-In-Bild-Anteil des Notebooks. Es folgt die Ausführung von Phase 2c) und d) für Eingang e = 2.The execution differs from the already described execution for e = 0 only in that now in the intermediate view i = 1 is rasterized. The intermediate image buffers now contain the complete stereoscopic signal of the workstation, but not yet the picture-in-picture portion of the notebook. This is followed by the execution of phase 2c) and d) for input e = 2.

c) e = 2c) e = 2

Da v2 = 2 gilt, gibt es die beiden Eingabe-Ansichten 0 und 1. Zunächst wird daher die Ansicht j = 0 verarbeitet. Aus der Konfiguration (Phase 1a) kann Eingabe-Ansicht 0 die Intermediate-Ansicht i = 0 zugeordnet werden. Diese ist in der Liste L enthalten, also wird die Rasterisierung durchgeführt: Für jedes Pixel pi, des Intermediate-Bildpuffers für Ansicht i, das im Rechteck von Eingang 0 im normierten Intermediate-Koordinatensystem liegt, wird Phase 2d) ausgeführt.Since v 2 = 2, there are two input views, 0 and 1. Therefore, the view j = 0 is processed first. From the configuration (phase 1a) input view 0 can be assigned the intermediate view i = 0. This is included in the list L, so the rasterization is done: for each pixel p i , of the intermediate image buffer for view i, which is in the rectangle of input 0 in the normalized intermediate coordinate system, phase 2d) is executed.

d) e = 2, j = 0, i = 0, Pixel pi d) e = 2, j = 0, i = 0, pixel p i

Das Rechteck (0.5, 0.75), (1.0, 0.75), (1.0, 1.0), (0.5, 1.0) wird auf die normierten Eingangskoordinaten (0, 0), (1, 0), (1, 1), (1, 0). Diese Abbildung lässt sich durch eine horizontale Skalierung um den Faktor 2 und eine vertikale Skalierung um den Faktor 4 sowie eine anschließende Verschiebung um (–1, –3) realisieren.The rectangle (0.5, 0.75), (1.0, 0.75), (1.0, 1.0), (0.5, 1.0) is applied to the normalized input coordinates (0, 0), (1, 0), (1, 1), (1 , 0). This figure can be realized by a factor of 2 by a horizontal scaling and by a factor of 4 by a vertical scaling and a subsequent shift by (-1, -3).

Hier wird beispielhaft die Vorgehensweise für das Pixel pi mit den normierten Intermediate-Koordinaten (0.75, 0.875) (Mitte des Rechtecks) gewählt. Es ergibt sich C = (0.5, 0.5). D2 = ilh, also müssen die decode-Funktionen des zeilenweisen Interlace-Bildformats angewandt werden: C'x = nearest(0.5, 1024) = 511.5/1024 fx = factor(0.5, 1024) = 0.5 hy = (0.5·768 + 0 – 0.5)/2 = 191.75 C'y = (floor(191.75)·2 – 0 + 0.5)/768 = 382.5/768 fy = (0.5 – 382.5/768)/(2·(1/768)) = 0.75 Here, the procedure for the pixel p i with the normalized intermediate coordinates (0.75, 0.875) (center of the rectangle) is chosen by way of example. The result is C = (0.5, 0.5). D 2 = ilh, so the decode functions of the line by line interlace image format must be applied: C ' x = nearest (0.5, 1024) = 511.5 / 1024 f x = factor (0.5, 1024) = 0.5 h y = (0.5 · 768 + 0 - 0.5) / 2 = 191.75 C' y = (floor (191.75) · 2 - 0 + 0.5) / 768 = 382.5 / 768 f y = (0.5 - 382.5 / 768) / (2 · (1/768)) = 0.75

Der besseren Nachvollziehbarkeit halber werden hier die den normalisierten Koordinaten x entsprechenden Pixelkoordinaten x' angegeben:
x'1 = (511, 382), x'2 = (512, 382), x'3 = (511, 384), x'4 = (512, 384).
For better traceability, the pixel coordinates x 'corresponding to the normalized coordinates x are indicated here:
x ' 1 = (511, 382), x' 2 = (512, 382), x ' 3 = (511, 384), x' 4 = (512, 384).

Auf Grund der Eingabe-Ansicht j = 0 wurden nur Pixel in Zeilen mit geraden Nummern ausgewählt. Die Funktion decode1ilh liefert also die bilineare Interpolation der Farbwerte dieser Pixel mit den Interpolationsfaktoren f = (0.5, 0.75), und decode2ilh modifiziert den Farbwert nicht.Due to the input view j = 0, only pixels in even-numbered rows were selected. The function decode1 ilh thus provides the bilinear interpolation of the color values of these pixels with the interpolation factors f = (0.5, 0.75), and decode2 ilh does not modify the color value.

Die Phase 2d) wird für jedes weitere Pixel des Rechtecks im Intermediate-Bildpuffer durchgeführt. Durch die Dekodierungsfunktion werden nur die geradzahligen Zeilen des Eingabepuffers von Eingang 2 gesampelt. Da der Eingabe-Ansicht keine weiteren Intermediate-Ansichten mehr zugeordnet sind, wird Phase 2c) mit der Eingabe-Ansicht j = 1 für Eingang 2 fortgesetzt.Phase 2d) is performed for each additional pixel of the rectangle in the intermediate frame buffer. The decoding function only samples the even-numbered lines of input 2 input buffer. Since no more intermediate views are assigned to the input view, phase 2c) continues with input view j = 1 for input 2.

c) e = 2 (Fortsetzung)c) e = 2 (continued)

Der Eingabe-Ansicht j = 1 ist die Intermediate-Ansicht i = 1 zugeordnet, welche ebenfalls in L enthalten ist. Es wird somit das Rechteck in die Ansicht i rasterisiert und pro Pixel wieder Phase 2d) ausgeführt.The input view j = 1 is assigned the intermediate view i = 1, which is also contained in L. Thus, the rectangle is rasterized into the view i, and phase 2d) is executed again per pixel.

d) e = 2, j = 1, i = 1, Pixel pi d) e = 2, j = 1, i = 1, pixel p i

Auf Grund des geänderten Parameters j unterscheiden sich die Ergebnisse vom Durchlauf der Phase 2d) in der vorherigen Ansicht. Für das Beispielpixel pi an den Koordinaten C = (0.5, 0.5) gilt nun: C'x = nearest(0.5, 1024) = 511.5/1024 fx = factor(0.5, 1024) = 0.5 hy = (0.5·768 + 1 – 0.5)/2 = 192.25 C'y = (floor(192.25)·2 – 1 + 0.5)/768 = 383.5/768 fy = (0.5 – 383.5/768)/(2·(1/768)) = 0.25 x'1 = (511, 383), x'2 = (512, 383), x'3 = (511, 385), x'4 = (512, 385). Due to the changed parameter j, the results differ from the execution of phase 2d) in the previous view. For the example pixel p i at the coordinates C = (0.5, 0.5) we now have: C ' x = nearest (0.5, 1024) = 511.5 / 1024 f x = factor (0.5, 1024) = 0.5 h y = (0.5 · 768 + 1 - 0.5) / 2 = 192.25 C' y = (floor (192.25) · 2 - 1 + 0.5) / 768 = 383.5 / 768 f y = (0.5 - 383.5 / 768) / (2 · (1/768)) = 0.25 x ' 1 = (511, 383), x' 2 = ( 512, 383), x ' 3 = (511, 385), x' 4 = (512, 385).

Auf Grund der Eingabe-Ansicht j = 1 wurden nur Pixel in Zeilen mit ungeraden Nummern ausgewählt. Die Funktion decode1ilh liefert also die bilineare Interpolation der Farbwerte dieser Pixel mit den Interpolationsfaktoren f = (0.5, 0.25), und decode2ilh modifiziert den Farbwert nicht. Due to the input view j = 1, only pixels in odd-numbered lines were selected. The function decode1 ilh thus provides the bilinear interpolation of the color values of these pixels with the interpolation factors f = (0.5, 0.25), and decode2 ilh does not modify the color value.

Die Phase 2d) wird für jedes weitere Pixel des Rechtecks im Intermediate-Bildpuffer durchgeführt. Durch die Dekodierungsfunktion werden nur die ungeraden Zeilen des Eingabepuffers von Eingang 2 gesampelt. Da der Eingabe-Ansicht keine weiteren Intermediate-Ansichten mehr zugeordnet sind, und alle v2 = 2 Eingabe-Ansichten abgearbeitet wurden, ist die Ausführung für Eingang e = 2 abgeschlossen.Phase 2d) is performed for each additional pixel of the rectangle in the intermediate frame buffer. The decoding function only samples the odd lines of Input 2 input buffer. Since no more intermediate views have been assigned to the input view and all v 2 = 2 input views have been processed, the execution for input e = 2 is completed.

Die Intermediate-Bildpuffer jeder Ansicht enthalten nun das auf Puffergröße skalierte Eingangsbild der Eingänge 0 und 1 sowie als Bild-in-Bild in der rechten oberen Ecke das Eingabe-Bild von Eingang 2, wobei in Intermediate-Ansicht 0 nur Pixel mit gerader Zeilennummer und in Intermediate-Ansicht 1 nur Pixel mit ungerader Zeilennummer des Eingangs 2 verarbeitet wurden, d. h. das Stereosignal wurde dekodiert. Für die Illustration des Verfahrens spielt es dabei keine Rolle, dass der Eingabe-Bildpuffer von Eingang 2 zu diesem Zeitpunkt noch die Initialwerte enthält, da noch kein Eingabebild an diesem Eingang anlag. Es ist offensichtlich, dass das soeben beschriebene Vorgehen zum gewünschten Resultat führt, wenn sichergestellt ist, dass der Eingabepuffer die korrekten Bildinformationen enthält. Da Eingang 2 eine eigene Synchronisationsgruppe bildet, führt das in Verfahren in Phase 2a) und 2b) dazu, dass mit Verfügbarkeit neuer Bilddaten an Eingang 2 auch der zugehörige Eingabe-Bildpuffer aktualisiert wird und in den Phase 2c) und 2d) auch die tatsächlichen Bildinhalte weiterverarbeitet werden.The intermediate image buffers of each view now contain the input image of inputs 0 and 1 scaled to buffer size, and the input image of input 2 as picture-in-picture in the upper right corner, whereas in intermediate view 0 only pixels with even line number and In Intermediate view 1, only pixels with odd row number of input 2 have been processed, i. H. the stereo signal was decoded. For the illustration of the method it does not matter that the input frame buffer of input 2 still contains the initial values at this time, since no input picture was present at this input. It is obvious that the procedure just described leads to the desired result if it is ensured that the input buffer contains the correct image information. Since input 2 forms its own synchronization group, this results in processes in phase 2a) and 2b) that with the availability of new image data at input 2 and the associated input image buffer is updated and in phase 2c) and 2d), the actual image content be further processed.

Da es keine weiteren Eingänge mehr gibt, wird nun Phase 3) durchgeführt.Since there are no more inputs, phase 3) is now performed.

Phase 3)Phase 3)

a)a)

Die Phase 3a) beschreibt die Iteration über alle A Ausgänge. Es sei daher zunächst a = 0. Für jedes Pixel pa des Ausgabe-Bildpuffers von Ausgang a wird das in Phase 3b) beschriebene Verfahren durchgeführt.Phase 3a) describes the iteration over all A outputs. Therefore, let a = 0 initially. For each pixel p a of the output image buffer of output a, the method described in phase 3b) is carried out.

b) a = 0, pa b) a = 0, p a

Beispielhaft soll das Verfahren hier für ein Pixel nahe am linken unteren Rand mit den Koordinaten O = (10, 0) durchgeführt werden. Da Ga = cb in der Konfiguration gewählt wurde, werden nun die encodecb-Funktionen zur Ausgabe-Kodierung verwendet. Dieses Format definiert die Geräte-Pixelkoordinaten identisch zu den Ausgabe-Pixelkoordinaten, d. h.: T = encode1cb(O, 0) = (10, 0).By way of example, the method is to be carried out here for a pixel close to the lower left margin with the coordinates O = (10, 0). Since G a = cb was chosen in the configuration, the encode cb functions are now used for output encoding. This format defines the device pixel coordinates as identical to the output pixel coordinates, ie: T = encode1 cb (0, 0) = (10, 0).

Nun werden diese Gerätekoordinaten in das Intermediate-Koordinatensystem abgebildet. Diese Abbildung liefert das Kalibrierverfahren. Beispielhaft liefere das Kalibrierverfahren U = warpa(T, βa) = (0.01, 0.42), d. h. die linke untere Ecke von Projektor 0 liegt etwas unterhalb der Mitte am linken Rand der Bildfläche. Weiterhin wird angenommen, dass das Kalibrierverfahren Soft-Edge-Blending über einen positionsabhängigen Blendfaktor realisiert wird. Der Parametervektor α enthalte diesen Blendfaktor. Da beim Soft-Edge-Blending ein weicher Übergang realisiert werden soll, und sich das aktuelle Ausgabepixel am Rand des Projektors im Überlappungsbereich befindet, wird hier α = parama(T, βa) = 0.01 angenommen.Now these device coordinates are mapped into the intermediate coordinate system. This figure provides the calibration procedure. By way of example, the calibration method U = warp a (T, β a ) = (0.01, 0.42), ie the lower left corner of Projector 0 is located slightly below the center at the left edge of the image area. Furthermore, it is assumed that the calibration method soft-edge blending is realized via a position-dependent glare factor. The parameter vector α contains this glare factor. Since a smooth transition is to be realized in soft edge blending, and the current output pixel is located in the overlap area at the edge of the projector, here α = param a (T, β a ) = 0.01 is assumed.

Zunächst werden alle Intermediate-Ansichten bestimmt, die in diesem Ausgabepixel kodiert werden müssen. K = encode2cb(O, 0) = {0}. Mit Hilfe der Liste W0 kann nun für jede Ausgabe-Ansicht j die Intermediate-Ansicht zugeordnet werden.First, all intermediate views are determined that must be encoded in this output pixel. K = encode2 cb (O, 0) = {0}. Using list W 0 , the intermediate view can now be assigned to each output view j.

Bei der Checkerboard-Kodierung wird pro Pixel jeweils eine Ansicht kodiert, für das Ausgabe-Pixel an O = (10, 0) gilt j = 0 und gemäß W0 auch i = 0. Es wird der Intermediate-Bildpuffer für Ansicht i = 0 an den Koordinaten U = (0.01, 0.42) mit bilinearem Filter gesampelt. Der resultierende RGB-Farbvektor wird als Z0 gespeichert. Da nun alle Ansichten verarbeitet wurden, folgt die Durchführung von Phase 3c)In checkerboard coding, one view is coded per pixel, for the output pixel at O = (10, 0), j = 0 and, according to W 0, also i = 0. The intermediate image buffer for view i = 0 at the coordinates U = (0.01, 0.42) sampled with bilinear filter. The resulting RGB color vector is stored as Z 0 . Since all views have been processed, the execution of phase 3c follows)

c) a = 0, pa für O = (10, 0) und K = {0}c) a = 0, p a for O = (10, 0) and K = {0}

Der Farbwert Z ergibt sich aus encode3cb(O, 0, Z0) = Z0, d. h. der Farbwert wird unverändert übernommen. Schließlich folgt die Anpassung des Farbwerts durch das Kalibrierverfahren, welches in diesem Schritt die Angleichung von Helligkeiten, das Blending sowie die farbraumspezifischen Umrechnungen anhand der zuvor ermittelten Kalibrierparameter vornimmt: Z' = colora(Z, α, βa). Z' ist damit der Farbwert, der an den Projektor a geschickt werden muss, damit auf der Projektionsfläche der gewünschte Farbwert Z bzw. in Überlappungsbereichen der Anteil des Projektors a am gewünschten Farbwert Z entsteht. Daher wird das Ausgabe-Pixel pa auf den Farbwert Z' gesetzt.The color value Z results from encode3cb (O, 0, Z 0 ) = Z 0 , ie the color value is adopted unchanged. Finally, the color value is adapted by the calibration method, which in this step performs the adjustment of brightness, blending and the color space-specific conversions on the basis of the previously determined calibration parameters: Z '= color a (Z, α, β a ). Z 'is thus the color value that has to be sent to the projector a so that the desired color value Z or, in overlapping areas, the proportion of the projector a at the desired color value Z is produced on the projection surface. Therefore, the output pixel p a is set to the color value Z '.

Pixel pa ist aktualisiert und in Phase 3b) wird zum nächsten Pixel übergegangen. An den Koordinaten O = (11, 0) gilt encode2cb(O, 0) = {1}, daher wird hier der Intermediate-Bildpuffer für Ansicht i = 1, der der Ausgabe-Ansicht j = 1 zugeordnet ist, gesampelt.Pixel p a is updated and in step 3b) the next pixel is transitioned. At the coordinates O = (11, 0) encode2 cb (O, 0) = {1}, so here the intermediate image buffer for view i = 1, which is assigned to the output view j = 1, is sampled.

Nach Iteration über alle Pixel des Ausgabe-Bildpuffers des Ausgangs a = 0 ist die gewünschte schachbrettartige Kodierung der Intermediate-Ansichten entstanden.After iterating over all pixels of the output image buffer of the output a = 0, the desired checkerboard coding of the intermediate views has been created.

Das Verfahren wird also in Phase 3a) mit dem nächsten Ausgang a = 1 fortgeführt. Dabei unterscheidet sich dieser Ablauf nur dadurch vom Ausgang 0, dass die Kalibrierfunktionen andere Parameter liefern und somit der für den jeweiligen Projektor passende Bildausschnitt erzeugt wird. Auf weitere Erläuterungen für die Ausgänge 1 bis 3 wird daher hier verzichtet.The process is therefore continued in phase 3a) with the next output a = 1. In this case, this process differs from output 0 only in that the calibration functions supply other parameters and thus the image detail suitable for the respective projector is generated. Further explanations for the outputs 1 to 3 are therefore omitted here.

Mit Abschluss der Phase 3 stellen alle Projektoren die stereoskopischen Bildinhalte dar. Das Verfahren beginnt erneut mit Phase 2a), so dass neue Bilddaten fortlaufend verarbeitet werden. illustriert den Datenfluss während des Verfahrens.Upon completion of Phase 3, all projectors will display the stereoscopic image content. The process will begin again with Phase 2a), so that new image data will be processed continuously. illustrates the data flow during the procedure.

Literaturverzeichnisbibliography

  • [1] R. Y. Yang, D. Gotz, J. Hensley, H. Towles und M. S. Brown, „PixelFlex: a reconfigurable multi-projector display system,” in Proceedings of the conference on Visualization '01, San Diego, California, 2001.[1] R. Y. Yang, D. Gotz, J. Hensley, H. Towles, and M.S. Brown, "PixelFlex: a reconfigurable multi-projector display system," in Proceedings of the Conference on Visualization, 01, San Diego, California, 2001.
  • [2] H. Chen, S. Rahul, G. Wallace und K. Li, „Scalable alignment of large-format multi-projector displays using camera homography trees.,” in Proceedings of the conference on Visualization '02 (VIS '02)., Washington, DC, USA, 2002.[2] H. Chen, S. Rahul, G. Wallace, and K. Li, "Scalable alignment of large-format multi-projector displays using camera homography trees." In Proceedings of the conference on Visualization '02 (VIS '02 ), Washington, DC, USA, 2002.
  • [3] A. Majumder und R. Stevens, „Color nonuniformity in projection-based displays: analysis and solutions,” in IEEE Transactions on Visualization and Computer Graphics, 2004.[3] A. Majumder and R. Stevens, "Color nonuniformity in projection-based displays: analysis and solutions," in IEEE Transactions on Visualization and Computer Graphics, 2004.
  • [4] R. Raskar, M. S. Brown, R. Yang, W.-C. Chen, G. Welch, H. Towles, B. Seales und H. Fuchs, „Multi-projector displays using camera-based registration,” in Proceedings of the conference on Visualization '99: celebrating ten years (VIS '99), Los Alamitos, CA, USA, 1999.[4] R. Raskar, M.S. Brown, R. Yang, W.-C. Chen, G. Welch, H. Towles, B. Seales and H. Fuchs, "Multi-projector displays using camera-based registration," in Proceedings of the conference on Visualization '99: celebrating ten years (VIS '99), lot Alamitos, CA, USA, 1999.
  • [5] C. O. Jaynes und S. B. Webb, „Multi-Projector Intensity Blending System”. Patent US2007188719 , 2007.[5] CO Jaynes and SB Webb, "Multi-Projector Intensity Blending System". patent US2007188719 , 2007.
  • [6] A. W. Divelbiss und W. V. Tserkovnyuk, „General Purpose Stereoscopic 3D Format Conversion System and Mehod”. US Patent US20040218269 , 2004.[6] AW Divelbiss and WV Tserkovnyuk, "General Purpose Stereoscopic 3D Format Conversion System and Mehod". US patent US20040218269 , 2004.
  • [7] M. J. Johnson, R. Chandrarasekhar und C.-J. Chef, „Super-Resolution Display”. Patent US6456339 / WO0007376 , 2001.[7] MJ Johnson, R. Chandrarasekhar and C.-J. Boss, "Super-Resolution Display". patent US6456339 / WO0007376 , 2001.
  • [8] M. Schiewe und S. Klose, „Kalibrierungsverfahren und Kalibrierungssystem”. Patent DE10 2006 002 602 / US2009067749 / WO2007082690 / EP1972134 , 2006.[8] M. Schiewe and S. Klose, "Calibration Method and Calibration System". patent DE10 2006 002 602 / US2009067749 / WO2007082690 / EP1972134 , 2006.
  • [9] R. J. Surati und K. T. F. Jr., „Method and Apparatus for Calibrating a Tiled Display”. Patent EP1116386 / WO0018139 / DE69917470 / US6525772 / US6310650 .[9] RJ Surati and KTF Jr., "Method and Apparatus for Calibrating a Tiled Display." patent EP1116386 / WO0018139 / DE69917470 / US6525772 / US6310650 ,
  • [10] T. A. Barrett und B. Crosby, „Method and apparatus for providing for the display of video content”. Patent WO2011084169 , 2011.[10] TA Barrett and B. Crosby, "Method and apparatus for providing the display of video content". patent WO2011084169 , 2011.

Claims (10)

Ein Verfahren zur Aufbereitung monoskopischer, stereoskopischer oder Multiview-Bildsignale, das Bilddaten von ein oder mehreren Eingängen für die Ausgabe an einem oder mehreren Ausgängen so verarbeitet, dass Bildmodifikationen zur Farb- und Geometriekalibrierung in Form von Kalibrierparametern für jeden Ausgang in Echtzeit auf die Eingabedaten angewendet werden, damit die berechneten ein oder mehreren Ausgangssignale zur Ansteuerung von stereoskopischen oder Multiview-fähigen Mehrsegment-Projektionsanlagen eingesetzt werden können, wobei ein separate Teilschritte aufweisendes Kalibrierverfahren verwendet wird und wobei jedes Eingangssignal jeweils aus einer oder mehreren Ansichten besteht, die in unterschiedlichen Formaten zu einem Gesamtbild verknüpft wurden, und die entstehenden Ausgangssignale ebenfalls eine oder mehrere Ansichten enthalten, die wiederum in einem bestimmten, vom Format der Eingänge unabhängigen, Format zu einem Gesamtbild verknüpft werden und die Erzeugung der Ausgangssignale dabei durch Dekodieren der Eingabesignale zur Trennung der Ansichten und der Kombination der Anwendung der Kalibrierparameter mit der Kodierung der Ansichten in das erforderliche Ausgabe-Format derart erfolgt, so dass lediglich die tatsächlich das Ausgabesignal beinflussenden Eingabepixel überhaupt alle Kalibrierungsteilschritte durchlaufen müssen und die Berechnung der geometrischen Verzerrung sowie Ermittlung pixelspezifischer positionsabhängiger aber farbunabhängiger Kalibrierparameter nur einmalig für eine Ausgabepixelposition durchgeführt wird, auch wenn mehrere Ansichten das Ausgabesignal an dieser Position beeinflussen.A method of rendering monoscopic, stereoscopic or multiview image signals that processes image data from one or more inputs for output at one or more outputs such that image modifications for color and geometry calibration in the form of calibration parameters for each output are applied to the input data in real time be used so that the calculated one or more output signals for driving stereoscopic or multiview-capable multi-segment projection systems, using a separate partial steps calibration method is used and wherein each input signal each consists of one or more views in different formats to a The resulting output signals also contain one or more views, which in turn are linked in a particular, independent of the format of the inputs, format to an overall image and the generation the output signals in this case by decoding the input signals to separate the views and the combination of the application of the calibration parameters with the coding of the views in the required output format such that only the actually affecting the output signal input pixels must pass through all calibration steps and the calculation of the geometric distortion and determination of pixel specific position-dependent but color-independent calibration parameter is performed only once for an output pixel position, even if multiple views affect the output signal at this position. Ein Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Kalibrierverfahren die separaten Teilschritte für „geometrische Anpassung”, „Berechnung positionsabhängiger aber farbunabhängiger Parameter” sowie „Anpassung der Farben” umfasst, und ein Verfahren zur Kodierung von mehreren Ansichten zu einem Gesamtbild in separate Teilschritte für „Ermittlung der Gerätekoordinaten in Abhängigkeit der Ausgabepixelposition”, „Ermittlung der notwendigen Ansichten in Abhängigkeit der Ausgabepixelposition” sowie „Kombination der Farbwerte mehrerer Ansichten” zerlegt wird, so dass die Kodierungsschritte „Ermittlung der Gerätekoordinaten”, „Ermittlung der Ansichten” und die Kalibrierungsschritte „Geometrische Anpassung” und „Berechnung positionsabhängiger aber farbunabhängiger Parameter” für eine gegebene Ausgabepixelposition nur einmalig ausgeführt werden, auch wenn für diese Ausgabepixelposition die Daten mehrerer Ansichten verarbeitet werden müssen, und auch nur für die tatsächlich das Ausgabesignal an dieser Stelle beinflussenden Ansichten überhaupt die Kalibrierung und Formatkodierung durchgeführt wird.A method according to claim 1, characterized in that the calibration method comprises the separate sub-steps for "geometrical adaptation", "calculation of position-dependent but color-independent parameters" and "adjustment of colors", and a method for encoding of multiple views into an overall image in separate sub-steps for "determining the device coordinates depending on the output pixel position", "determining the necessary views depending on the output pixel position" as well as "combining the color values of several views", so that the coding steps "determination of the device coordinates", "determination of the views" and the calibration steps "Geometric Fit" and "calculate position dependent but color independent parameters" for a given output pixel position will only be executed once, even if the data of several views is processed for that output pixel position n, and even for the actual output signals at this point influencing views at all the calibration and format encoding is performed. Ein Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Dekodierung der Eingabebilddaten in mehrere Ansichten in separate Teilschritte für „Sampling des Farbwertes in Abhängigkeit von Pixelposition und Ansicht” sowie „Modifikation des Farbwerts in Abhängigkeit der Ansicht” zerlegt wird, so dass eine Vielzahl unterschiedlicher Bildformate für die Eingabedaten als auch die Ausgabedaten sowie unterschiedliche Verfahren zur Anwendung von Kalibrierparametern auf Bildinhalte unterstützt werden, indem die einzelnen in Anspruch 2 und 3 genannten Teilschritte für das jeweilige Bildformat bzw. Kalibrierverfahren definiert werden, so dass jedem Eingang unabhängig von den anderen Eingängen ein Dekodierverfahren und jedem Ausgang unabhängig von den anderen Ausgängen ein Kalibrier- und Kodierverfahren zugeordnet werden kann.A method according to claim 2, characterized in that the decoding of the input image data into several views is broken down into separate sub-steps for "sampling the color value as a function of pixel position and view" and "modifying the color value as a function of the view", such that a multiplicity of different Image formats for the input data as well as the output data as well as different methods for applying calibration parameters to image contents are supported by defining the individual sub-steps mentioned in claims 2 and 3 for the respective image format or calibration method, so that each input is independent of the other inputs Decoding and each output independently of the other outputs a calibration and coding can be assigned. Eine Vorrichtung zur Ansteuerung von stereoskopischen oder Multiview-fähigen Mehrsegment-Projektionsanlagen, welche Farb- und Geometriekalibrierungsverfahren unter Zuhilfenahme von für jeden Ausgang vorliegenden Kalibrierparametern in Echtzeit auf ein oder mehrere Eingangssignale anwendet und an ein oder mehreren Ausgängen ausgibt, wobei ein mehrere Teilschritte aufweisendes Kalibrierverfahren verwendet wird und wobei jedes Eingangssignal aus einer oder mehreren Ansichten besteht, die in unterschiedlichen Formaten zu einem Gesamtbild verknüpft wurden, und die entstehenden Ausgangssignale ebenfalls eine oder mehrere Ansichten enthalten, die wiederum in einem bestimmten, vom Format der Eingänge unabhängigen, Format zu einem Gesamtbild verknüpft werden und die Erzeugung der Ausgangssignale dabei durch Dekodieren der Eingabesignale zur Trennung der Ansichten und der Kombination der Anwendung der Kalibrierparameter mit der Kodierung der Ansichten in das erforderliche Ausgabe-Format derart erfolgt, so dass lediglich die tatsächlich das Ausgabesignal beinflussenden Eingabepixel überhaupt alle Kalibrierungsteilschritte durchlaufen müssen und die Berechnung der geometrischen Verzerrung sowie Ermittlung pixelspezifischer positionsabhängiger aber farbunabhängiger Kalibrierparameter nur einmalig für eine Ausgabepixelposition durchgeführt wird, auch wenn mehrere Ansichten das Ausgabesignal an dieser Position beeinflussen.A device for driving stereoscopic or multiview capable multisegment projection equipment that applies color and geometry calibration techniques in real time to one or more input signals using calibration parameters provided for each output, and outputs to one or more outputs using a multi-part calibration method and wherein each input signal consists of one or more views which have been combined in different formats into one overall image, and the resulting output signals also contain one or more views, which in turn combine into an overall image in a specific format independent of the format of the inputs and the generation of the output signals by decoding the input signals to separate the views and the combination of the application of the calibration parameters with the coding of the views in the required output format d erart takes place so that only the input pixels actually influencing the output signal have to pass through all the calibration steps and the calculation of the geometric distortion and determination of pixel-specific position-dependent but color-independent calibration parameters is performed only once for an output pixel position, even if several views influence the output signal at this position. Eine Vorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass eine oder mehrere Rechenanlagen mit je einer oder mehreren Grafikkarten mit jeweils einem oder mehreren Ausgängen verwendet wird und die Dekodierung der Eingangssignale zur Trennung der Ansichten sowie die Kodierung des Ausgabesignals und die Farbanpassung des Kalibrierverfahrens mittels Vertex- und Fragmentshadern umgesetzt wird.An apparatus according to claim 4, characterized in that one or more computers with one or more graphics cards each having one or more outputs is used and the decoding of the input signals for separating the views and the coding of the output signal and the color adjustment of the calibration by means of vertex and fragmentation shades is implemented. Eine Vorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass ein oder mehrere Videograbber mit jeweils einem oder mehreren Eingängen zur Entgegennahme von Videosignalen verwendet werden.An apparatus according to claim 5, characterized in that one or more video grabbers are used, each with one or more inputs for receiving video signals. Eine Vorrichtung nach einem der Ansprüche 5 oder 6, dadurch gekennzeichnet, dass mehrere Rechenanlagen in einem Netzwerk verbunden werden und die Eingangsbilddaten oder Teile der Eingangsbilddaten zwischen den Rechenanlagen im Netzwerk ausgetauscht werden.A device according to one of claims 5 or 6, characterized in that a plurality of computer systems are connected in a network and the input image data or parts of the input image data are exchanged between the computer systems in the network. Eine Vorrichtung nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, dass als Ausgabebildpuffer ein Framebuffer bestehend aus mehreren Bildpuffern, jeweils einer pro Ansicht, verwendet werden, und im Fragmentshader der Farbwert für jede der Ansichten berechnet und in den jeweiligen Bildpuffer geschrieben wird.A device according to one of claims 5 to 7, characterized in that a framebuffer consisting of several image buffers, one per view, are used as the output image buffer, and in the fragment shader the color value for each of the views is calculated and written into the respective image buffer. Eine Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass als Ausgabebildpuffer ein stereoskopischer („Quadbuffered”) Framebuffer mit je einem Color Buffer für das linke und das rechte Auge verwendet wird.An apparatus according to claim 8, characterized in that the output image buffer is a stereoscopic ("quad buffered") frame buffer, each with a color buffer for the left and the right eye is used. Eine Vorrichtung nach einem der Ansprüche 4 bis 9, dadurch gekennzeichnet, dass mehrere Sätze von Konfigurationsdaten und Kalibrierparametern gespeichert und jederzeit zwischen diesen umgeschaltet werden kann, so dass die Konfiguration der Mehrsegment-Projektionsanlage dynamisch an Veränderungen angepasst werden kann. A device according to any one of claims 4 to 9, characterized in that a plurality of sets of configuration data and calibration parameters can be stored and switched at any time between them, so that the configuration of the multi-segment projection system can be adapted dynamically to changes.
DE201210002442 2012-02-06 2012-02-06 Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter Active DE102012002442B3 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201210002442 DE102012002442B3 (en) 2012-02-06 2012-02-06 Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201210002442 DE102012002442B3 (en) 2012-02-06 2012-02-06 Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter

Publications (1)

Publication Number Publication Date
DE102012002442B3 true DE102012002442B3 (en) 2013-07-25

Family

ID=48742577

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201210002442 Active DE102012002442B3 (en) 2012-02-06 2012-02-06 Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter

Country Status (1)

Country Link
DE (1) DE102012002442B3 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103760973A (en) * 2013-12-18 2014-04-30 微软公司 Reality-enhancing information detail

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040218269A1 (en) * 2002-01-14 2004-11-04 Divelbiss Adam W. General purpose stereoscopic 3D format conversion system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040218269A1 (en) * 2002-01-14 2004-11-04 Divelbiss Adam W. General purpose stereoscopic 3D format conversion system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103760973A (en) * 2013-12-18 2014-04-30 微软公司 Reality-enhancing information detail

Similar Documents

Publication Publication Date Title
DE69733233T2 (en) Image processing for three-dimensional rendering of image data on the display of an image capture device
US7961196B2 (en) Cost effective rendering for 3D displays
DE602004006657T2 (en) Two-dimensional image compatible three-dimensional image display device
DE112005000686T5 (en) Method and system for displaying an image in three dimensions
EP2800350A2 (en) Assembly and method for recording and reproducing images of a scene and/or an object
DE10340089B4 (en) Sweet-spot beam splitter for image separation
WO2011103865A2 (en) Method and autostereoscopic display for producing three-dimensional images
DE102014211612A1 (en) Method and device for generating, storing, transmitting, receiving and reproducing depth maps using the color components of an image that is part of a three-dimensional video stream
WO2015188948A1 (en) Optical free-space transmission
WO2009082990A1 (en) Method and device for real-time multi-view production
CN102790899A (en) Crosstalk cancellation in 3d displays
EP0760145A1 (en) Process for producing spatial-effect images
US10368048B2 (en) Method for the representation of a three-dimensional scene on an auto-stereoscopic monitor
DE102017113227A1 (en) DISPLAY DEVICE AND DISPLAY CONTROL METHOD FOR DISPLAYING IMAGES
WO2018025474A1 (en) Information processing device, information processing method, and program
DE102012002442B3 (en) Method for processing monoscopic, stereoscopic or multiview image signals for e.g. factory planning application, involves performing computation of geometric distortion and determination of color independent-calibration parameter
EP0089611A1 (en) Method and device for producing a stereoscopic effect of the picture reproduced on the screen of a television receiver
DE112010005619T5 (en) Three-dimensional imaging
DE102005036744B4 (en) Method and device for autostereoscopic reproduction of 3D representations
DE602004001225T2 (en) PROCESSING SIGNALS FOR A COLOR EQUENTIAL DISPLAY
WO2010022805A1 (en) Display system
DE19843296A1 (en) Device for generating three-dimensional images
WO2019029985A1 (en) Method for operating an autostereoscopic display device, and autostereoscopic display device
EP2612502B1 (en) Method for representing a plurality of image sequences
EP3907987B1 (en) Method and device for projection of individual images for a plurality of viewers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20131026

R081 Change of applicant/patentee

Owner name: 3DLNSIGHT GMBH, DE

Free format text: FORMER OWNER: 3DINSIGHT GMBH , 09126 CHEMNITZ, DE

Effective date: 20130214

Owner name: 3DLNSIGHT GMBH, DE

Free format text: FORMER OWNER: 3DINSIGHT GMBH, 09112 CHEMNITZ, DE

Effective date: 20140213

Owner name: 3DINSIGHT GMBH, DE

Free format text: FORMER OWNER: 3DINSIGHT GMBH, 09112 CHEMNITZ, DE

Effective date: 20140213

Owner name: 3DINSIGHT GMBH, DE

Free format text: FORMER OWNER: 3DINSIGHT GMBH , 09126 CHEMNITZ, DE

Effective date: 20130214

Owner name: 3DINSIGHT GMBH, DE

Free format text: FORMER OWNER: 3DINSIGHT GMBH, 09131 CHEMNITZ, DE

Effective date: 20140213

R081 Change of applicant/patentee

Owner name: 3DLNSIGHT GMBH, DE

Free format text: FORMER OWNER: 3DINSIGHT GMBH, 09112 CHEMNITZ, DE