DE112015004871T5 - Verfahren zur automatisierten Echtzeit-Konversion von 2D-RGB-Bildern und -Video in stereoskopische Rot-Cyan-3D-Anaglyphen - Google Patents

Verfahren zur automatisierten Echtzeit-Konversion von 2D-RGB-Bildern und -Video in stereoskopische Rot-Cyan-3D-Anaglyphen Download PDF

Info

Publication number
DE112015004871T5
DE112015004871T5 DE112015004871.5T DE112015004871T DE112015004871T5 DE 112015004871 T5 DE112015004871 T5 DE 112015004871T5 DE 112015004871 T DE112015004871 T DE 112015004871T DE 112015004871 T5 DE112015004871 T5 DE 112015004871T5
Authority
DE
Germany
Prior art keywords
image
value
images
stereoscopic
video
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.)
Pending
Application number
DE112015004871.5T
Other languages
English (en)
Inventor
Can Demirbag
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of DE112015004871T5 publication Critical patent/DE112015004871T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/507Depth or shape recovery from shading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/133Equalising the characteristics of different image components, e.g. their average brightness or colour balance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/15Processing image signals for colour aspects of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Bei dem präsentierten 2D-zu-3D-Konversationsverfahren wird eine Reihe von schnell ausführbaren 2D-Bild- oder Pixelprozessierende Operationen verwendet, um flache 2D-RGB-Bilder und -Videos in stereoskopische Rot-Cyan-3D-Anaglyphenbilder und -videos zu transformieren. Die Ausgabe dieses Prozesses kann in stereoskopischem 3D auf jeglichem Farbbildschirm oder Anzeigeeinrichtung unter Verwendung von passiven 3D-Anaglyphenbrillen mit Rot-Linse und Cyan-Linse angesehen werden. Das präsentierte Verfahren ist dafür konzipiert, sowohl in Hardware als 2D-zu-3D-Konversions-Chip als auch als kurzer, schneller, hochgradig parallelisierbarer Echtzeit-Algorithmus zum Einsatz gebracht zu werden, der auf programmierbaren Graphik-Hardware wie einer GPU läuft. Das präsentierte Verfahren wertet visuelle 2D-Inhalte in stereoskopisches 3D auf, verbessert die Helligkeit, Kontrast und Farbe des Inhalts und erhöht auch seine optische Schärfe um bis zu 200%. Sowohl das von dem Verfahren erzeugte linke Augenbild als auch das rechte Augenbild sind „synthetisch“ und digital erzeugt. Das Verfahren liefert, obwohl 3D-Brillen mit gefärbten Linsen verwendet werden, recht genaue Farben.

Description

  • TECHNISCHES GEBIET
  • Das technische Gebiet der Erfindung ist die Konversion von 2D in 3D.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es wird ein kurzes, schnelles, mathematisch relativ einfaches und hochgradig parallelisierbares digitales Verfahren präsentiert, das in automatischer Weise und in Echtzeit erlaubt, 2D-RGB-Bilder und 2D-RGB-Videobilder in stereoskopische Rot-Cyan-3D-Anaglyphen zu konvertieren. Das Verfahren analysiert die Schattierung und Helligkeit eines 2D-Bildes oder -Videobildes und erzeugt während dieser Analyse eine Vielzahl von „Schattierungskarten (Shademaps)“ und „Licht-Densogrammen (Light densograms)“. Die Erzeugung von „Licht-Densogrammen“ ist eine neue Art von Bildverarbeitungsoperation, die einzigartig für das präsentierte 2D-zu-3D-Konversionsverfahren ist. Licht-Densogramme können dazu verwendet werden, um eine Tiefenkarte für die 3D-Konversion zu erzeugen, die Helligkeit und Farben eines Bildes einzustellen, ein Bild zu schärfen oder zu verwischen, um schnelles Anti-Aliasing (Kantenglättung) eines digital geschärften Bildes zu bewirken, Flackern auf Pixel-Level in bewegten Videos zu unterdrücken, wie auch um andere Bild-, Video- oder Datenverarbeitungsanwendungen zu bewirken. Die „Schattierungskarten“ und „Licht-Densogramme“, die durch das hier präsentierte Verfahren erzeugt werden, werden dazu verwendet, um eine „Tiefenkarte“ zu erzeugen, die eingesetzt werden kann, um das flache Eingangsbild oder -Videobild in 3D zu konvertieren. Eine optionale, dreistufige optische Bildschärfungstechnik unter Verwendung von Nachbar-Pixel-Abtastung wird dazu verwendet, um die optische Schärfe des Eingangsbildes oder Eingangs-Videobildes vor der 3D-Konversion signifikant zu steigern, was zu einem stärker feinkörnigen 3D-Ausgabebild führt. 3D-Konversion wird durch Verschieben, Skalieren und Deformieren des Eingangsbildes oder Eingangsvideobildes auf Pixel-Level erreicht, wobei die Tiefenkarte, Schattierungskarten und Licht-Densogramme, die zuvor erzeugt worden sind, verwendet werden, um ein „optisch korrektes“ stereoskopisches 3D-Bild zu „modellieren“ oder zu „formen“, das aus einem synthetischen linken Augenbild und einem synthetischen rechten Augenbild besteht. Eine Anzahl von Helligkeits- und Farbkorrekturoperationen stellt sicher, dass das durch das Verfahren erzeugte stereoskopische 3D-Ausgabebild durch Rot-Cyan-3D-Anaglyphenbrillen so gut wie möglich aussieht, mit guter Helligkeit, gutem Kontrast und guter Farbreproduktion.
  • HINTERGRUND
  • Sowohl Video- und Spielfilminhalte als auch nicht bewegliche visuelle Inhalte wie ein gedrucktes Magazin mit farbigen, unbewegten Bildern werden gegenwärtig Endverbrauchern in einem von zwei unterschiedlichen visuellen Formaten angeboten. Das vorherrschende und ältere Format liefert den Verbrauchern visuelle Inhalte als flache 2D-Bilder und -Videos. Das neuere, aber weniger gebräuchliche Format liefert Bilder und Videoinhalte an den Endverbraucher als stereoskopische 3D-Darstellungen. Zu dem Zeitpunkt, als diese Anmeldung geschrieben wurde (2. Quartal 2014), waren auf dem globalen Inhaltemarkt bei weitem mehr 2D-Inhalte verfügbar als 3D-Medien. Von tausenden von Video- oder Spielfilmtiteln, die zum Kauf auf High Definition Blueray Disks verfügbar waren, waren beispielsweise nur etwa 280 Titel – ein ziemlich kleiner Prozentsatz der Gesamtmenge – stereoskopische 3D-Titel, die als „Blueray 3D“ Medien verkauft wurden. Die ganz überwiegende Mehrzahl von Inhalten, die zum Kauf auf DVDs und Blueray-Disks verfügbar sind, ist gegenwärtig in flacher 2D-Darstellung. Auch sind fast alle Video- und Filminhalte, die vor dem Jahr 2003 produziert worden sind – dem Jahr, in dem man mit dem Model „Neues 3D Kino“ zu experimentieren begann – nur in 2D-Form verfügbar. Während es jetzt möglich ist, eine ziemlich ausgeklügelte stereoskopische 3D-fähige TV-Anlage mit zugehörigen 3D-Brillen für weniger als US$ 1000,- zu kaufen, hat das sogenannte „Inhalte-Problem“ – die eingeschränkte Verfügbarkeit von Inhalten, die zur stereoskopischen 3D-Darstellung nachbearbeitet oder produziert sind – bewirkt, dass die Marktstrategie „3D-Kino zu Hause“ einiger großer Unterhaltungselektronikhersteller in finanzieller Hinsicht fehlgeschlagen ist. Während sich stereoskopische 3D-Filme, die in Kinos vorgeführt wurden, einiger Popularität und finanzieller Erfolge erfreuten – der erfolgreichste 3D-Film aus dem Jahr 2009 „Avatar“ wendete die stereoskopische 3D-Darstellung so gekonnt an, dass er der Film mit höchsten Einnahmen in der Geschichte wurde – hat die begrenzte Auswahl von ansprechenden stereoskopischen 3D-Inhalten, die zum Ansehen zu Hause zur Verfügung stehen, dazu geführt, dass Verbraucher weit weniger 3D-fähige Fernsehgeräte seit ihrer Einführung gekauft haben, als die Industrie gehofft und vorhergesagt hatte. Die geringer als erwarteten Verkaufszahlen für 3D-Fernsehgeräte waren für die Fernsehgerätehersteller so enttäuschend, dass die Industrie im Großen und Ganzen den Aspekt des 3D-Sehens für LCD- und LED-Fernsehgeräte nicht mehr aktiv bewirbt und auch nicht mehr Höchstpreise für 3D-fähige Fernsehgeräte verlangt, wie dies noch der Fall war, als 3D-Fernsehgeräte erstmals eingeführt wurden. Zur Zeit der Abfassung der Anmeldung hat die Fernseher herstellende Industrie die Werbung für 3D-Fernsehgeräte fast vollständig gestoppt und hofft statt dessen, dass UHD („Ultra High Definition“) fähige Fernsehgeräte mit einer nie zuvor gesehenen Bildauflösung von 4K oder 8K die Verbraucher dazu bewegen werden, zu neuen Fernsehgeräten aufzusteigen, und nicht auf die 3D-Seh-Funktionalität, um potenzielle Fernsehgerätekäufer anzuziehen.
  • Die neuen UHD-Fernsehgeräte werden mit eingebauter stereoskopischer 3D-Fähigkeit ausgestattet sein, aber die Industrie betont beim Verkauf dieser Fernsehgeräte der nächsten Generation nicht länger die stereoskopische 3D-Fähigkeit und stellt statt dessen darauf ab, dass bewegte UHD-Bilder mit einer Auflösung von 4K oder 8K für ein so realistisches und dreidimensionales Sehen beim einfachen 2D sorgen, dass stereoskopisches 3D und die zugehörigen 3D-Brillen nicht länger benötigt werden, um ein umfassendes, dreidimensionales und lebensechtes Seherlebnis zu ermöglichen.
  • Ein Weg, das „3D-Inhalteproblem“ zu lösen – oder vielleicht genauer gesagt abzuschwächen – besteht darin, visuelle Inhalte, die traditionell in 2D aufgenommen worden sind, in einer „nachbearbeitenden Konversion“ in stereoskopisches 3D umzuwandeln. Dieser Prozess wird gewöhnlich „2D-zu-3D-Konversion“, oder – in dem Fall einiger Hollywood-Filme – „Dimensionalisierung“ genannt. 3D-Konversion von 2D-Inhalten kann auf zwei Wegen erreicht werden. Eine „manuelle“ oder „von Künstlern betriebene“ 3D-Konversion, ein teurer Prozess, der meist für Inhalte mit hohem Budget wie große Hollywood-Filme angewendet wird, bedient sich ausgebildeter menschlicher Bediener, um einer 3D-Konversions-Software mitzuteilen, typischerweise Bild für Bild oder Aufnahme für Aufnahme, welcher Bereich eines 2D-Bildes sich in welchem Abstand und welchem Winkel relativ zu der virtuellen stereoskopischen 3D-Kamera befindet, die von der 3D-Konversions-Software erzeugt wird. Manuelle 3D-Konversion ist gegenwärtig ein langsamer, arbeitsaufwendiger und teurer Prozess. Der populäre 2D-Film „Titanic“ aus den 1990er Jahren wurde z.B. manuell in stereoskopisches 3D konvertiert, was durch 450 ausgebildete 3D-Konversionsspezialisten über 14 Monate erfolgte, die auf Bild-für-Bild- oder Aufnahme-für-Aufnahme-Basis arbeiteten, wobei die Fertigstellung der endgültigen 3D-konvertierten Version des Films 18 Milionen Doller kostete. Zur Zeit der Abfassung der Anmeldung kann eine vollständig „manuelle“ oder „halb-automatische“, von Spezialisten betriebene 3D-Konversion irgendwo zwischen US$ 1500,- und US$ 100.000,- pro Minute konvertiertes Filmmaterial kosten, abhängig von dem Unternehmen, das die Konversion durchführt, der visuellen Qualität des stereoskopischen 3D-Endprodukts und von der angewendeten spezifischen 3D-Konversionsmethode, den angewendeten Prozessen, der verwendeten Software oder angewendeten Technologie. Die Qualität der 3D-Konversion, die sich mit einem von Spezialisten betriebenen Prozess erreichen lässt, kann in technischer und künstlerischer Hinsicht sehr gut sein, aber die langen Umwandlungszeiten und die hohen Kosten des Prozesses – mehrere Millionen Dollar und viele Monate Zeitaufwand, um einen gerade zweistündigen Film in 3D umzuwandeln – läßt es höchstens praktikabel sein, nur ausgewählte Filme zu konvertieren, die populär genug sind, damit die 3D-Version aus Kinokartenverkäufen und Verkäufen von Blueray-3D-Disks mehr Umsatz erzeugt, als die Kosten des manuellen 3D-Konversionsprozesses ausmachen. Das bedeutet im Ergebnis, dass viele 2D-Filme, die nicht in die Kategorie „sehr populär“ fallen, niemals in 3D umgewandelt werden oder zumindest nicht bis manuelle 3D-Konversionsprozesse schneller und billiger geworden sind.
  • Der zweite Weg, um 2D-Inhalte in 3D zu konvertieren, besteht in der Anwendung eines vollständig automatisierten 2D-zu-3D-Konversionsalgorithmus oder eines Hardware-Chips für die 2D-in-3D-Konversion in Echtzeit. Hier ist kein menschlicher Bediener beteiligt. Stattdessen wendet ein automatischer 2D-zu-3D-Algorithmus oder ein 3D-Konversionsverfahren verschiedene mathematische Operationen auf ein flaches 2D-Videobild an, um eine stereoskopische 3D-Version dieses 2D-Bildes zu generieren. Viele 3D-Fernsehgeräte und einige Blueray-Spielgeräte und Wohnzimmer-Medienabspielgeräte sind mit irgendeiner Form von eingebauter 2D-zu-3D-Konversionstechnologie ausgerüstet. Diese Technologie ist gewöhnlich in der Form eines schnellen Hardware-Chips implementiert, der „beim Abspielen“ von 2D in 3D konvertiert, wobei 2D-Inhalt in Echtzeit in stereoskopisches 3D konvertiert wird, während man den Inhalt anschaut. Die Qualität von 3D-Visualisierungen, die durch automatisierte 2D-zu-3D-Hardware erreicht werden kann, variiert nach Herstellern, Geräten und der Raffinesse des verwendeten technischen Ansatzes. Die gegenwärtige Generation von automatisierten 2D-zu-3D-Chips und -Algorithmen ist dazu in der Lage, „ansehnliche“ 3D-Inhalte aus einigen 2D-Inhalten zu erzeugen – z.B. einem Film, einem Fussballspiel, oder alpinem Skilauf oder einem Formel 1 Rennen. Es besteht aber allgemeine Übereinstimmung unter den Besitzern der gegenwärtigen Generation von 2D-zu-3D-konversionsfähigen 3D-Fernsehgeräten und Bluray-Spielern und Medienabspielgeräten, dass automatisiertes 2D-zu-3D gegenwärtig nicht die Art von „raffiniertem Stereo-3D-Effekt“ ergibt, der bei Inhalten mit hohem Budget zu sehen ist, die entweder von vorneherein in Stereo-3D aufgenommen sind oder in 2D aufgenommen wurden und einem teuren, manuellen, von Spezialisten betriebenen 2D-zu-3D-Konversionsprozess unter der Überwachung eines ausgebildeten Stereografikers unterzogen wurden. Während 2D-zu-3D-Konversions-Hardware und -Software dazu in der Lage ist, 3D-Effekte aus 2D-Filmmaterial zu erzeugen, ist der erzeugte 3D-Effekt typischerweise von nicht so hoher Qualität, und visuell und künstlerisch nicht so ansprechend wie der raffiniertere 3D-Effekt, der entweder bei von vorneherein in Stereo-3D aufgenommenen Filmen oder durch nachträgliches Konvertieren durch Spezialisten, oder manuelle oder halbautomatische 2D-zu-3D-Konversion erzeugt wird.
  • Um es zusammenzufassen: Wenn 2D-Inhalte in 3D umzuwandeln sind, ergibt zur Zeit die manuelle 2D-zu-3d-Konversion das qualitativ beste stereoskopische 3D, ist aber gegenwärtig so arbeitsintensiv und teuer, dass sie nur auf eine Handvoll Filme angewendet werden kann, die beliebt genug sind, um die hohen Konversionskosten auszugleichen, wenn sie vorgeführt oder an Endverbraucher verkauft werden. Andererseits ist automatische 2D-zu-3D-Konversion schnell, kostengünstig und praktisch und erlaubt, es jegliche Inhalte, egal ob alt oder neu, ob beliebt oder unbedeutend, sofort stereoskopisch in 3D zu sehen. Aber die Qualität des auf diese Weise erzeugten 3D-Effekts kann gegenwärtig nicht konkurrieren mit einer teuren, Aufnahme-für-Aufnahme vorgenommenen und unter menschlichen Überwachung vorgenommenen manuellen 3D-Konversion. Die Inhaber einiger Unternehmen für 3D-Konversion haben die Aussage gemacht: „Ein lebender, atmender, denkender menschlicher Spezialist wird immer aus 2D-Quellenmaterial besseres stereoskopisches 3D erstellen als ein automatischer Algorithmus oder ein 3D-Konversions-Hardware-Chip zu erreichen erhoffen kann“. Obwohl dies gegenwärtig in gewissem Sinne richtig sein mag, gibt es in der Realität viele Anwendungen, bei denen die billigere und schnellere automatische 2D-zu-3D-Konversion in Echtzeit – oder im Offline-Modus – das einzig sinnvolle ist. Daher wird die Erforschung und Entwicklung von automatisierten 2D-zu-3D-Konversionstechniken mit hohem Tempo fortgesetzt, wobei die automatisierten 3D-Konversionstechniken mit jedem vergehenden Jahr etwas raffinierter werden.
  • Die in diesem Anmeldung präsentierte 2D-zu-3D-Konversionsmethode fällt in die Kategorie der automatisierten, nicht überwachten, echtzeitfähigen 2D-zu-3D-Konversionsmethoden. Sie soll in der realen Welt entweder als zweckbestimmter 2D-zu-3D-Echtzeit-Hardware-Chip eingesetzt werden oder als ein Echtzeit-2D-zu-3D-Programmalgorithmus, der auf schneller, grafikverarbeitender Hardware läuft, wie etwa auf einer Grafik-Prozessoreinheit („GPU“).
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine gegenübergestellte Illustration von den beiden realen Anwendungsszenarien, für die die in dieser Anmeldung präsentierte 2D-zu-3D-Konversionsmethode entwickelt worden ist. Die obere Zeichnung (100) zeigt das 2D-zu-3D-Verfahren implementiert in einem Echtzeit-Hardware-Chip innerhalb eines elektronischen Geräts. Die untere Zeichnung (101) zeigt das 2D-zu-3D-Verfahren als einen Echtzeit-Algorithmus, der auf einer programmierbaren Grafik-Prozessoreinheit (GPU) innerhalb eines elektronischen Gerätes läuft.
  • 2 (102) ist eine Illustration der „Speicherfelder“ oder „2D-Speicher-Arrays“, die von dem 2D-zu-3D-Verfahren verwendet werden. Insgesamt werden 10 Speicherfelder verwendet:
    Redmap (Rot-Karte), Greenmap (Grün-Karte), Bluemap (Blau-Karte), ShadeRed (Schattierung-Rot), ShadeGreen (Schattierung-Grün), ShadeBlue (Schattierung-Blau), DensogramRed (Densogramm-Rot), DensogramGreen (Densogramm-Grün), DensogramBlue (Densogramm-Blau) und DepthMap (Tiefenkarte). Alle Speicherfelder haben die gleiche Größe: FrameWidth (Bildbreite) + 50 Pixel extra in X-Richtung, und FrameHeight (Bildhöhe) + 50 Pixel extra in Y-Richtung. Die 50 Extrapixel, die der Speicherfeldergröße hinzugefügt sind, werden verwendet, um eine „Sicherheitszone“ inaktiver Pixel von 25 Pixeln um die in den Zwischenspeichern gespeicherten Bilddaten herum zu schaffen; 25 Pixel oben am Bild, 25 Pixel unten, 25 Pixel an der linken Seite und 25 Pixel an der rechten Seite. Diese „Sicherheitszone“ verhindert, dass das Verfahren abstürzt oder festhängt, wenn das Verfahren zufällig Pixel abtastet, die, im Speicherfeld, außerhalb des Gebietes liegen, das durch die aktiven Bild- oder Videodaten, die verarbeitet werden, besetzt ist.
  • 3 ist ein Flussdiagramm, das SEGMENT 1 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 4 ist ein Flussdiagramm, das SEGMENT 2 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 5a und 5b bilden zusammen 5. 5 ist ein Flussdiagramm, das SEGMENT 3 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 6a und 6b enthalten ein Flussdiagramm, das SEGMENT 4 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 7 ist ein Flussdiagramm, das SEGMENT 5 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 8 ist ein Flussdiagramm, das SEGMENT 6 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 9 ist ein Flussdiagramm, das SEGMENT 7 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 10 ist ein Flussdiagramm, das SEGMENT 8 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • 11a und 11b bilden zusammen 11. 11 ist ein Flussdiagramm, das SEGMENT 9 des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Die beste Art und Weise, das in dieser Anmeldung präsentierte 2D-zu-3D-Konversionsverfahren einzuführen, könnte sein, kurz zu diskutieren, wie andere existierende 2D-zu-3D Verfahren arbeiten und in welcher Weise das neue, in dieser Anmeldung präsentierte Verfahren sich von diesen existierenden Verfahren unterscheidet.
  • Viele existierende automatisierte 2D-zu-3D-Konversionsverfahren verwenden einen oder mehrere von vier spezifischen Ansätzen, Tiefe zu berechnen oder zu erzeugen. Diese vier Verfahren sind:
    • 1) Tiefe aus Bewegung (Depth from Motion)
    • 2) Tiefe durch Fokus (Depth from Focus)
    • 3) Tiefe durch Perspektive (Depth from Perspective)
    • 4) Tiefe aus der Position im Bild (Depth from Position in Frame)
  • Die oben aufgelisteten, gewöhnlich verwendeten Verfahren generieren typischerweise eine monochrome „Tiefenkarte“, indem sie die Bewegung, den Fokus und/oder die Position und Perspektive untersuchen, die in einem Videobild vorhanden sind. Zusätzlich kann eine Funktion, die in einem Video sichtbare, unterschiedliche Objekte erkennen und visuell trennen kann (Objekterekennung), dazu verwendet werden, um die optische Trennung von 3D-Schauspielern, Objekten und Hintergrund in einem Bild zu ermöglichen – was bei einer manuellen 3D-Konversion durch Anwendung durch Techniken wie Objektmaskierung und Rotoskopie gemacht würde. Obwohl diese existierenden Verfahren in der Praxis einigermaßen gut funktionieren – viele 3D-Fernsehgeräte und andere elektronische Geräte verwenden sie oder Abwandlungen davon in ihrer Hardware, um 2D-Inhalte in Echtzeit in 3D zu konvertieren – sind es jedoch rechnerisch aufwendige Verfahren, die erheblich komplexer sind, sowohl unter dem Aspekt des Algorithmenentwurfs, als auch des Elektronikentwurfs, als das kurze und mathematisch relativ einfache 2D-zu-3D-Verfahren, das in dieser Anmeldung präsentiert ist.
  • Der wichtigste Unterschied zwischen dem in dieser Anmeldung präsentierten 2D-zu-3D-Verfahren und anderen existierenden 2D-zu-3D-Verfahren besteht darin, dass das Verfahren weder Bewegung, Fokus, Bild-Position oder Perspektive, die in einem Bild oder Video vorhanden sind, analysiert noch Erkennungsalgorithmen für „Formen“ oder „Objekte“ einsetzt, die in einem 2D-Bild oder Video vorhanden sind. Das in dieser Anmeldung präsentierte 2D-zu-3D-Verfahren basiert seinen Bildanalyseprozess statt dessen auf die Analyse von „Bild-Schattierung“ (image shading) und „Bild-Lichtdichte“ (image light density) und wendet dann eine Reihe von kurzen, schnellen 2D-Bildverarbeitungs- und mathematischen Gleitkomma-Operationsschritten auf den 2D-Eingabeinhalt an, um den Eingabeinhalt in stereoskopisches 3D zu konvertieren, wobei in dem Prozess digital erzeugte – oder synthetische – linke und rechte Augenbilder erzeugt werden. Das wichtigste ist vielleicht, dass das in dieser Anmeldung präsentierte 2D-zu-3D-Verfahren keinerlei dreidimensionale Bildanalyse, Geometrieberechnungen oder mathematische Operationen vornimmt, um 2D-Inhalt in stereoskopisches 3D umzuwandeln. Statt dessen ist eine Kollektion von relativ einfachen und schnell ausführbaren 2D-Bildprozessierungsschritten und mathematischen Gleitkomma-Operationen so kombiniert und in Reihenfolge gebracht worden, dass die optische Transformation, die insgesamt aus der Anwendung dieser 2D-Bildprozessierungsschritte und der mathematischen Schritte resultiert, eine „optische korrekte“ oder „physikalisch korrekte“ stereoskopische 3D-Version von jeglichem 2D RGB-Bild oder -Video verlässlich erzeugt. Ein erheblicher Aufwand an Forschung und Entwicklung, Experimentieren und Versuch-und-Irrtum über fast fünf Jahre haben zu einer Sequenz von schnellen 2D-Bild- und Video-Prozessierungsschritten und relativ einfachen mathematischen Operationen geführt, die kombiniert und in der richtigen Reihenfolge, verlässlich jedes 2D-RGB-Bild oder -Video in stereoskopische Rot-Cyan-3D-Anaglyphen umwandeln können. Das sich aus diesem alternativen Ansatz ergebende 2D-zu-3D-Verfahren ist kurz, in der Struktur einfach, in der Speicherplatzverwendung effizient, sehr verlässlich und stabil, und ist, was vielleicht am wichtigsten ist, Grafikprozessor-freundlich und recht schnell in der Ausführung. Das in dieser Anmeldung präsentierte Verfahren ist mathematisch nicht so komplex oder besitzt keine „künstlicher Intelligenz“, aus einer Planungs- und Konstruktionsperspektive betrachtet, wie manche existierende 2D-zu-3D-Verfahren es sind. Das hier präsentierte Verfahren „weiß nicht“ oder „versteht nicht“, was z.B. in einem Videobild oder einem Bild ein erkennbares „3D-Objekt“, ein „Schauspieler“ oder ein „Bildhintergrund“ ist. Es weiß auch nicht, bei welcher Z-Tiefe, welchem Abstand, welchem Winkel oder in welcher Perspektive sich ein „Objekt“ oder „Schauspieler“ in Bezug auf die virtuelle 3D-Kamera des Verfahrens befindet. Es erzeugt jedoch verlässlich eine optisch korrekte stereoskopische 3D-Szene aus einer 2D-Eingabeszene, und tut mit dies in hoher Geschwindigkeit in Folge des 2D-zu-3D-Ansatzes auf Basis der rechnerischen Effizienz seiner 2D-Bildprozessierung und der mathematischen Gleitkomma-Operationen. Eine andere Art, den Unterschied zwischen diesem Verfahren und existierenden 2D-zu-3D-Verfahren zu erklären, ist folgende: Existierende 2Dzu-3D-Verfahren versuchen typischerweise in gewissem Umfang nachzuahmen und zu automatisieren, was ein menschlicher 3D-Konversionsspezialist tun muss, um einen 2D-Inhalt in stereoskopisches 3D zu konvertieren. Bewegung, Perspektive, Bildflächenposition und Fokus werden analysiert. Erkennbare Objekte in dem 2D-Filmmaterial werden identifiziert und separiert. Manuelles oder halbautomatisches „Rotoskopieren“, „Maskieren“ und „Kameraverfolgung“ können als Tätigkeiten erforderlich sein, um – zum Beispiel – einen Schauspieler optisch von einem Stadthintergrund zu separieren, vor dem stehend er oder sie gefilmt wird. Viele existierende 2D-zu-3D-Verfahren versuchen einige dieser manuellen Schritte oder ähnliche Operationen in einer automatisierten Weise nachzuahmen. Das in dieser Anmeldung präsentierte 2D-zu-3D-Verfahren funktioniert jedoch unter Anwendung eines vollkommenen anderen Ansatzes. Hier werden eine Sequenz von ineinandergreifenden 2D-Bild- oder Pixelprozessierenden Funktionen und mathematischen Gleitkomma-Operationen verwendet, die ein menschlicher Bediener unter keinen Umständen von Hand nachahmen könnte, um ein synthetisches linkes Augenbild und ein synthetischen rechtes Augenbild zu erzeugen, die das Gehirn des Zuschauers in ein anschaubares und natürlich erscheinendes stereoskopisches 3D-Bild zusammenfügen kann. Während viele existierende 2D-zu-3D-Verfahren „wirkliche 3D-Analyse, wirkliche 3D-Messungen, wirkliche 3D-Berechnungen“ anwenden, um ein stereoskopisches 3D-Ausgabebild zu erzeugen, basiert das in dieser Anmeldung präsentierte 2D-zu-3D-Verfahren auf 2D-Bildprozessierungsschritten, die gleichwohl zusammenwirken, um ein optisch korrektes 3D-Bild von vergleichbarer visueller Qualität wie durch andere 2D-zu-3D-Verfahren erhaltene 3D-Resultate zu „modellieren“, „zu konstruieren“ oder „zu formen“. Man könnte sagen, dass, während existierende 2D-zu-3D-Verfahren häufig „raffinierte und mathematisch komplexe 3D-Analyse, Messungen und Berechnungen“ ausführen, um ihr 3D-Konversionsziel zu erreichen, die in dieser Anmeldung präsentierte alternative Methode ein „schneller, intelligenter auf 2D-Bildprozessierung basierender optischer Trick“ ist, der vergleichbare 3D-Resultate realisiert, aber nur kurze, schnell auszuführende und hochgradig parallelisierbare 2D-Bild- und Pixel-Prozessierungsschritte und einige relativ einfache mathematische Gleitkomma-Operationen verwendet.
  • Das in dieser Anmeldung präsentierte 2D-zu-3D-Konversionsverfahren soll in der Praxis in zwei verschiedenen Formen angewendet werden:
    • 1) Ein kosteneffektiver 2D-zu-3D-Konversions-Hardware-Chip, der in Echtzeit die Konversion von 2D-Inhalten in 3D ausführt.
    • 2) Ein kurzer, schneller, hochgradig parallelisierbarer 2D-zu-3D-Algorithmus, der in Echtzeit auf parallel prozessierenden Prozessoren läuft, wie etwa programmierbaren Grafikprozessoreinheiten (GPUs), Koprozessor-Boards oder FPGAs (field programmable gate arrays).
  • Mit diesen beiden Anwendungsmöglichkeiten im Bewusstsein musste das entwickelte 2D-zu-3D-Verfahren einige grundlegende Designziele erfüllen. Diese Designziele waren, kurz gesagt:
    • 1) Das Verfahren musste kurz, einfach, schnell, speichereffizient und so einfach wie möglich zu verstehen/implementieren sein. Das Designziel „niedrige Designkomplexität“ macht es signifikant einfacherer und billiger, eine in Echtzeit laufende Hardware-Implementierung des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens zu schaffen. Niedrige Komplexität und geringe Algorithmenlänge – der funktionierende Software-Prototyp, auf dem diese Anmeldung basiert, hat nur 212 Zeilen Programmcode – macht auch die Software-Algorithmus-Version des Verfahrens in einer Vielzahl von realen Szenarien und Situationen einfacher zu implementieren. So ist es einfacher, das Verfahren in verschiedene Programmiersprachen (z.B. Assembler, C++, Verilog, CUDA, OpenCL) wie auch auf verschiedene Rechner-Plattformen (Windows, OSX, Linux, Android, iOS) zu übertragen, als das für einen größeren, komplexeren 2D-zu-3D-Algorithmus der Fall wäre.
    • 2) Das Verfahren musste für GPUs (Grafikprozessoreinheiten) tauglich sein. Das bedeutet, dass das Verfahren hochgradig parallelisierbar/Multi-Threading-tauglich sein musste, das für GPU-Rechnungen geeignete, schnell ausführbare mathematische Gleitkomma-Operationen und Bild- und Pixelprozessierungsoperationen in größtmöglichem Umfang verwendet werden und dass das Verfahren so speichereffizient wie möglich sein musste, da GPUs auf dem Einstiegslevel meist mit begrenztem Videospeicher ausgerüstet sind.
    • 3) Die 3D-Ausgabe des Verfahrens sollte gut mit kostengünstigen, mit Rot- und Cyan-Linsen ausgestatteten 3D-Anaglyphenbrillen zusammenwirken und gute 3D-Bildqualität bieten, wenn sie durch diese Brillen betrachtet werden. Das bedeutet, dass das Verfahren gut beleuchtete, optisch scharfe 3D-Bilder mit gutem Kontrast, guter 3D-Tiefe und mit einer vernünftig genauen Farbreproduktion erzeugen muss.
    • 4) Das Verfahren sollte modular und leicht erweiterbar und modifizierbar sein. Das bedeutet, dass ausgewählte Teile des Verfahrens herausgenommen und durch eine alternative Funktion ersetzt werden können, die anders arbeiten. Das bedeutet auch, dass Zusatzschritte zu dem Verfahren hinzugefügt werden können, die, z.B. zu einem weiter nuancierten 3D-Effekt, einem schärferen Bild oder höherer Farbtreue führen. Dieses Designziel ist wichtig, da GPUs jedes Jahr schneller und leistungsfähiger werden. Die Möglichkeit, das 2D-zu-3D-Verfahren leicht erweitern zu können, bedeutet, dass die zusätzliche Prozessierleitung, die in neuen GPUs zur Verfügung steht, ausgenutzt werden kann, um eine verbesserte, raffiniertere 3D-Seherfahrung zu erzeugen.
    • 5) Das Verfahren musste einen 3D-Effekt erzeugen, der visuell von den 3D-Effekten verschieden ist, die gewöhnlich durch vorhandene 2D-zu-3D-Verfahren erzeugt werden. Der durch das in dieser Anmeldung beschriebene Verfahren erzeugte 3D-Effekt basiert stark auf positiver Parallaxe. Das erzeugte 3D-Bild ist insoweit hologrammartig als es „in den Bildschirm hineinreicht“, eher als „aus dem Bildschirm hervorzustehen“, ohne unter den Farbreproduktionsproblemen und -schwierigkeiten zu leiden, unter denen Laser-Hologramme häufig leiden. Bei dem präsentierten Verfahren ist die gesamte erzeugte „3D-Szene“ auf der Z-Achse zurückverschoben und erscheint „in einem gewissen Abstand hinter dem Bildschirm“ zu schweben, oder erscheint „tatsächlich in die weite Ferne zu reichen“, bei Aufnahmen, in denen z.B. der Himmel und weit entfernte Objekte sichtbar sind. Physische Objekte – Fahrzeuge, Schauspieler, Möbel und andere Objekte – die sich in einem bestimmten Abstand zu der Kamera in dem 2D-Eingangsbild oder -Videomaterial befinden, erscheinen in dem erzeugten 3D-Bild wirklich in diesem geringen, mittleren oder entfernten Abstand zu der Kamera. Außerdem lässt das 2D-zu-3D-Verfahren physische Objekte in dem erzeugten 3D-Raum „volumetrisch“ Erscheinen – alles in 3D dargestellte erscheint ein wirkliches 3D-Volumen zu haben, und nicht wie eine „flache, der Kamera zugewandte 2D-Schicht, die in einer bestimmten Z-Tiefe im 3D-Raum liegt“ – was in der Computergrafik auch als eine „der Kamera zugewandte 2D-Werbetafel“ bekannt ist.
    • 6) Die 3D-Ausgabe des Verfahrens musste über ausgedehnte Zeitperioden (z.B. ein 120 Minutenfilm) anzuschauen sein, ohne Probleme wie Augenüberlastung, Kopfschmerzen, Übelkeit, retinale Rivalität, und Reisekrankheit zu verursachen. Die in dieser Anmeldung präsentierte 3D-Ausgabe wurde bis heute an etwa 25 Testpersonen getestet. Keine der Testpersonen klagte über gewöhnlich in Zusammenhang mit 3D-Ferngeräten stehende Probleme, wie Augenüberlastung, Kopfschmerzen, verschwommene Sicht, Übersprechen, Übelkeit, Blinken/Flackern oder ein „zu dunkles“ Bild, während der 30–45 Minuten, in denen sie die 3D-Vorführung anschauten. Viele Testpersonen beschrieben die Seherfahrung als „einfach für die Augen“.
    • 7) Die 3D-Ausgabe des 2D-zu-3D-Verfahrens musste in so vielen Anwendungsszenarien in der Realität wie möglich einsetzbar sein. Um das zu ermöglichen gibt das präsentierte Verfahren Rot-Cyan-3D-Anaglyphen aus. 3D-Anaglyphen können auf jedem Farbschirm oder Projektor angesehen werden. 3D-Anaglyphen funktionieren, mit einiger Rekalibration, auch gedruckt. 3D-Anaglyphen können als Stream oder als Ausstrahlung – sogar wenn altmodisches analoges Ausstrahlen von TV-Sendungen angewendet und Fernsehgeräte mit Kathodenstrahlröhren benutzt werden – gesendet werden, genau wie ausgestrahlte 2D-Inhalte gesendet werden können. 3D-Anaglyphen können komprimiert werden, ganz ähnlich wie reguläre 2D-Videos, und können daher gespeichert und verteilt werden auf existierenden, etablierten optischen Medien wie DVDs oder Bluray-Disks. Schließlich erfordern 3D-Anaglyphen nur billige, passive Rot-Cyan-3D-Anaglyphenbrillen – z.B. 3D-Brillen aus Pappe – für den erzeugten Stereoinhalt, der in echtem, stereoskopischen 3D anzuschauen ist, mit guter Helligkeit, guter Schärfe und guter Farbtreue.
  • KURZE ERKLÄRUNG DER FUNKTIONSWEISE EINIGER AUSFÜHRUNGSFORMEN DES 2D ZU 3D-VERFAHRENS
  • Das präsentierte Verfahren erzeugt ein stereoskopisches 3D-Anaglyphenbild aus 2D-RGB-Bildern, im Großen und Ganzen unter Verwendung der folgenden Technik:
    • 1) Die RGB-Kanäle des Bildes werden voneinander getrennt.
    • 2) Der rote Kanal, der alleine prozessiert wird – separat von den grünen und blauen Kanälen – wird von dem rechten Auge des Zuschauers gesehen, als Ergebnis des Blickes durch die cyan-gefärbte Linse auf der rechten Seite der Anaglyphenbrille. Die Cyan-Linse filtert die grünen und blauen Farbkanäle weg und lässt nur den roten Kanal für das rechte Auge sichtbar.
    • 3) Die grünen und blauen Kanäle, die von dem durch eine rote Linse auf der linken Seite der Brille blickenden Auge gesehen werden, werden dagegen zusammen prozessiert. Alles, was auf den grünen oder blauen Kanal angewendet wird, wird auf beide Kanäle in fast exakt derselben Weise angewendet, da die Kombination dieser beiden Farbkanäle das synthetische linke Augenbild bilden, das durch die 3D-Anaglyphenbrille gesehen wird. (Man könnte sagen, dass der grüne Kanal und der blaue Kanal den ganzen 3D-Konversionsprozess gemeinsam durchlaufen. Operationen, die der eine unterzogen wird, wird der andere in exakt derselben Weise oder in fast exakt derselben Weise unterzogen. Eine Ausnahme davon sind die wenigen Helligkeits- und Farbkorrekturschritte, die dazu gestaltet sind, um das bestmögliche 3D-Anaglyphenbild zu erzeugen, mit akkurater Farbreproduktion, obwohl 3D-Brillen mit gefärbten Linsen verwendet werden.)
    • 4) Die positive Parallaxe, die den grundlegenden stereoskopischen 3D-Raumeffekt des Verfahrens unterstützt, wird erzeugt, indem sowohl das synthetische linke Augenbild als auch das synthetische rechte Augenbild aus dem Mittelpunkt des Schirms um einige Pixel verschoben werden. Die beiden digital erzeugten Augenbilder werden in entgegengesetzte Richtungen zueinander entlang der X- und Y-Achsen des Schirms verschoben, um ein starkes Gefühl von 3D-Tiefe oder „Z-Tiefe“ in der 3D-Anaglyphenausgabe des Verfahrens zu erzeugen. Die beiden gegeneinander verschobenen Bilder werden, wenn durch 3D-Brillen betrachtet, zu einem einzigen, zentriert aussehenden stereoskopischem 3D-Bild verschmolzen. Das Gehirn des Betrachters wird in dem Prozess gezwungen, ein stereoskopisches 3D-Bild mit einem ausreichenden Umfang von Z-Tiefe zu sehen, die sich eine gewisse Distanz in den Schirm hinein erstreckt. Die so erzeugte positive Parallaxe lässt das gesamte 3D-Bild so erscheinen, dass es in einem gewissen Abstand hinter dem Bildschirm oder einer anderen Anzeigeeinrichtung liegt, auf der es angeschaut wird. Testpersonen, denen der auf positiver Parallaxe basierende stereoskopische 3D-Effekt vorgeführt wurde, fanden die visuelle Erfahrung angenehm „in ein hell erleuchtetes 3D-Diorama zu sehen“ oder „in ein bewegtes Laser-Hologramm mit einem ausreichendem Ausmaß von 3D-Tiefe, aber normalen, natürlich aussehenden Farben zu blicken“.
    • 5) Zusätzlich zu dem auf der grundlegenden positiven Parallaxe basierenden 3D-Effekt werden eine Anzahl von Bildverarbeitungsoperationen verwendet, um auf dem Pixel-Level optisch korrekte synthetische linke und rechte Augenbilder zu „modellieren“, um so einen effektiveren und natürlicher aussehenden stereoskopischen 3D-Gesamteffekt zu erzeugen. Bei beiden erzeugten synthetischen Ansichten – das linke Augenbild und das rechte Augenbild werden beide erzeugt, indem das 2D-Eingangsbild auf Pixel-Level verschoben, gedehnt und deformiert wird – werden diese Bildverarbeitungsoperationen benutzt, um individuelle Pixel in beiden Ansichten fein zu verändern und zu repositionieren. Das Endresultat ist ein digital erzeugtes linkes Augenbild und rechtes Augenbild, die das menschliche Gehirn als ein verwendbares „Stereopaar“ akzeptiert, das das Gehirn des Benutzers mit wenig oder keinem bewussten Bemühen verschmelzen kann in ein ziemlich natürlich aussehendes, einem natürlichen Gefühl entsprechendes, immersives stereoskopisches 3D-Bild.
    • 6) Die Tatsache, dass die ausgegebenen Rot-Cyan-Anaglyphen und die RGB-Quelle unter dem Gesichtspunkt der Farbreproduktion sehr kompatibel sind, ermöglicht es, dass das Verfahren 3D-Bilder mit ziemlich genauer Farbreproduktion erzeugt. Fast 90% der möglichen RGB-Farben kommen intakt durch dieses 2D-zu-3D-Verfahren und die zum Ansehen verwendeten 3D-Brillen mit Rot- und Cyan-Linsen. Die Farben erscheinen in stereoskopischen 3D sehr ähnlich wie sie in dem ursprünglichen 2D-Eingangsfilmmaterial erschienen. Die verbleibenden 10% der Farben – einige ziemlich spezielle Rot- und Blaufarbtöne – durchlaufen den Prozess nicht vollständig und sie werden nach der 3D-Konversion etwas anders erscheinen, als sie in dem originalen 2D-RGB-Bild oder -Filmaterial erschienen. Ein Beispiel: Ein strahlend roter Ferrari-Sportwagen, der an einem sonnigen Tag gefilmt worden ist, kann etwas abgedunkelt oder etwas gedeckter in dem 3D-Bild erscheinen als er das in dem originalen 2D-Bild tat.
  • Technische Bemerkung 1: Über das gesamte präsentierte 2D-zu-3D-Verfahren hinweg ist die Y-Achse invertiert, wie üblich in Computer-Programmiersprachen wie C#. Im Falle eines 720×576 PAL-Videobildes, das in die Speicherfelder (Arrays) des Verfahrens eingelesen wird, repräsentiert zum Beispiel die [x, y] Indexposition [0, 0] die obere linke Ecke des Speicherfeldes und die Indexposition [719 + 50, 575 + 50] die untere rechte Ecke des Zwischenspeichers.
  • Technische Bemerkung 2: Jedes der 9 Segmente des präsentierten Verfahrens verwendet verschachtelte Schleifen, einschließlich einer inneren Schleife (Indexwert y) und einer äußereren Schleife (Indexwert x), um von oben nach unten, von links nach rechts um die von dem Verfahren verwendeten Speicherfelder für Video, Bild, Schattierungskarten, Densogrammen und Tiefenkarte zu durchlaufen. Jede dieser verschachtelten Schleifen kann „parallelisiert“ oder in viele Stränge aufgeteilt (Multi-Threading) werden, in exakt derselben Weise für schnellere Berechnungen bei praktischen Anwendungen, insbesondere, wenn ein Echtzeit-Algorithmus verwendet wird, der auf einer GPU läuft oder auch auf anderer Grafikprozessor-Hardware läuft, die eine Mehrzahl von programmierbaren Rechenkernen hat, um die Berechnungen zu beschleunigen.
  • Technische Bemerkung 3: Das präsentierte Verfahren umfasst eine Anzahl von „Parametern“ oder „Variablenwerten“, die von den das 2D-zu-3D-Verfahren Ausführenden vorgegeben werden können, um Bilder oder Videos von 400×300 Pixel bis – zum Beispiel – 1920×1080 Pixel so gut wie möglich zu prozessieren. Die in dem Flussdiagrammen in 311 gezeigten Parameterwerte sind konzipiert, um gut zu funktionieren, wenn Standard-Definition-PAL-Filmmaterial mit 720×576 Pixeln bei 25 Bildern pro Sekunde prozessiert wird. Wenn Bilder oder Videoaufnahmen mit höherer Pixelauflösung zu prozessieren sind, kann es notwendig sein, dass einige Parameter in dem präsentierten Verfahren auf andere Werte als die in den 311 gezeigten gesetzt werden müssen.
  • Fig. 3, SEGMENT 1
  • (103) In diesem ersten Segment wird das „Eingabebild“ oder „Eingabevideobild“ von der RGB-Bildquelle VideoIn.Red, VideoIn.Green und VidoeIn.Blue eingelesen. Die RGB-Kanäle des Eingangsbildes können skaliert werden, während sie aus der RGB-Quelle gelesen werden, um einen 3D-Effekt zu verstärken und Farbe und Helligkeit zu korrigierten, für verbessertes Sehen mit 3D-Anaglyphenbrillen mit gefärbten Linsen, bevor sie in die Bildspeicherfelder Redmap, Greenmap und Bluemap und die Densogramm-Speicherfelder DensogramRed, DensogramGreen und DensogramBlue geschrieben werden.
  • (103) In dem präsentierten Verfahren kann das RGB-Bild, das 3D-konvertiert wird, an zwei verschiedenen Punkten in dem Algorithmus skaliert werden. Entweder hier, zu Beginn von Segment 1, oder optional am Ende von Segment 9. In dem präsentierten Beispiel erfolgt die Skalierung am Ende von Segment 9 und nicht hier in Segment 1. X- und Y-Achsen-Skalierungsparameter xs, ys, xp, yp für das RGB-Eingangsbild, die im nächsten Schritt in die Variablen r, g und b eingelesen werden, werden so auf 1, 1, 1 bzw. 1 gesetzt, d.h. in diesem Segment erfolgt keine Skalierung des Bildes.
  • (104) Die RGB-Eingangskanäle werden in die Variablen r, g und b eingelesen. Während dieser Operation werden auch ein horizontaler und vertikaler Bildpositionsversatz um 25 Pixel angewendet, was das Eingangsbild um 25 Pixel nach unten und um 25 Pixel nach rechts verschiebt. Das erzeugt einen 25 Pixel breiten „Rand“ oder eine „Sicherheitszone“ um die nun in den Variablen r, g und b gespeicherten RGB-Bilddaten – 25 Pixel oben am Bild, 25 Pixel am Bild, 25 Pixel an der linken Seite des Bildes und 25 Pixel an der rechten Seite des Bildes. Sollte irgendein Schritt des präsentierten 2D-zu-3D-Prozesses zufällig außerhalb des Arbeitsbereichs, der von den tatsächlichen RGB-Bilddaten eingenommen wird, abtasten, verhindert die „Sicherheitszone“ von 25 Pixeln, die um die Bilddaten erzeugt worden ist, dass das präsentierte 2D-zu-3D-Verfahren abstürzt, festhängt, eine Fehlermeldung ausgibt oder das erzeugte 3D-Bild beschädigt.
  • (105) Die „Sättigung“ oder „Farbintensität“ der roten, grünen und blauen Bildinformation, die in den Variablen r, g und b gespeichert ist, wird erhöht. Das erzeugt bessere Farbtreue und Farbreproduktion, wenn der 3D-Ausgabe des Verfahrens durch 3D-Anaglyphenbrillen betrachtet wird, die rot und cyan gefärbten Linsen haben. Die Operation funktioniert folgendermaßen: Die mittlere Helligkeit der in den Variablen r, g und b gespeicherten RGB-Werte wird berechnet und in der Variablen avg (Abkürzung für „average“) gespeichert. Der Mittelwert wird berechnet, indem 31% des Wertes von r, 59% des Wertes von g und 10% des Wertes von b einbezogen werden. Als nächstes wird der Wert von r von avg abgezogen. Das Resultat wird der Variablen r zugewiesen. Der Wert von g wird von dem Wert von avg abgezogen. Das Resultat wird der Variablen g zugewiesen. Der Wert von b wird von dem Wert von avg abgezogen. Das Resultat wird der Variablen b zugewiesen. Die Variablen r, g und b enthalten nun Werte, die „Farbintensität“ oder den „Sättigungslevel“ des prozessierten RGB-Bildes repräsentieren. Nun wird der mit 1,26 multiplizierte Wert von r von dem Wert von avg abgezogen. Das Resultat wird der Variablen r zugewiesen. Der mit 1,26 multiplizierte Wert von g wird von dem Wert von avg abgezogen. Das Resultat wird der Variablen g zugewiesen. Der mit 1,26 multiplizierte Wert von b wird von dem Wert von avg abgezogen. Das Resultat wird der Variablen b zugewiesen. Als Resultat dieser Operation ist die Farbsättigung des RGB-Bildes, das in die Variablen r, g und b geschrieben ist, um 26% erhöht worden. Dieser Wert wurde experimentell ermittelt. Wenn die Sättigung nur um 20% verstärkt wird, erscheinen die Hauttöne von Schauspielern „blässlich weiß“, wenn sie durch Rot-Cyan-Anaglyphenbrillen betrachtet werden. Wenn die Sättigung andererseits um 30% verstärkt wird, erschienen dieselben Hauttöne „zu rot“. Insbesondere Gesichter sehen bei dieser Einstellung zu rot aus. Eine Sättigungsverstärkung um 26% bei dieser Operation ergab nach den Beobachtungen die besten Resultate, insbesondere in Bezug auf die Farbreproduktion von Hauttönen, wie auch auf die Reproduktion anderer Farben für die überwiegende Mehrzahl von verwendeten Eingangsbildern und Eingangsvideomaterial.
  • (106) Die rote, grüne und blaue Bildinformation, die in den Variablen r, g und b gespeichert ist, wird in ihrem Helligkeitslevel (luminance level) eingestellt. Diese Operation hilft, in Verbindung mit anderen noch bevorstehenden Bildhelligkeitseinstellungen, ein besser ausgeleuchtet aussehendes Bild zu erzeugen, wenn dieses mit 3D-Brillen mit Rot- und Cyan-Linsen betrachtet wird, die das betrachtete Bild leicht verdunkeln. Der Wert von r wird mit 0,85 multipliziert, und dann wird der Wert 15 addiert. Das Resultat wird dem Speicherfeld Redmap an der Indexposition [x, y] zugewiesen. Der Wert von g wird mit 0,85 multipliziert, und danach wird der Wert 15 dazu addiert. Das Resultat wird dem Speicherfeld Greenmap an der Indexposition [x, y] zugewiesen. Der Wert von b wird mit 0,85 multipliziert, und dann wird der Wert 15 dazu addiert. Das Resultat wird dem Speicherfeld Bluemap an der Indexposition [x, y] zugewiesen.
  • (106) Die nun in den Bildspeicherfeldern Redmap, Greenmap und Bluemap an Indexpositionen [x, y] in Bezug auf Sättigung und Helligkeit eingestellten RGB-Bilddaten werden auch in die Densogramm-Speicherfelder DensogramRed, DensogramGreen und DensogramBlue an Indexpositionen [x, y] kopiert.
  • Fig. 4, SEGMENT2
  • Diese Operation erzeugt RGB „Licht-Densogramme“, die in Densogramm-Speicherfeldern DesogramRed, DensogramGreen und DensogramBlue gespeichert werden. Ein „Licht-Densogramm“ ist eine mathematische Karte der „Leuchtdichte“ in einem Bild. Licht-Densogramme können für viele verschiedene nützliche Operationen eingesetzt werden, von Neu-Ausleuchten eines Bildes, zu Manipulieren von Bildfarbe, Bildschärfe und Bildkontrast, zu Erzeugen einer 3D-Tiefenkarte für 2D-zu-3D-Konversion, zu Anti-Aliasing eines Bildes bis zum Unterdrücken von Flackern in Bewegungsvideos (wie dies in der Praxis funktioniert, wird in 7, 9 und 11 gezeigt).
  • (107) Die in den Densogramm-Speicherfeldern DensogramRed, DensogramGreen und DensogramBlue an der Indexposition [x, y] gespeicherte Bildinformation wird multipliziert mit 1, den Variablen r, g und b zugewiesen. Die Bilddaten in den Densogramm-Speicherfeldern DensogramRed, DensogramGreen und DensogramBlue einen Pixel weiter rechts – an Indexposition [x + 1, y] – als die zuvor erwähnten Daten werden den Variablen rt, gt und bt zugewiesen. Nun wird der mit 1,2 multiplizierte Wert von r von dem Wert der Variablen rt abgezogen. Das Resultat wird der Variablen r zugewiesen. Der mit 1,2 multiplizierte Wert der Variablen g wird vom dem Wert der Variablen gt abgezogen. Das Ergebnis wird der Variablen g zugewiesen. Der mit 1,2 multiplizierte Wert der Variablen b wird von dem Wert der Variablen bt abgezogen. Das Resultat wird der Variablen b zugewiesen. Nun wird die mittlere Helligkeit der in den Variablen r, g und b gespeicherten Bilddaten berechnet, wobei 31% des Wertes von r, 59% des Wertes von g und 11% des Wertes von b eingehen. Das Resultat dieser Operation wird der Variablen avg (Abkürzung für „average“) zugewiesen.
  • (108) Jegliche Werte von Variablen r, g und b, die negativ sind – kleiner als 0 – werden auf 0 gesetzt.
  • (109) Die Variable DensogramMultiplier wird auf den Wert 1 gesetzt. Nun wird der Wert des Densogramm-Speicherfeldes DensogramRed an der Indexposition [x + 1, y] auf den Wert von DensogramRed [x + 1, y] plus dem Wert der Variablen r multipliziert mit dem Wert von DensogramMultiplier gesetzt. Der Wert des Densogramm-Speicherfeldes DensogramGreen an der Indexposition [x + 1, y] wird auf den Wert von DensogramGreen [x + 1, y] zuzüglich des Wertes der Variablen g multipliziert mit dem Wert von DensogramMultiplier gesetzt. Der Wert des Densogramm-Speicherfeldes DensogramBlue an der Indexposition [x + 1, y] wird auf den Wert von DensogramBlue [x + 1, y] zuzüglich des Wertes der Variablen b multipliziert mit dem Wert von DensogramMultiplier gesetzt.
  • Die Densogramm-Speicherfelder DensogramRed, DensogramGreen und DensogramBlue enthalten nun ein rotes, grünes und blaues „Licht-Densogramm“, die aus den roten, grünen und blauen Kanälen des in das Verfahren in 3 eingelesenen RGB-Eingangsbildes erzeugt worden sind.
  • Fig. 5, SEGMENT 3
  • Auf jedes der Speicherfelder Redmap, Greenmap und Bluemap wird eine Operation „Schattierungskarte“ (Shademap) angewendet.
  • Diese Operation misst die Differenz in RGB-Helligkeitswerten und daher „Abschattung“ zwischen dem aktuellen Pixel und seinem nächsten Nachbarn auf der rechten Seite des ursprünglichen Pixels.
  • Das Ergebnis dieser Operation wird den Schattierungkarten-Speicherfeldern ShadeRed, ShadeGreen und ShadeBlue zugewiesen.
  • (110) Mehrere Variablen werden definiert, damit die Schattierungskarten-Operation durchgeführt werden kann. Die Variablen P1, P2, RYAlt, GYAlt, BYAlt und difference werden auf 0 gesetzt. Die Variablen ShadeMult und ShadeMult2 werden auf 0,25 bzw. 2,5 gesetzt.
  • (111) Der Wert von Redmap [x, y] multipliziert mit dem Wert von ShadeMult2 wird der Variablen P1 zugewiesen. Der Wert von Redmap [x + 1, y] multipliziert mit dem Wert von ShadeMult2 wird der Variablen P2 zugewiesen.
  • (111) Wenn der Wert von P1 kleiner als der Wert von P2 ist, geschieht folgendes: Der Wert von P1 wird von dem Wert P2 abgezogen. Das Resultat wird der Variablen difference zugewiesen. Der Wert der Variablen difference multipliziert mit dem Wert von ShadeMult wird dem Wert von der Variablen RYAlt hinzugefügt. Das Resultat wird der Variablen RYAlt zugewiesen.
  • (111) Wenn andererseits der Wert von P1 größer als der Wert von P2 ist, geschieht folgende: Der Wert P2 wird von dem Wert von P1 abgezogen. Das Resultat wird der Variablen difference zugewiesen. Der Wert von difference multipliziert mit dem Wert von ShadeMult wird von dem Wert RYAlt abgezogen. Das Resultat wird der Variablen RYAlt zugewiesen.
  • (111) Die gleiche Prozedur, die mit dem Speicherfeld Redmap ausgeführt worden ist, mit dem Ergebnis, dass der numerische Schattierungskartenwert der Variablen RYAlt zugewiesen ist, wird nun für die in den Speicherfelder Greenmap und Bluemap gespeicherten Bilddaten wiederholt, mit dem Ergebnis, dass numerischen Schattierungskartenwerte den Variablen GYAlt und BYAlt zugewiesen sind.
  • (112) Der Wert der Variablen RYAlt wird dem Schattierungskarten-Speicherfeld ShadeRed an der Indexposition [x, y] zugewiesen. Der Wert der Variablen GYAlt wird dem Schattierungskarten-Speicherfeld ShadeGreen an der Indexposition [x, y] zugewiesen. Der Wert der Variablen BYAlt wird dem Schattierungskarten-Speicherfeld ShadeBlue an der Indexposition [x, y] zugewiesen.
  • Die Shattierungskarten-Speicherfelder ShadeRed, ShadeGreen und ShadeBlu enthalten nun rote, grüne und blau Schattierungskarten, die aus den in den Bild-Speicherfeldern Redmap, Greenmap und Bluemap gespeicherten roten, grünen und blauen Bilddaten abgeleitet sind.
  • Fig. 6A und Fig. 6B, SEGMENT 4
  • Dieser optionale Schritt macht die in den Bild-Speicherfeldern Redmap, Greenmap und Bluemap gespeicherten Bilddaten weniger verschwommen und schärfer. Das ist nur erforderlich, wenn das Eingangsbild nicht besonders scharf ist, weil es mit einem verlustbehafteten Bild- oder Videokompressionsschema wie z.B. JPEG oder MPEG2 komprimiert worden ist. Allgemein gilt, je schärfer das Ausgangsbild ist, desto besser wird der 3D-Effekt des 3D-konvertierten Materials wahrgenommen.
  • Das hier verwendete Verfahren, um die Bilddaten weniger verschwommen und schärfer zu machen, ist der Operation "Unscharf-Maskierung" konzeptionell recht ähnlich. Zuerst werden 15 Pixel in einem Gebiet von 5×5 Pixeln um einen zentralen Pixel ausgewählt, mit einer Pixelwertgewichtung, die grob die Form einer kleinen, runden "Mikrolinse" nachahmt, die über den Pixeln schwebt. Die Gewichte für die ausgewählten Nachbarpixel sind 0,1, 0,15, 0,25, 0,30 oder 0,50. Dann wird das so erzeugte verschwommene Bild, multipliziert mit einem Faktor 2, von dem Eingangsbild abgezogen. Das Resultat ist ein Ausgabebild, das sichtbar schärfer und deutlich weniger verschwommen ist als das ursprüngliche RGB-Eingangsbild oder -video war.
  • (113) Den Variablen microlens1, microlens2, microlens3, microlens4 und microlens5 werden Pixel-Luminanzdaten zugewiesen, die aus 15 Pixeln, die in einem Gebiet von 5×5 Pixeln liegen, ausgewählt und mit 0,10, 0,15, 0,25, 0,30 oder 0,50 gewichtet sind. Der Mittelwert dieser Variablen wird nun berechnet, indem die in den Variablen microlens1, microlens2, microlens3, microlens4 und microlens5 gespeicherten Werte addiert werden und der Gesamtwert dann durch 5 geteilt wird. Der so berechnete Mittelwert wird der Variablen microlens zugewiesen. Nun wird der Wert von microlens multipliziert mit 1 von dem mit 2 multiplizierten Wert des Speicherfelds Redmap[x, y] abgezogen. Der aus dieser Operation resultierende Wert wird der Variablen r zugewiesen.
  • (114) und (115) Die gleiche Operation "optische Schärfung", die in Schritt (113) auf das rote Bildspeicherfeld Redmap angewendet worden ist, wird nun auf die grünen und blauen Bil-Speicherfelder Greenmap und Bluemap angewendet. Die aus diesen Operationen resultierenden Werte werden in den Variablen g und b gespeichert.
  • (116) Die den Variablen r, g und b zugewiesenen Werte werden nun in die RGB-Bildspeicherfelder Redmap, Greenmap und Bluemap an der Indexposition [x, y] geschrieben. Die in den Speicherfeldern Redmap, Greenmap und Bluemap gespeicherten RGB-Bilddaten sind nun deutlich weniger verschwommen und optisch deutlich schärfer, als dies vor diesem Segment der Fall war.
  • Fig. 7, SEGMENT 5
  • Die Operationen in diesem Segment erzeugen die grundlegende Tiefenkarte, die in den danach noch folgenden Operationen dazu verwendet wird, um das 2D-Eingangsbild oder -video in stereoskopisches 3D zu konvertieren.
  • (117) Der Wert der Variablen BaseDepth wird auf 5 gesetzt. Als Nächstes wird die Summe der in den Densogramm-Speicherfeldern DensogramRed, DensogramGreen und DensogramBlue an der Indexposition [x, y] gespeicherten Werte mit 0,00001 multipliziert und das Ergebnis von dem Wert der Variablen BaseDepth abgezogen. Das Resultat dieser Operation wird der Variablen Deep zugewiesen. Nun wird die Summe der in den Schattierungskarten-Speicherfeldern ShadeRed, ShadeGreen und ShadeBlue an der Indexposition [x, y] gespeicherten Werte mit 0,00001 multipliziert und das Ergebnis von dem Wert der Variablen Deep abgezogen. Das Resultat dieser Operation wird der Variablen Deep zugewiesen. Als Nächstes wird die Summe der in den Bild-Speicherfeldern Redmap, Greenmap und Bluemap an der Indexposition [x, y] gespeicherten Werte mit 0,00001 multipliziert und das Ergebnis dessen zu dem Wert der Variablen Deep addiert. Das Resultat dieser Operation wird der Variablen Deep zugewiesen. Als Nächstes wird die Summe der Werte der Bild-Speicherfelder Redmap, Greenmap und Bluemap an der Indexposition [x, y] multipliziert mit der Summe der Werte der Densogramm-Speicherfelder DensogramRed, DensogramGreen, DensogramBlue an der Indexposition [x, y], und das Produkt dieser Summen wird dann wiederum mit dem Wert 0,00000002 multipliziert. Das Resultat dieser Multiplikation wird dann zu dem Wert von Deep addiert. Das Endergebnis dieser Operation wird wiederum der Variablen Deep zugewiesen. Dann wird die Summe der in den Densogramm-Speicherfeldern DensogramRed, DensogramGreen, DensogramBlue an der Indexposition [x, y] gespeicherten Werte quadriert – mit anderen Worten wird die Summe der drei Speicherfelder mit der Summe der drei Speicherfelder multipliziert – und das resultierende Quadrat dieser Summe mit dem Wert 0,00000002 multipliziert. Das Resultat dieser Operation wird von dem Wert von Deep abgezogen. Das Endresultat dieser Subtraktion wird in der Variablen Deep gespeichert. Der letzte Schritt in diesem Segment ist, dass der Wert der Variablen Deep in das Tiefenkarten-Speicherfeld DepthMap an der Indexposition [x, y] geschrieben wird.
  • Fig. 8, SEGMENT 6
  • 8 zeigt eine Operation, die das Bild weniger verschwommen und schärfer macht und die in ihrer Funktion fast identisch mit der zuvor in 6A und 6B gezeigten Operation ist, die das Bild weniger verschwommen und schärfer macht. Dieses Mal wird jedoch das neu erzeugte Tiefen-Speicherfeld DepthMap schärfer gemacht. Diese Operation hilft bei der Erzeugung eines endgültigen 3D-Effekts, der "feinkörnig" und "optisch scharf" ist, und nicht "klecksig" oder "verschwommen" aussieht.
  • (118) Den Variablen microlens1, microlens2, microlens3, microlens4 und microlens5 werden Tiefenkarten-Daten zugewiesen, die aus 15 Zellen, in einem 5 × 5-Zellengebiet, aus Werten aus dem Tiefen-Speicherfeld DepthMap ausgewählt sind. Diese Zellenwerte werden gewichtet oder multipliziert mit Gewichten 0,1, 0,15, 0,25, 0,30 oder 0,40. Dann wird der Mittelwert dieser Werte berechnet, indem die in den Variablen microlens1, microlens2, microlens3, microlens4 und microlens5 gespeicherten Werte addiert werden und das resultierende Ergebnis durch 5 dividiert wird. Das resultierende "verschwommene" Mittel wird in der Variablen microlens gespeichert. Dann wird der mit 0,3 multiplizierte Wert von microlens von dem mit 1,32 multiplizierten Wert des Tiefenkarten-Speicherfelds DepthMap an der Indexposition [x, y] subtrahiert. Der aus dieser Operation resultierende Endwert wird der Variablen d zugewiesen.
  • (119) Wenn der Wert von d größer als 6 ist, wird der Wert von d auf 6 gesetzt. Wenn der Wert der Variablen d kleiner als 0 ist, wird der Wert von d auf 0 gesetzt.
  • (120) Der Wert der Variablen d wird in das Tiefen-Speicherfeld DepthMap an der Indexposition [x, y] geschrieben.
  • Fig. 9, SEGMENT 7
  • In diesem Segment werden auf die Werte des Tiefen Speicherfeldes DepthMap eine Reihe von mathematischen Operationen angewendet, um eine Tiefenkarte zu erzeugen, die den bestmöglichen 3D-Effekt bewirkt, wenn sie dazu verwendet wird, die 3D-Konversion des Eingangsbildes oder Eingangsvideobildes in 11, SEGMENT 9, durchzuführen, das das letzte Segment des in dieser Anmeldung präsentierten 2D-zu-3D-Verfahrens ist.
  • (121) Als erstes wird der numerische Wert des Tiefen-Speicherfeldes DepthMap an der Indexposition [x, y] in die Variable d geschrieben. Als Nächstes wird die Quadratwurzel des Wertes der Variablen d mit 0,3 multipliziert und das Ergebnis von dem Wert der Variablen d subtrahiert. Das Resultat dieser Operation wird der Variablen d zugewiesen. Als Nächstes wird der Sinus des Wertes der Variablen d mit 0,07 multipliziert und das Resultat von dem Wert der Variablen d subtrahiert. Das Resultat dieser Operation wird der Variablen d zugewiesen. Als Nächstes wird der Cosinus des Wertes der Variablen d mit 0,60 multipliziert, und das Ergebnis wird zu dem Wert der Variablen d addiert. Das Resultat dieser Operation wird der Variablen d zugewiesen. As Nächstes wird der Tangens des Wertes der Variablen d mit 0,015 multipliziert und das Ergebnis von dem Wert der Variablen d subtrahiert. Das Resultat dieser Operation wird der Variablen d zugewiesen. Danach wird der Wert der Variablen d mit 0,8 multipliziert und dazu das Quadrat des Wertes der Variablen d multipliziert mit 0,045 addiert. Das Resultat dieser Operation wird der Variablen d zugewiesen. Als Nächstes wird der mathematische Absolutwert der Differenz der Zahl 6 und des Wertes der Variablen d berechnet. Das Resultat dieser Operation wird der Variablen remnant zugewiesen. Nun wird das Produkt der Variablen remnant mit 0,1 zu dem Wert von d addiert. Das Resultat dieser Operation wird der Variablen d zugewiesen. Als Nächstes wird die Summe der Densogramm-Speicherfelder DensogramRed, DensogramGreen und DensogramBlue an der Indexposition [x, y] mit 0,00002 multipliziert, und das Ergebnis wird zu dem Wert der Variablen d addiert. Das Resultat dieser Operation wird der Variablen d zugewiesen.
  • (122) Wenn der Wert der Variablen d größer als 6,5 ist, wird der Wert der Variablen d auf 6,5 gesetzt.
  • (123) Der Wert der Variablen d wird mit 1 multipliziert und dem Speicherplatz in dem Tiefenkarten-Speicherfeld DepthMap an der Indexposition [x, y] zugewiesen.
  • Fig. 10, SEGMENT 8
  • In diesem optionalen Segment werden die Bild-Speicherfelder RedMap, GreenMap und BlueMap noch schärfer gemacht unter Verwendung von Nachbar-Pixel-Operationen, die der "Unscharf"-Maskierung ähnlich sind. Anders als bei der in 6A und 6B gezeigten Schärfungs-Operation werden nur 8 Pixel in einem 3×3-Pixel-Gebiet in diesem Schritt ausgewählt. Diese Operation trägt signifikant dazu bei, einen "superscharfen" optischen Schärfegrad in der endgültigen stereoskopischen 3D-Ausgabe des präsentierten 2D-zu-3D-Konversionsverfahrens zu erreichen. Diese Operation wird nur für Eingangsbilder oder -videobilder benötigt, die nicht so scharf sind, wie es zur Erzeugung eines guten stereoskopischen 3D-Effekts notwendig wäre.
  • (124) Die Pixel-Werte des Bild-Speicherfeldes Redmap an den Indexpositionen [x + 1, y], [x, y + 1], [x – 1, y], [x, y – 1] werden, jeweils multipliziert mit dem Gewicht 0,15, von dem mit 1,6 multiplizierten Wert des Bild-Speicherfeldes Redmap an der Indexposition [x, y] abgezogen. Das Resultat dieser Operation wird auf den Speicherplatz in dem Bild-Speicherfeld Redmap an der Indexposition [x, y] geschrieben. Als Nächstes werden die Pixel-Werte des Bild-Speicherfeldes Greenmap an den Indexpositionen [x + 1, y], [x, y + 1], [x – 1, y], [x, y – 1], jeweils mit dem Gewicht 0,15 multipliziert, von dem mit 1,6 multiplizierten Wert des Bild-Speicherfeldes Greenmap an der Indexposition [x, y] subtrahiert. Das Resultat dieser Operation wird in den Speicherplatz des Bild-Speicherfeldes Greenmap an der Indexposition [x, y] geschrieben. Als Nächstes werden die Pixel-Werte des Bild-Speicherfeldes Bluemap an den Indexpositionen [x + 1, y], [x, y + 1], [x – 1, y], [x, y – 1], jeweils multipliziert mit dem Gewicht 0,15, von dem mit 1,6 multiplierten Wert des Bild-Speicherfeldes Bluemap an der Indexposition [x, y] subtrahiert. Das Resultat dieser Operation wird in den Speicher des Bild-Speicherfeldes Bluemap an der Indexposition [x, y] geschrieben. In der zweiten Hälfte von SEGMENT 8 werden die Pixel-Werte des Bild-Speicherfeldes Redmap an den Indexpositionen [x + 1, y + 1], [x – 1, y + ], [x + 1, y – 1], [x – 1, y – 1], jeweils multipliziert mit dem Gewicht 0,1, von dem Produkt aus 1,4 und dem Wert des Bild-Speicherfeldes Redmap an der Indexposition [x, y] subtrahiert. Das Resultat dieser Operation wird in den Speicher des Bild-Speicherfeldes Redmap an der Indexposition [x, y] geschrieben. Als Nächstes werden die Pixel-Werte des Bild-Speicherfeldes Greenmap an den Indexpositionen [x + 1, y + 1], [x – 1, y + 1], [x + 1, y – 1], [x – 1, y – 1], jeweils multipliziert mit dem Gewicht 0,1, von dem Produkt aus 1,4 und dem Wert des Bild-Speicherfeldes Greenmap an der Indexposition [x, y] subtrahiert. Das Resultat dieser Operation wird in den Speicher des Bild-Speicherfeldes Greenmap an der Indexposition [x, y] geschrieben. Als Nächstes werden die Pixel-Werte des Bild-Speicherfeldes Bluemap an den Indexpositionen [x + 1, y + 1], [x – 1, y + 1], [x + 1, y – 1], [x – 1, y – 1], jeweils multipliziert mit dem Gewicht 0,1, von dem Produkt aus 1,4 und dem Wert des Bild-Speicherfeldes Bluemap an der Indexposition [x, y] subtrahiert. Das Resultat dieser Operation wird in den Speicher des Bild-Speicherfeldes Bluemap an der Indexposition [x, y] geschrieben.
  • Die Bild-Speicherfelder Redmap, Greenmap und Bluemap enthalten nun ein RGB-Bild oder Videobild, das viel schärfer als das Original-Eingangsbild oder -Videobild ist.
  • Fig. 11, SEGMENT 9
  • In diesem letzten Segment des Algorithmus findet die eigentliche 2D-zu-3D-Konversion statt. Die Schattierungskarten-Speicherfelder werden auf das Bild angewendet, das 3D-Bild wird wieder aufgehellt und Anti-Aliasing durchgeführt unter Verwendung der Densogramm-Speicherfelder, das Bild wird verschoben, skaliert und deformiert, und schließlich wird das stereoskopische Rot-Cyan-3D-Ausgabebild erzeugt und auf VideoOut.Red, VideoOut.Green und VideoOut.Blue geschrieben.
  • (125) Das Quadrat des Wertes des Tiefen-Speicherfeldes DepthMap an der Indexposition [x, y] wird mit 0,22 und dann mit 1,2 multipliziert. Als Nächstes wird zu diesem Resultat der mit 0,08 multiplizierte Wert des Tiefen-Speicherfeldes DepthMap an der Indexposition [x, y] addiert. Zu diesem neuen Resultat wird dann der mit 0,00137 multiplizierte Wert des Tiefen-Speicherfeldes DepthMap an der Indexposition [x, y] addiert. Von diesem Resultat wird dann die Zahl 3 subtrahiert. Das letzte nun erzeugte Resultat wird in eine ganze Zahl umgewandelt. Diese ganze Zahl wird der Variablen Depth zugewiesen. Als Nächstes wird zu dem Wert von Depth das Produkt aus dem Wert von Depth, aus der Differenz von 1 und dem Quotienten von Depth und 128, und aus 0,23 addiert. Das Resultat des Wertes von Depth wird multipliziert mit dem Quotienten aus Depth und 128 und dieses Ergebnis mit 0,23 multipliziert und das so erzielte Ergebnis zu dem Wert von Depth addiert. Die resultierende Zahl wird in eine ganze Zahl umgewandelt. Diese ganze Zahl wird der Variablen Depth zugewiesen. Als Nächstes wird das Y-Achsen-Äquivalent der Variablen Depth erzeugt. Diese Variable wird DepthY genannt. Das Quadrat des Wertes von Depth wird durch 7 dividiert. Das Resultat dieser Operation wird in eine ganze Zahl umgewandelt. Der Wert dieser ganzen Zahl wird der Variablen DepthY zugewiesen.
  • (126) Der numerische Wert, der in dem Bild-Speicherfeld Redmap an der Indexposition [x + Depth, y + DepthY] gespeichert ist, wird mit 1 multipliziert. Das Resultat wird der Variablen r zugewiesen. Der numerische Wert, der in dem Bild-Speicherfeld Greenmap an der Indexposition [x – Depth, y – DepthY] gespeichert ist, wird mit 1 multipliziert. Das Resultat wird der Variablen g zugewiesen. Der numerische Wert, der in dem Bild-Speicherfeld Bluemap an der Indexposition [x-Depth, y-Depth y] gespeichert ist, wird mit 1 multipliziert. Das Resultat wird der Variablen b zugewiesen. Bemerkung: Die Versetzungswerte Depth und DepthY, die für r verwendet werden, und diejenigen, die für g und b verwendet werden, sind bei dieser Operation entgegengesetzt. Die Variable r leitet ihren Wert von positiven Versetzungen Depth und DepthY ab, während die Variablen g und b ihre Werte von negativen Versetzungen Depth und DepthY ableiten.
  • (127) Die mittlere Luminanz der in den Variablen r, g und b gespeicherten RGB-Werte wird berechnet und in der Variablen avg gespeichert. Der Mittelwert wird unter Verwendung von 31 % des Wertes von r, 59 % des Wertes von g und 10 % des Wertes von b berechnet. Nun wird der Wert von r von dem Wert von avg subtrahiert. Das Resultat wird in der Variablen r gespeichert. Der Wert von g wird von dem Wert von avg subtrahiert. Das Resultat wird in der Variablen g gespeichert. Der Wert von b wird von dem Wert von avg subtrahiert. Das Resultat wird in der Variablen b gespeichert. Die Variablen r, g und b enthalten nun Werte, die die "Farbintensität" oder den "Sättigungsgrad" der prozessierten RGB-Kanäle repräsentieren.
  • (128) Der Wert von avg wird mit 1,3 multipliziert. Von dem Resultat dieser Operation wird der Wert von r multipliziert mit 1 abgezogen. Von diesem neuen Resultat wird nun der Wert von r multipliziert mit 0,2 und multipliziert mit dem Wert von Depth geteilt durch 2 subtrahiert. Schließlich wird zu diesem Gesamtergebnis die Zahl 30 addiert. Das Resultat dieser Operationen wird der Variablen r zugewiesen. Diese Operation wird nun in ähnlicher Weise für die Farbkanäle grün und blau wiederholt: Der Wert von avg wird mit 1,3 multipliziert. Von dem Resultat dieser Operation wird der Wert von g multipliziert mit 1,1 subtrahiert. Von diesem Resultat wird nun der Wert von g multipliziert mit 0,2 und multipliziert mit dem Wert von Depth geteilt durch 2 subtrahiert. Schließlich wird zu diesem Gesamtergebnis die Zahl 30 addiert. Das Resultat dieser Operationen wird der Variablen g zugewiesen. Als Nächstes wird der Wert von avg mit 1,3 multipliziert. Von dem Resultat dieser Operation wird der Wert von b multipliziert mit 1,1 subtrahiert. Von diesem Resultat wird nun der Wert von b multipliziert mit 0,2 und multipliziert mit dem Wert von Depth geteilt durch 2 subtrahiert. Schließlich wird zu diesem Gesamtergebnis die Zahl 30 addiert. Das Resultat dieser Operationen wird der Variablen b zugewiesen.
  • (128) Der Wert von r wird mit 1 multipliziert. Von diesem Resultat wird das Quadrat des Wertes von r multipliziert mit 0,00006 subtrahiert. Von diesem neuen Resultat wird die Zahl 30 subtrahiert. Das Resultat dieser Operationen wird der Variablen r zugewiesen. Die gleiche Operation wird nun auf die Farbkanäle grün und blau angewendet: Der Wert von g wird mit 1 multipliziert. Von diesem Resultat wird das Quadrat des Wertes von g multipliziert mit 0,00006 subtrahiert. Von diesem neuen Resultat wird die Zahl 30 subtrahiert. Das Resultat dieser Operationen wird der Variablen g zugewiesen. Der Wert von b wird mit 1 multipliziert. Von diesem Resultat wird das Quadrat des Wertes von b multipliziert mit 0,00006 subtrahiert. Von diesem neuen Resultat wird die Zahl 30 subtrahiert. Das Resultat dieser Operationen wird der Variablen b zugewiesen.
  • (129) Diese Operation verwendet die Schattierungskarten-Speicherfelder ShadeRed, ShadeGreen und ShadeBlue, die auf verschiedene Arten und Weisen zu und von den Werten von r, g und b addiert und subtrahiert werden, um einen stereoskopischen 3D-Effekt mit höherer Intensität und einer besseren Wahrnehmbarkeit von 3D-Volumen zu erzeugen. Ein Nebeneffekt dieser Operation besteht darin, dass das erzeugte endgültige 3D-Bild schärfer aussieht und auch "verpixelter", als dies ohne diese Operation der Fall wäre.
  • (129) Der Wert der Variablen ShademapMult wird auf 0,40 gesetzt. Der Wert von r wird mit 1 multipliziert. Zu diesem Resultat wird der Wert von r multipliziert mit dem Produkt aus 0,045, dem Wert von ShadeRed[x + Depth, y + DepthY] und dem Wert von ShademapMult addiert. Das Endresultat der Operation wird der Variablen r zugewiesen. Der Wert von g wird mit 1 multipliziert. Von diesem Resultat wird der Wert von g multipliziert mit dem Produkt aus 0,040, dem Wert von ShadeGreen[x - Depth, y - DepthY] und dem Wert von ShademapMult subtrahiert. Das Endresultat der Operation wird der Variablen g zugewiesen. Der Wert von b wird mit 1 multipliziert. Von diesem Resultat wird der Wert von b multipliziert mit dem Produkt aus 0,040, dem Wert von ShadeBlue[x - Depth, y - DepthY] und dem Wert von ShademapMult subtrahiert. Das Endergebnis dieser Operation wird der Variablen b zugewiesen.
  • (129) Der Wert von r wird mit 1 multipliziert. Zu diesem Resultat wird der Wert von r multipliziert mit dem Produkt aus 0,045, aus dem Wert von ShadeRed[x + Depth, y + DepthY], aus dem Quotienten von avg und 255, und aus dem Wert von ShademapMult, addiert. Das Endresultat der Operation wird der Variablen r zugewiesen. Der Wert von g wird mit 1 multipliziert. Von diesem Resultat wird der Wert von g multipliziert mit dem Produkt aus 0,040, aus dem Wert von ShadeGreen[x – Depth, y - DepthY], aus dem Quotienten von avg und 255, und aus dem Wert von ShademapMult, subtrahiert. Das Endresultat der Operation wird der Variablen g zugewiesen. Der Wert von b wird mit 1 multipliziert. Von diesem Resultat wird der Wert von b multipliziert mit dem Produkt aus 0,040, aus dem Wert von ShadeBlue[x - Depth, y - DepthY], aus dem Quotienten von dem Wert von avg und 255, und aus dem Wert von ShademapMult, subtrahiert. Das Endresultat der Operation wird der Variablen b zugewiesen.
  • (129) Der Wert von r wird mit 1 multipliziert. Von diesem Resultat wird der Wert von r multipliziert mit dem Produkt aus 0,045, aus dem Wert von ShadeRed[x + Depth, y + DepthY], aus der Differenz aus 1 und dem Quotienten von avg und 255, und aus dem Wert von ShademapMult, subtrahiert. Das Endresultat der Operation wird der Variablen r zugewiesen. Der Wert von g wird mit 1 multipliziert. Zu diesem Resultat wird der Wert von g multipliziert mit dem Produkt aus 0,040, aus dem Wert von ShadeGreen[x - Depth, y - DepthY], aus der Differenz aus 1 und dem Quotienten von avg und 255, und aus dem Wert von ShademapMult, addiert. Das Endresultat der Operation wird der Variablen g zugewiesen. Der Wert von b wird mit 1 multipliziert. Zu diesem Resultat wird der Wert von b multipliziert mit dem Produkt aus 0,040, aus dem Wert von ShadeBlue[x - Depth, y - DepthY], aus der Differenz aus 1 und dem Quotienten von avg und 255, und aus dem Wert von ShademapMult, addiert. Das Endresultat der Operation wird der Variablen b zugewiesen.
  • (129) Die die Schattierungskarte betreffenden Operationen in diesem Schritt resultieren in einem endgültigen 3D-Bild, das "voluminöser", stärker "dreidimensional" und auch "optisch schärfer" und etwas stärker "verpixelt" wirkt.
  • (130) Der Wert von r wird mit 1 multipliziert, und 0 wird zu diesem Produkt addiert. Das Resultat dieser Operation wird der Variablen r zugewiesen. Der Wert von g wird mit 0,8 multipliziert, und 0 wird zu diesem Produkt addiert. Das Resultat dieser Operation wird der Variablen g zugewiesen. Der Wert von b wird mit 0,9 multipliziert, und 0 wird zu diesem Produkt addiert. Das Resultat dieser Operation wird der Variablen b zugewiesen. Dies sind Luminanz- und Farbkorrekturschritte, die helfen, ein helles Bild mit genauer Farbreproduktion zu erzeugen, wenn es durch 3D-Brillen mit Linsen in Rot und Cyan betrachtet wird.
  • (130) Zu dem Wert von r wird das Quadrat des Wertes von DensogramRed[x + Depth, y + DepthY] multipliziert mit 0,001 addiert. Zu diesem Resultat wird 0 addiert. Das Resultat dieser Operation wird der Variablen r zugewiesen. Zu dem Wert von g wird das Quadrat des Wertes von DensogramGreen[x - Depth, y – DepthY] multipliziert mit 0,001 addiert. Zu diesem Resultat wird 0 addiert. Das Resultat dieser Operation wird der Variablen g zugewiesen. Zu dem Wert von b wird das Quadrat des Wertes von DensogramBlue[x - Depth, y - DepthY] multipliziert mit 0,001 addiert. Zu diesem Resultat wird 0 addiert. Das Resultat dieser Operation wird der Variablen b zugewiesen.
  • (130) Die Addition des Quadrats des Wertes der Densogramm-Speicherfelder DensogramRed, DensogramGreen und DensogramBlue multipliziert mit 0,001 zu den in den Variablen r, g und b gespeicherten Bilddaten hat drei verschiedene Effekte. Der erste Effekt ist, dass das endgültig erzeugte 3D-Bild heller erleuchtet erscheint, als es ohne diesen Schritt erscheinen würde. Der zweite Effekt ist, dass das endgültig erzeugte 3D-Bild durch diesen Schritt einem recht effektiven "Anti-Aliasing" (Kantenglättung) unterzogen ist. Der dritte Effekt ist, dass in den in 3D konvertierten Videos "Flackern" auf Pixel-Level, verursacht durch agressive optische Bildschärfung, signifikant reduziert ist. Zusammengefasst: Das Bild sieht heller aus, ist kantengeglättet, und ein erheblicher Anteil von Bildflackern auf Pixel-Level, das aufgrund von verstärkter Bildschärfe auftreten könnte, tritt in dem bewegten Bild nicht auf.
  • (131) Wenn der Wert der Variablen r größer als 255 ist, wird der Wert der Variablen r auf 255 gesetzt. Wenn der Wert der Variablen r kleiner als 0 ist, wird der Wert der Variablen r auf 0 gesetzt. Wenn der Variablen g größer als 255 ist, wird der Wert der Variablen g auf 255 gesetzt. Wenn der Wert der Variablen g kleiner als 0 ist, wird der Wert der Variablen g auf 0 gesetzt. Wenn der Variablen b größer als 255 ist, wird der Wert der Variablen b auf 255 gesetzt. Wenn der Wert der Variablen b kleiner als 0 ist, wird der Wert der Variablen b auf 0 gesetzt.
  • (132) Der Wert der Variablen PostShiftX wird auf –4 gesetzt. Der Wert der Variablen PostShiftY wird auf –1 gesetzt. Je höher diese Werte festgesetzt werden, desto mehr 3D-Tiefe erzeugt das Verfahren. Nun wenden wir uns den Skalierungsparametern xs, ys, xp und yp zu. Diese Skalierungsparameter werden dazu verwendet, um das RGB-Bild zu skalieren, das in dem letzten Schritt des Verfahrens auf VideoOut.Red, VideoOut.Green und VideoOut.Blue geschrieben wird.
  • (132) Für den ersten Skalierungsparameter wird der Wert der Variablen Depth mit 0,0003 multipliziert und zu dem Wert 0,9825 addiert. Das Resultat dieser Operation wird mit dem Wert der Variablen x multipliziert. Das neue Resultat wird in eine ganze Zahl umgewandelt, und diese ganze Zahl wird der Variablen xs zugewiesen. Für den zweiten Skalierungsparameter wird der Wert der Variablen DepthY mit 0,0003 multipliziert und das Ergebnis zu dem Wert 0,9985 addiert. Das Resultat dieser Operation wird mit dem Wert der Variablen y multipliziert. Das neue Resultat wird in eine ganze Zahl umgewandelt, und diese ganze Zahl wird der Variablen ys zugewiesen. Für den dritten Skalierungsparameter wird der Wert der Variablen Depth mit 0,0003 multipliziert und das Ergebnis von dem Wert 0,9985 subtrahiert. Das Resultat dieser Operation wird mit dem Wert der Variablen x multipliziert. Das neue Resultat wird in eine ganze Zahl umgewandelt, und diese ganze Zahl wird der Variablen xp zugewiesen. Für den vierten Skalierungsparameter wird der Wert der Variablen DepthY mit 0,0003 multipliziert und das Ergebnis von dem Wert 0,9825 subtrahiert. Das Resultat dieser Operation wird mit dem Wert der Variablen y multipliziert. Das neue Resultat wird in eine ganze Zahl umgewandelt, und diese ganze Zahl wird der Variablen yp zugewiesen.
  • (132) Diese Skalierungswerte tragen dazu bei, einen endgültigen 3D-Effekt zu erzeugen, der mehr "3D-Volumen", "3D-Tiefe" und "Z-Tiefe" hat, als wenn keine Skalierung angewendet worden wäre.
  • (132) Der Wert der Variablen r wird in eine ganze Zahl umgewandelt. Der Wert dieser ganzen Zahl wird in VideoOut.Red an der Indexposition [xs – 22 – PostShiftX, ys – 22 – PostShiftY] geschrieben. Der Wert der Variablen g wird in eine ganze Zahl umgewandelt. Der Wert dieser ganzen Zahl wird in VideoOut.Green an der Indexposition [xp – 22 + PostShiftX, yp – 22 + PostShiftY] geschrieben. Der Wert der Variablen b wird in eine ganze Zahl umgewandelt. Der Wert dieser ganzen Zahl wird in VideoOut.Blue an der Indexposition [xp – 22 + PostShiftX, yp – 22 + PostShiftY] geschrieben.
  • (132) Technische Bemerkung: An dem Punkt, wo die Werte der Variablen r, g und b in VideoOut.Red, VideoOut.Green und VideoOut.Blue geschrieben werden, wird eine horizontale und vertikale Positionsversetzung von –22 Pixeln, anstatt von –25 Pixeln, vorgenommen. Das liegt daran, dass die genau vor dieser Operation durchgeführte Skalierung des RGB-Bildes die Größe des Bildes um einige Pixel vermindert hat und bewirkt hat, dass es nicht mehr perfekt zentriert in dem erzeugten 3D-Ausgangsbild sitzt. Die Verwendung eines letzten Versetzungswertes von –22 anstelle von –25 ermöglicht es dem Verfahren, das leicht geschrumpfte Bild wieder richtig zu zentrieren und den Mittelpunkt des betrachteten 3D-Bildes annäherungsweise dort zu platzieren, wo er liegen würde, wenn in Schritt (132) keine Skalierung angewendet worden wäre.
    • 1) Einige Ausführungsformen des präsentierten Verfahrens führen "physikalisch korrekte" oder "optisch korrekte" 2D- zu 3D-Konversionen durch. Transparente Objekte und Reflexionen und Brechungen werden zum Beispiel korrekt behandelt, genau so, als ob sie in echtem stereoskopischem 3D aufgenommen worden wären. Ein Schauspieler, der in einem Auto hinter einer getönten Scheibe sitzt, auf der es zum Beispiel auch Umgebungsreflexionen gibt, wird korrekt in 3D konvertiert. Die Reflexionen an der Scheibe vor dem Schauspieler werden in der stereoskopischen 3D-Version der Aufnahme nicht "an dem Gesicht des Schauspielers kleben", was bei einem weniger ausgeklügelten 2D-zu 3D-Verfahren passieren könnte. Das präsentierte Verfahren handhabt auch übliche optische Phänomene wie Bewegungsunschärfe, Tiefenschärfe, Bokeh, Objektivverzeichnung, Linsenreflexionen, Körnigkeit, halbdurchsichtige Objekte mit unscharfen Kanten (z. B. Haar oder Pelz), Volumenobjekte (Rauch, Feuer, Nebel, Dunst, Wolken) oder andere optische Phänomene und Objekte, die korrekt in ruhenden Bildern oder bewegten Bildern erscheinen.
    • 2) Das präsentierte Verfahren ist ein voll automatisches 2D-zu-3D-Konversionsverfahren. Es wird keine menschliche Bedienungsperson oder -Überwachung, keine Kalibration oder aufwändige Parametereinstellung benötigt, um 2D-Inhalt mit diesem Verfahren in 3D zu konvertieren. Sehr große Mengen von Bildern und Filmmaterial können in voll automatischer Weise durch Batch-Konversion in stereoskopisches 3D umgewandelt werden. Beispiel: Eine große Menge von Bildern und Filmmaterial aus dem zweiten Weltkrieg aus einem Archiv mit 50.000 Stunden Filmmaterial und 250.000 Fotografien können in automatischer Weise in 3D konvertiert werden, und zwar im Verlauf einiger Monate auf einer Anzahl von PCs, die zur parallelen Abarbeitung eingerichtet sind, ohne die Anwesenheit einer menschlichen Bedienungsperson, eines Stereographen oder anderer Spezialisten für 3D-Konversion zu allen Zeiten zu erfordern. Nur einige Problemfilmaufnahmen mit ungewöhnlicher Beleuchtung, Schärfe oder Farbcharakteristiken erfordern manuelle Parametereinstellung.
    • 3) Das präsentierte Verfahren ist so konzipiert, dass es ein "minimalistisch" kurzes, schnelles, unkompliziertes 3D-Konversionsverfahren ist. Wenn das Verfahren in Hardware implementiert ist, sind die Kosten für Herstellung und Konzeption und die Gesamtkomplexität der Hardware so niedrig wie möglich. Wenn das Verfahren als Software-Algorithmus angewendet wird, kann es in Echtzeit auf einer Vielzahl von GPUs laufen, einschließlich weniger teuren GPUs auf Einstiegsniveau oder mittlerem Niveau, wie man sie üblicherweise in Smartphones und Tablet-Computern findet.
    • 4) Das präsentierte Verfahren ist, wenn es wie in dieser Anmeldung gezeigt implementiert ist, komplett stabil und verlässlich. Während Tests konnte der Software-Prototyp des präsentierten Verfahrens über Monate laufen, ohne dass ein einziger Absturz oder andere Stabilitäts- oder Zuverlässigkeitsprobleme auftraten.
    • 5) Das präsentierte Verfahren ist ein von oben nach unten, von links nach rechts abtastendes "Scanline"-Bild- und Video-Prozessierverfahren, das in neun Segmente aufgeteilt ist. Jedes der neun Segmente, aus denen sich das Verfahren zusammensetzt, ist vollständig parallelisierbar oder fähig zu Multi-Threading – das prozessierte digitale Bild oder Videobild kann in überlappende Streifen oder Felder aufgeteilt werden, die dann von verschiedenen GPUs oder GPU-Kernen prozessiert werden. Dies macht das Verfahren – als Software-Algorithmus – hochgradig geeignet, in Echtzeit auf parallel prozessierender, beschleunigender Hardware zu laufen, wie etwa programmierbaren GPUs (z. B. Nvidia Tegra), Ko-Prozessor-Boards (z. B. Intel Xeon Phi), FPGAs und einigen SOCs ("System On Chip"), die in smarten TV-Geräten und Set-Top-Boxen verwendet werden, die eine eingebaute GPU haben.
    • 6) Das präsentierte Verfahren verwendet schnell ausführbare Gleit, -Operationen – wie Addition, Subtraktion, Multiplikation, Division – soweit dies möglich ist. Das erhöht die Wahrscheinlichkeit, dass GPUs auf Einstiegsniveau oder mittlerem Niveau das 2D-zu 3D-Verfahren in Echtzeit mit Geschwindigkeit von 24 bis 60 Bildern pro Sekunde ausführen können.
    • 7) Das präsentierte Verfahren kann billige 3D-Anaglyphen-Brillen aus Pappe verwenden, die pro Stück nur wenige Cents kosten, um 3D-Sehen zu ermöglichen. Es werden keine teuren, aktiven Shutterbrillen oder passiv polarisierte 3D-Brillen benötigt.
    • 8) Die stereoskopische 3D-Ausgabe des Verfahrens kann auf jedem Farbbildschirm oder jeder anderen Ausgabeeinrichtung gesehen werden, die RGB-Farben anzeigen kann und eine Auflösung von 400×300 Pixeln oder besser hat. Das umfasst Smartphones, Tablet-Computer, Computer-Bildschirme von Laptops und Desktops, normale 2D-Fernsehgeräte (CRT, LCD, LED, Plasma) und andere. Die 3D-Ausgabe des Verfahrens kann auch unter Verwendung jedes regulären Farbprojektors auf eine Leinwand oder eine Wand projiziert werden. Es werden keine teuren 3D-Bildschirme oder spezielle 3D-fähige Projektoren benötigt, um das durch dieses Verfahren erzeugte 3D-Filmmaterial zu betrachten. Außerdem können die durch das Verfahren erzeugten Rot-Cyan-3D-Anaglyphen-Bilder durch einen Farbdrucker oder Fotokopierer, mit einiger Rekalibration, auf Papier gedruckt und mit Rot-Cyan-3D-Anaglyphen-Brillen betrachtet werden. Dies ermöglicht auf Druck basierende Anwendungen wie die Veröffentlichung eines Magazins mit 3D-Bildern darin, oder erlaubt es, dass ein Farbfotokopierer Stereo-3D-Kopien von 2D-Eingangsmaterial erzeugt.
    • 9) Die Rot-Cyan-3D-Anaglyphen-Videoausgabe des Verfahrens ist technisch gesprochen nicht verschieden von einem regulären 2D-RGB-Video. Das 3D-Filmmaterial kann ausgestrahlt werden – analoge oder digitale TV-Ausstrahlung – oder gestreamt werden mit SD- und HD-Auflösungen, zu jedem Farbfernsehgerät oder jeder anderen Farbanzeigeeinrichtung, genau wie reguläres 2D-Filmmaterial. Die 3D-Anaglyphen-Ausgabe des Verfahrens kann auch unter Verwendung eines regulären Video-Codec komprimiert werden und kann auf physischen Medien, die für 2D-Filmmaterial hergestellt sind, wie DVDs und Blueray Disks, gespeichert und ausgeliefert werden. Der einzige Unterschied zu gewöhnlichem 2D-Filmmaterial ist, dass das durch das präsentierte Verfahren erzeugte 3D-Filmmaterial typischerweise viel schärfer als das Eingangsfilmmaterial ist. Daher kann eine höhere Bitrate erforderlich sein, um das gegenüber dem normalen schärfere 3D-Material zu komprimieren, ohne bei der Kompression Schärfe zu verlieren.
    • 10) Das präsentierte Verfahren verbessert das 2D-Video-Filmmaterial unter vier verschiedenen Gesichtspunkten. 1) Das 2D-Filmmaterial wird zu stereoskopischem 3D verbessert. 2) Das Filmmaterial wird digital aufgehellt und der Kontrast eingestellt zum optimalen Betrachten durch passive 3D-Brillen mit Rot-Cyan-Linsen. 3) Die Farben des Quellenfilmmaterials werden verbessert in strahlendere und lebendigere Farben. 4) Die optische Schärfe des Filmmaterials wird um bis zu 200 % erhöht. Die Schärfe des Filmmaterials ist bei der 3D-Konversion von Bedeutung. Je schärfer das Filmmaterial ist, desto stärkere 3D-Effekte werden wahrgenommen. Verschwommenes Filmmaterial auf der anderen Seite vermindert tendenziell den 3D-Effekt und die Intensität beim Ansehen von stereoskopischem 3D-Material.

Claims (2)

  1. Verfahren zum Konvertieren von wenigstens einem von zweidimensionalen Bildern und Videobildern in stereoskopisches 3D, wobei bei dem Verfahren: a) wenigstens eines von zweidimensionalen digitalen Bildern und Videobildern einem Bildverarbeitungssystem zugeführt wird, wobei das System aufweist: i) wenigstens eines von einer zentralen Prozessoreinheit, einer Graphik-Prozessoreinheit, einem Ko-Prozessor, einem FPGA, einem ASIC und einem anderen Prozessor, der dazu in der Lage ist, das Verfahren in Echtzeit und/oder im Offline-Modus durchzuführen, ii) eine Ausgabe, die wenigstens eines von durch das Verfahren erzeugten stereoskopischen 3D-Anaglyphen-Bildern und -Videobildern für wenigstens eines von Speicherung, Prozessierung, Kompression, Anzeige, Streaming und Ausstrahlung bereitstellt, iii) eine Mehrzahl von zweidimensionalen Speicherfeldern, die dazu konzipiert sind, beim Speichern von, Zugreifen auf und beim Prozessieren von wenigstens einem Bild, einer Schattierungskarte, einem Licht-Densogramm und einer Tiefenkarte verwendet zu werden, und iv) eine Vielzahl von parallelisierbaren, ineinander verschachtelten Schleifen, die dazu konzipiert sind, um wenigstens eines von einer bildprozessierenden Operation und einer mathematischen Operation auszuführen, b) eine Schattierung von wenigstens einem von den zweidimensionalen Bildern und Videobildern, die prozessiert werden, analysiert wird, um rote, grüne und blaue Schattierungskarten zu erzeugen, c) die Leuchtdichte von wenigstens einem von den zweidimensionalen Bildern und Videobildern, die prozessiert werden, analysiert wird, um rote, grüne und blaue Licht-Densogramme zu erzeugen, d) eine Tiefenkarte erzeugt wird, die dazu verwendet wird, um das wenigstens eine von den prozessierten zweidimensionalen Bildern und Videobildern zu stereoskopischem 3D zu prozessieren, e) Helligkeit und/oder Beleuchtung des wenigstens einen von den prozessierten zweidimensionalen Bilder und Videobildern eingestellt wird, f) eine Farbe des wenigstens einen der prozessierten zweidimensionalen Bilder und Videobilder eingestellt wird, g) eine optische Schärfe des wenigstens einen der prozessierten zweidimensionalen Bildern und Videobildern erhöht wird, h) ein Quadrat der generierten roten, grünen und blauen Licht-Densogramme verwendet wird, um das wenigstens eine von den zweidimensionalen Bildern und Videobildern aufzuhellen und/oder das wenigstens eine von den zweidimensionalen Bildern und Videobildern einer Kantenglättung zu unterziehen und/oder im Zusammenhang mit Schärfe stehendes Flackern im bewegten Video zu reduzieren, und i) wenigstens eines von einem Eingangsbild und einem Videobild auf dem Pixel-Level verschoben, skaliert und deformiert wird, um ein synthetisches linkes Augenbild und ein synthetisches rechtes Augenbild zu erzeugen, die zusammen ein Anaglyphen-Ausgabebild ergeben, das dazu konzipiert ist, um als ein stereoskopisches 3D-Bild zu erscheinen.
  2. System zum Konvertieren von wenigstens einem von zweidimensionalen Bildern und Videobildern in stereoskopisches 3D, wobei das System aufweist: a) einen Eingang, der dazu eingerichtet ist, wenigstens eines von zweidimensionalen digitalen Bildern und Videobildern in das System aufzunehmen, b) wenigstens eines von einer zentralen Prozessoreinheit, einer Graphik-Prozessoreinheit, einem Ko-Prozessor, einem FPGA, einem ASIC und einem anderen Prozessor, der dazu in der Lage ist, mit dem System zu funktionieren, um das wenigstens eine von den zweidimensionalen Bildern und Videobildern in Echtzeit und/oder im Offline-Modus in stereoskopisches 3D zu konvertieren, c) einen Ausgang, der dazu eingerichtet ist, das wenigstens eine von stereoskopischen 3D-Anaglyphen-Bildern und 3D-Anaglyphen-Videobildern, die von dem System erzeugt worden sind, für wenigstens eine der folgenden Operationen bereitzustellen: Speicherung, Prozessierung, Kompression, Anzeige, Streaming und Ausstrahlung, d) eine Mehrzahl von zweidimensionalen Speicherfeldern, die dazu eingerichtet sind, wenigstens eines von einem Bild, einer Schattierungskarte, einem Licht-Densogramm und einer Tiefenkarte zu speichern, darauf zuzugreifen und zu prozessieren, e) eine Mehrzahl von parallelisierbaren, verschachtelten Schleifen, die dazu konzipiert sind, wenigstens eine von einer Bildprozessierungsfunktion und einer mathematichen Operation durchzuführen, und f) eine Bildprozessierungsfunktion, die die Schattierung von dem wenigstens einen von den zweidimensionalen Bildern und Videobildern, die verarbeitet werden, analysiert, um in dem Prozess rote, grüne und blaue Schattierungsmasken zu erzeugen, wobei das System dazu eingerichtet ist, Folgendes auszuführen: i) eine Bildprozessierungsfunktion, die eine Leuchtdichte des wenigstens einen von den zweidimensionalen Bildern und Videobildern, die verarbeitet werden, analysiert, um rote, grüne und blaue Licht-Densogramme zu erzeugen, ii) eine Vielzahl von mathematischen Operationen, die eine Tiefenkarte erzeugen, die zur Konversion des wenigstens einen der zweidimensionalen Bilder und Videobilder, die in stereoskopisches 3D prozessiert werden, verwendet wird, iii) eine Vielzahl von mathematischen Operationen, um eine Helligkeit und/oder Lichtstärke des wenigstens einen von den zweidimensionalen Bildern und Videobildern, die prozessiert werden, einzustellen, iv) eine Vielzahl von mathematischen Operationen, die eine Farbe des wenigstens einen von den zweidimensionalen Bildern und Videobildern, die prozessiert werden, einzustellen, v) eine Vielzahl von bildprozessierenden Operationen, die eine optische Schärfe des wenigstens einen von den prozessierten zweidimensionalen Bildern und Videobildern erhöhen, vi) eine bildprozessierende Operation, die ein Quadrat der roten, grünen und blauen Licht-Densogramme verwendet, um das wenigstens eine von den zweidimensionalen Bildern und Videobildern aufzuhellen, um eine Kantenglättung des wenigstens einen von den zweidimensionalen Bildern und Videobildern durchzuführen und um mit der Schärfe in Verbindung stehendes Flackern im bewegten Video zu reduzieren, und vii) eine Vielzahl von mathematischen Operationen, die dazu konzipiert sind, um wenigstens eines von einem Eingangsbild und einem Videobild auf Pixel-Level zu verschieben, zu skalieren und zu deformieren, um ein synthetisches linkes Augenbild und ein synthetisches rechtes Augenbild zu erzeugen, die zusammen ein Anaglyphen-Ausgangsbild bilden, das dazu konzipiert ist, um als ein stereoskopisches 3D-Bild zu erscheinen.
DE112015004871.5T 2014-10-27 2015-08-24 Verfahren zur automatisierten Echtzeit-Konversion von 2D-RGB-Bildern und -Video in stereoskopische Rot-Cyan-3D-Anaglyphen Pending DE112015004871T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/524,964 US9131209B1 (en) 2014-10-27 2014-10-27 Method for automated realtime conversion of 2D RGB images and video to red-cyan stereoscopic anaglyph 3D
US14/524,964 2014-10-27
PCT/TR2015/000291 WO2016068818A1 (en) 2014-10-27 2015-08-24 The specifications method for automated realtime conversion of 2d rgb images and video to red-cyan stereoscopic anaglyph 3d

Publications (1)

Publication Number Publication Date
DE112015004871T5 true DE112015004871T5 (de) 2017-07-20

Family

ID=54012730

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004871.5T Pending DE112015004871T5 (de) 2014-10-27 2015-08-24 Verfahren zur automatisierten Echtzeit-Konversion von 2D-RGB-Bildern und -Video in stereoskopische Rot-Cyan-3D-Anaglyphen

Country Status (3)

Country Link
US (1) US9131209B1 (de)
DE (1) DE112015004871T5 (de)
WO (1) WO2016068818A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108881877B (zh) * 2017-05-12 2020-07-24 京东方科技集团股份有限公司 显示处理装置及其显示处理方法以及显示装置
CN107589559B (zh) * 2017-10-16 2020-05-22 姜玉梅 抗蓝光镜片及其制备方法以及眼镜
TWI677245B (zh) * 2018-03-23 2019-11-11 台達電子工業股份有限公司 投影顯示設備及顯示方法
WO2021097126A1 (en) * 2019-11-12 2021-05-20 Geomagical Labs, Inc. Method and system for scene image modification
CN112492375B (zh) * 2021-01-18 2021-06-04 新东方教育科技集团有限公司 视频处理方法、存储介质、电子设备及视频直播***
CN114827440A (zh) * 2021-01-29 2022-07-29 华为技术有限公司 基于光场显示的显示模式的转换方法及转换装置
US12003697B2 (en) 2021-05-06 2024-06-04 Samsung Electronics Co., Ltd. Wearable electronic device and method of outputting three-dimensional image

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO894497A0 (en) * 1997-09-02 1997-09-25 Xenotech Research Pty Ltd Image processing method and apparatus
US7081918B2 (en) * 2000-04-28 2006-07-25 Fuji Photo Film Co., Ltd. Image processing method, image processing apparatus and recording medium storing program therefor
JP4125252B2 (ja) * 2004-03-02 2008-07-30 株式会社東芝 画像生成装置、画像生成方法、及び画像生成プログラム
US7688280B2 (en) * 2004-05-18 2010-03-30 Lightwild, L.C. Expanded bit map display for mounting on a building surface and a method of creating same
US7783115B2 (en) * 2004-12-14 2010-08-24 Fujifilm Corporation Apparatus and method for setting degrees of importance, apparatus and method for representative image selection, apparatus and method for printing-recommended image selection, and programs therefor
US7893975B2 (en) * 2006-10-13 2011-02-22 Apple Inc. System and method for processing images using predetermined tone reproduction curves
US7773127B2 (en) * 2006-10-13 2010-08-10 Apple Inc. System and method for RAW image processing
US7835569B2 (en) * 2006-10-13 2010-11-16 Apple Inc. System and method for raw image processing using conversion matrix interpolated from predetermined camera characterization matrices
US8682107B2 (en) * 2010-12-22 2014-03-25 Electronics And Telecommunications Research Institute Apparatus and method for creating 3D content for oriental painting
US9414048B2 (en) * 2011-12-09 2016-08-09 Microsoft Technology Licensing, Llc Automatic 2D-to-stereoscopic video conversion

Also Published As

Publication number Publication date
WO2016068818A1 (en) 2016-05-06
US9131209B1 (en) 2015-09-08

Similar Documents

Publication Publication Date Title
DE112015004871T5 (de) Verfahren zur automatisierten Echtzeit-Konversion von 2D-RGB-Bildern und -Video in stereoskopische Rot-Cyan-3D-Anaglyphen
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
US8922628B2 (en) System and process for transforming two-dimensional images into three-dimensional images
US9445072B2 (en) Synthesizing views based on image domain warping
DE112018000311T5 (de) Stereoskopisches Rendering unter Verwendung von Raymarching und ein Broadcaster für eine virtuelle Ansicht für solches Rendering
JP6611837B2 (ja) 映像呈示装置、その方法、プログラム
US8711204B2 (en) Stereoscopic editing for video production, post-production and display adaptation
Mendiburu 3d TV and 3d cinema: tools and processes for creative stereoscopy
WO2018119808A1 (zh) 一种基于3d卷积神经网络的立体视频生成方法
RU2765424C2 (ru) Оборудование и способ для формирования изображения
Devernay et al. Stereoscopic cinema
JPH04504333A (ja) 2次元画像を3次元画像に変換する方法
US9087406B2 (en) Automated stereoscopic computer-animation techniques for determining scaled stereo parameters
DE102015210453B3 (de) Verfahren und vorrichtung zum erzeugen von daten für eine zwei- oder dreidimensionale darstellung zumindest eines teils eines objekts und zum erzeugen der zwei- oder dreidimensionalen darstellung zumindest des teils des objekts
EP3347876B1 (de) Vorrichtung und verfahren zur erzeugung eines modells von einem objekt mit überlagerungsbilddaten in einer virtuellen umgebung
WO2018162509A2 (de) Vorrichtung und verfahren zur darstellung eines raumbilds von einem objekt in einer virtuellen umgebung
CN112446939A (zh) 三维模型动态渲染方法、装置、电子设备及存储介质
Flueckiger Aesthetics of stereoscopic cinema
Du et al. Improving visual quality of view transitions in automultiscopic displays
Neuman Bolt 3D: a case study
WO2009118156A2 (de) Verfahren zum erzeugen einer 3d-abbildung einer szene aus einer 2d-abbildung der szene
JP7387029B2 (ja) ソフトレイヤ化および深度認識インペインティングを用いた単画像3d写真技術
Templin et al. Perceptually‐motivated stereoscopic film grain
DE112008002083T5 (de) Verfahren und Software für Bildtransformation
Xu Capturing and post-processing of stereoscopic 3D content for improved quality of experience

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0013020000

Ipc: H04N0013200000

R012 Request for examination validly filed