Verfahren und Vorrichtung zur Echtzeit-Multiview-Erzeugung
Aufgabenstellung
Autostereoskopische Displays, bei denen mehrere Perspektiven gleichzeitig dargestellt werden, und es so vielen Betrachtern an verschiedenen Betrachtungspositionen gleichzeitig ermöglicht wird, ohne optische Hilfsmittel ein dreidimensionales Raumbild zu betrachten, gewinnen seit einigen Jahren Immer mehr an Bedeutung.
Die Anzahl der gleichzeitig dargesteiften Perspektiven schwankt, im Allgemeinen zwischen 4 und 32. Sie kann in Zukunft jedoch auch höher sein.
Die Menge der Perspektiven, die gleichzeitig angezeigt werden und im Allgemeinen auch zum gleichen Zeitpunkt t aufgenommen wurden, soft im Folgenden als Multivfew-Bild bezeichnet werden.
Betrachtet man einmal den gesamten Produktϊonsprozess von der Aufnahme mit der Stereo-Kamera über dfe kodierte Übertragung bis zur Darstellung auf dem autostereoskopischen Display, so ergeben steh unterschiedliche Anforderungen und Randbedingungen:
• Bei der Aufnahme muss die Kamera leicht zu tragen und handhaben sein. Sie sollte also leicht sein und mit nur wenigen Objektiven (z.B. nur 2) ausgestattet sein.
• Bei der Übertragung sollten so wenig Perspektiven wie möglich gesendet werden, damit die Auflösung für jede Perspektive maximal sein kann.
• Bei der Darstellung sollten so viele Perspektiven wie möglich angezeigt werden, damit möglichst viele optimale Betrachtungspositfonen entstehen.
Diese Anforderungen legen den Schluss nahe, dass es am sinnvollsten wäre, möglichst viele Perspektiven am Ort der Darstellung zu erzeugen. Zusätzlich muss
darauf geachtet werden, dass die Kapazität unterschiedlicher Vorrichtungen trotzdem zu einer Verarbeitungszeit fuhrt, die Kürzer ist als die Zeit zwischen zwei Stereobildern. Dies soll daher das Ziel des eingereichten Patentes sein.
Stand der Technik
Für die Übertragung von Stereobildern wurde im Rahmen der MPEG-Organsation bereits 1996 ein so genanntes „Multivrew-Proftle" (MVP) verabschiedet, welches es ertaubt, mehr als eine Kameraposition konsistent zu kodieren und zu übertragen. In der Praxis wird dies meistens aus den oben genannten Gründen für 2 Kamera- Positionen verwendet werden.
Neben dem Multiview-PrafH von MPEG1 welches im Bereich der digitalen Übertragungen an Bedeutung gewinnen wird, sind aber auch solche, in allgemeine analoge, Formate relevant, die sich aus historischen Gründen ergeben haben. Hier sind z.B. dasField-Sequential-, Inferiaced, Over/Underoder Side-by-Side aus dem Bereich der Video-Recorder zu nennen. In diesen Fällen gibt es keine Disparitätskarte, die als Informationsquelle genommen werden kann.
In CA 2212069 (Ref.4} wird ein Verfahren vorgestellt, bei <lem durch Least- Squares-Qptimierungvσπ Refereπzblöcken im Suchbereich eine optimale Disparität gefunden wird. Dieses Verfahren wird zur Kodierung von Stereobildfolgen verwendet Es wird jedoch nur auf die Lumϊnaπzwerte des Bildes angewendet. Parameter einer affinen Transformation sollen zusätzlich mögliche Unterschiede in der Kalibrierung der Kameraköpfe kompensieren. Da das vorgestellte Verfahren insbesondere für eine optimale Kodierung und Dekodierung von Stereobildfolgen entwickelt wurde, gibt es einen engen Zusammenhang mit den MPEG-Kodϊerungsverfahreπ.
In CA 2 553473 (Ref. 5} wird aus einer monoskopischen Bifdfόlge durch Analyse der Kanten eine Tiefenkarte erzeugt, durch welche zusammen mit dem Origϊnalbild ein Stereobild synthetisiert wird. Da es jedoch keine Informationen über Verdeckungen und die zugehörige Bildinhalte gibt, ist dieses Verfahren für eine optisch korrekte Multivϊew-Erzeugung hier nicht akzeptabel
In US 2007/0104276 Al (Ref.6) wird ein Verfahren und System vorgestellt welches auf dem Standard eines Multiview-Prafils von MPEG beruht Dabei wird so vorgegangen, dass zu einem Referenzbild (z.B. das linke Bild) Disparitätsvektoren zu allen anderen Teilbildem des Multiview-Bildes berechnet werden. Auf der Basis des Referenzbildes und der Disparitätsvektoren werden die TeHbitder rekonstruiert und die Differenz/Korrelation zwischen dem ursprünglichen Teilbild und dem rekonstruierten Teilbild in einer beliebigen Norm bestimmt Der Rekonstruktionsfehler wird zur Definition einer Schatzstruktur verwendet
In WO 2Q077035Ö54 Al (Ref. 7) wird ein Kodieruπgsverfahren vorgestellt weiches dazu dient ein Multiview-Bild von mehreren Kameras möglichst effektiv zu kodieren und dekodieren. Hier wird die Disparität nicht für alle Blöcken berechnet Die Disparität von nicht berechneten Blöcken wird mittels Interpolation auf der Basis einer zugehörige Referenzliste erstellt Dadurch ist es weht erforderlich die Disparität für alle Blöcke zu berechnen. Lineare bzw. kubische zweidimensionale Interpolationsverfahren werden angewendet um die Disparität für nicht berechnete Blöcke zu schätzen.
In US 2005/0185048 Al (Ref. 8} wird eine Zwϊscheπperspekfve dadurch erzeugt, dass in der Zwischeπperspektive ein Block definiert wird und dieser Block im rechten und linken Bild gleichzeitig um eine Disparität verschoben wird bis der Absolutbetrag Summe der Pixelwerte minimal ist Der Bildpunkt der Zwischeπperspektive wird als Mittelwert (verallgemeinert „Überblendung") der gefundenen minimalen Pixeiwerte von linkem und rechtem Bild festgelegt.
in den hier vorgestellten Verfahren und Vorrichtungen sollen aus einem Stereobild mit mindestens 2 Perspektiven zusätzliche (im Allgemeinen 8 und mehr), virtuelle Perspektiven erzeugt werden, unter der Bedingung, dass die Zeit für den gesamten Erzeugungsprozess kleiner ist als die vorgegebene Bifdrate und, dass gleichzeitig die Multiview-Bildqualität maximal Ist.
Es wird nicht vorausgesetzt, dass eine Dϊsparitätskarte bereits existiert Sie kann jedoch, falls vorhanden, zu Hilfe genommen werden, um die Verarbeitungsgeschwϊndigkeit zu erhöhen.
Im allgemeinen Fall werden einerseits die Bildbereiche identifiziert, die sich zwischen zwei Stereobildern der Bildfolge nicht verändert haben. In diesen Bereichen kann sich unter der Voraussetzung, dass sich die geometrischen Parameter der Objektive der Stereo-Kamera nicht verändert haben, auch die zugehörige Disparitätskarte nicht verändert haben.
Andererseits werden durch permanente Zeitmessung während der Verarbeitung die Verarbeitungsparameter permanent angepasst, sodass die Qualität immer maximal ist
Es ergibt sich dadurch ein adaptives Verfahren, das auch auf Belastungsschwankuπgen der zugrunde gelegten Hardware-Vorrichtung reagieren kann.
Beschreibung der Zeichnungen
Fig. 1 istern Btockdiagramm der verschiedenen Verfahrensschritte und ihr Zusammenhang.
Fig.2 zeigt das Grundprinzip der Multivϊew-Kodierung im Rahmen des MPEG- Standards
Fig. 3 zeigt in einer Zeile der Disparitätskarte wie den zuordenbaren Bildpunkten des Unken Stereobildesdϊe rechten Bildpunkte zugeordnet werden. Rechtsverdeckungen sind durch eine-1 im zugehörigen Feld des linken Teiibϊfdes angezeigt. Linksverdeckungen ergeben sich durch Sprunge in der Zuordnung zu den rechten Bildpunkten.
Fig. 4 zeigt exemplarisch wie eine Hardwarestruktur mit mehreren Verarbeitungseinheiten aussehen kann.
Fig.5 zeigt ein Flussdiagramm zur Eehtzeit-Multiview-Erzeugung.
Verfahrensbeschreibung im Detail
Jede Echtzeit-Multiview-Erzeugung beginnt damit, dass ein Stereobild in einem bestimmten Stereoformat empfangen wird. Das Stereobild besteht aus zwei Teifbildern derselben Szene, die zur selben Zeit aus unterschiedlichen Perspektiven aufgenommen wurden. Es kann Jede beliebige Größe besitzen. Heutige Bildgrößen gehen bis zu zweimal HDTV (1920x1080).
Das empfangene Stereobild wird in ein linkes Teϊfbild L und ein rechtes TeϊJbild R aufgeteilt und auf eine bestimmte Größe G(t) skaliert. Die Größe G(t) ist die Verarbeitungsgröße. Jn Abhängigkeit von der Leistungsfähigkeit und Auslastung der verwendeten Hardwarestruktur kann G(t) zeitlich variieren. Am Ende einer jeden Echtzeit-Multiview-Erzeugung wird die Verarbeitungszeit gemessen und G^t) entweder vergrößert oder verkleinert.
Ein Anfangswert für G(t> wird bei Verfahrensstart gesetzt. Nach ca.2 bis 3 Echtzeit- Multiview-Erzeugungen hat sich G(t) automatisch/adaptϊve auf einen optimalen Wert eingestellt. Die Skalierung wird vom so genannten Kompressor (1) durchgeführt.
Nach der Kompression auf die richtige Verarbeitungsgröße werden die Bereiche gesucht, die sich zwischen dem aktuellen Bild L{1) bzw. R(1 } und dem vorherigen Bild L{0) bzw. R(O) nicht verändert haben. Hierzu wird das Bild in Blöcke gleicher Größe (z.B. 16x16) aufgeteilt und jeder Block mit dem gleichen Block im vorherigen Bild verglichen. Ist der Unterschied unterhalb einer Schranke ε, so werden alle Bildpunkte des Blockes als unverändert markiert. Die Ähnlichkeit kann sich auf Grauwerte, RGB-Werte oder sonstige Werte beziehen. Zur Berechnung der Ähnlichkeit können sowohl Abstandsmaße als auch Korrelationsmaße verwendet werden. Diese Erkennung der unveränderten Bereiche kann sowohl im linken als
auch im rechten Bild durchgeführt weFdeπ. Zur Vereinfachung der folgenden Darstellung soll fortan ohne Einschränkung der Allgerπeingülfigkeϊt davon ausgegangen werden, dass die Konstanz-Detektioπ im linken Bild durchgeführt wird.
Die Identifikation der konstanten Blöcke wird vom so genannten Konstanz-Detektor (2) durchgeführt. Im linken Teilfaifd z.B. können Bϊldpunkte markiert werden, für die es eine Disparität gibt, d.h. sie sind auch im rechten Bild vorhanden, oder solche, <d\& wegen einer Rechtsverdeckung im rechten TeilbM nicht vorhanden sind. Wird die Konstanz-Detektion im rechten Teϊlbiϊd durchgeführt, ergeben sich Bϊidpunkt mit Disparität oder Uπksverdeckuπgen.
Das Ergebnis des Konstanz-Detektors wird dem Merkmals-Extrafctor {3) zugeführt. Für Bildpunkte, die nicht als konstant markiert sind» werden nun die erforderlichen Merkmale berechnet. Für Bildpunkte, die als konstant markiert wurden, sind die Merkmale bereits bei der vorherigen Eehlzeit-Muftiview-Erzeugung berechnet.
Diese Merkmal-Extraktion wird für beide Bilder i(1) und R(1) durchgeführt. Große konstante Bereiche reduzieren die Verarbeitungszeit signifikant.
Das Ergebnis der Merkmalextraktion wird im Speicher FL und FR für das ünke und rechte Teilbild gespeichert. Da der Merkmaispeicher FL und FR ebenfalls die Größe G(t) besitzt, werden die neu berechneten Merkmale für die Bildpunkte einfach an die gleiche Position geschrieben. Konstante Bildpunkte behalten automatisch ihre Merkmalsvekforeπ, sofern äie Größe G(f)im vorherigen Schritt nicht verändert wurde.
Als Merkmale können z.B. die RGB-Werte, Kanteπwerte oder Homogenitätswerte verwendet werden. Alle bekannten Merkmafsextraktionsverfahren, welche einem Bildpunkt ein Merkmal zuordnen, können verwendet werden.
Die Speicher FL und FR stehen dem Bild-Aπalysator (4) zur Verfügung. Aufgabe des Bild-Analysators ist es, die Disparitätskarte zu erstellen. Für diese Berechnung werden z.B. Verfahren der dynamischen Programmierung auf die einzelnen Zeilen
des linken und rechten Teϊlfaildes zur Feststellung der optimalen Zuordnung angewendet
Eine Anwendung auf dfe Zeilen istfedoch nur zulässig, wenn sich das Stereobild ϊn Stereonormalform befindet Ist dies racht der Fall, so kann dies entweder durch lineare Vor- und Rücktransformatfon erreicht werden, oder durch die Anwendung modifizierter Disparitätsschätzverfahren, die z.B. sich an den Epipolaren orientrerert Zur Vereinfachung der Darstellung sei im Folgenden die Stereonormalform vorausgesetzt
Da dieser Schritt einer der zeitaufwendigsten Teilschritte ist, muss hier besonders auf eine Reduzierung der Verarbeitungszeit geachtet werden. Auch In diesem Schritt steht daher das Ergebnis der Kαnstanz-Detektion zur Verfügung. Der Bild-Anaiysafor hat für jeden Bildpunkt die Information
Für alle Bildpunkte Q, j), für die K(i, j) = 0 ist, kann όie Disparität DP(O7Ij) nach DP{1 ,i„j) übernommen werden. DP(1 , i, j) ist die Matrix der Disparitäten zum aktuellen Zeitpunkt.
Im Allgemeinen wird für die Ähnlichkeitsberechnung eine Umgebung um die Bfldpuπkte (ϊ, j) mit dem Merkmalsvektor FL(J, j) genommen. Dfe Umgebung kann dabei ein Rechteck sein oder durch geometrische Eigenschaften wie z.B. Kanten eingeschränkt sein. Als Ähnlichkeitsmaß bietet sich jede Norm wie z.B. Euklid, Absolutbetrag oder Korrelation an. Merkmale können in der Norm zusätzlich noch gewichtet werden, wobei die Gewichte beim Verfahrenstart eingelesen wurden.
Die konstanten Disparitäten einer Zeile können dabei zu einer Optimieruπgsaufgabe mit Restriktionen führen, sodass die Disparität nur für diejenigen Bildpunkte {ϊ, j)
berechnet wird, für die K(i, ,j) = 1 ist, oder z.B. zu einer segmentierten dynamischen Optimierungsaufgabe führen, wobei die Optimierung immer nur In dem Segment durchgeführt wird, für das alle K(i, j) = 1 sind.
Der Wert DP(I, i, ]u) mit dem kleinsten j eines Segmentes, sodass K(S, ju) = 0 ist, wird als finker Anfangspunkt des Segmentes genommen. Der Wert DP(1 , i, J0) mit dem größten j des Segmentes, sodass K(i, jα) = 0 ist, wird als rechter Endwert des Segmentes genommen.
Eine dynamische Optimierung wird also nur im Segment von ju bis jo vorgenommen. Dabei können sich innerhalb einer Zeile natürlich mehrere Segmente ergeben. Die Matrbc DP(1 , r, ]) ist dann wie folgt definiert
Linksverdeckungen sind in DP(1) daran zu erkennen, dass es eine Lücke zwischen DP(1 , i, j) und DP{1 , i, j+1) gibt. Eine Zeife von DP{1) ist in Fig. 3 dargestellt
Durch die Bild-Analyse wird die Matrix DP(1) erstellt.
Der Bild-Syπthesizσr (5) verwendet nun die Disparitätskarte DP(I) sowie die Teilbilder L(1) und R(1 ) und kopiert sie nach 1(1 ) und f(n). Nur die virtuellen Perspektiven 1(2) bis l(n-l) werden erzeugt.
Der Bild-Synthesizor realisiert praktisch eine virtuelle Kamerafahrt von L(1) nach R(t) mitn-2 Haltepunkten, wenn das Multiview-Bild n Perspektiven enthalten soll, n > 2 kann von Betrachter jederzeit geändert werden.
Für alle (ij) aus dem linken Teilbild wird wie folgt vorgegangen:
Ist DP(1 , ϊ, j) = f , so wird Δj* := (f - j)/(n-1> berechnet.
Die virtuelle Kamerafahrt bedeutet für einen Bildpunkt L(I, i, j), dass
l (k, i, j + Δf(k-1)):= L (1) i, j)J k = 1,...n
gesetzt wird.
Der Bereich einer Rechtsverdeckung^ in dem DP(1, i, j) = -1 gilt wird auf dieser Kamerafahrt langsam ausgeblendet bis er in l(n) nicht mehr vorhanden Ist,
Im Gegenzug wird eine Lϊnfcsverdeckuπg, die dadurch gekennzeichnet ist, dass I DP{1, i, )} - DP(1, i, j+1){ > 1 gilt, langsam eingeblendet.
Gibt es für einen Bildpunkt L(1 , i, j) eine Zuordnung j* r so ist damit noch nicht sicher gestefit, dass L(1 , i, j) = R(I, i, ]*) gilt Dies kann z.B. durch unterschiedliches Rauschen oder Kamerakalibrieπing verursacht sein. In diesem Fall kann auf der virtuellen Kamerafahrt Zusätzlich eine Überblendung von L(I, ϊ, ]) nach R(f , L /) durchgeführt werden, sodass l(n, t, f ) = R(1, f, f) sichergestellt ist.
Kommt es durch Rundungsfehler bei der Berechnung j + Δj*(k-1) dazu, dass In einer MuHMew-Perspektive einige Bildpunkte nicht gesetzt wurden, so werden diese Fehlstellen durch geometrische Interpolation der gesetzten Randpunkte eingefügt.
Nach Beendigung der Bild-Synthese steht das Multiview-Biid mit n Perspektiven zur Darstellung auf dem Display zur Verfügung.
Die Steuereinheit (6) misst die Zeit Δt, die seit Eingang des Stereobildes vergangen ist. Für jedes Video-Format ist die Bildfrequenz (PAL = 50Hz, NTSC = 60Hz, HDTV = 100Hz) bekannt.
Ist die gesamte Berechnungszeit Δt größer als die Zeit zwischen zwei Stereobildern, soτnodϊfizϊertdϊe Steuereinheit die Verarbeitungsparameter. Hierzu hat die Steuereinheit zwei Möglichkeiten:
1. Es werden einige Merkmale aus dem Merkmafsvektoren FL und FR nicht berechnet, z.B. ein Homogenitätsmaß.
2. Es wird die Verarbeitungsgröße G(t) verkleinert. Dadurch reduziert sich die Auflösung.
Ist andererseits die Berechnungszeit Δt signifikant kleiner als die Zeit zwischen dem Empfang zweier Stereobilder, so kann die Steuereinheit die Auflösung vergrößern oder zusätzliche Merkmale zur Qualitätsverbesserung hinzufügen. Nach der Änderung der Steuerparameter wird für die nächsten 3-4 Zeitmessungen eine Änderung ausgesetzt, damit die neuen Steuerparameter sich auf die Verfahrenschriöe auswirken können.
Insgesamt passt sich das Gesamtsystem dynamisch und adaptiv immer der Hardware-Auslastung an.
Alle Teilschritte sind so konzipiert, dass sie durch mehrere parallel vorhandene Verarbeitungseinheiten (Multi-Core) durchgeführt werden können. Dies ist in Fig.4 dargestellt.
Alle Verarbeitungsschritte sind in Fig. 5 als Flussdiagramm dargestellt.
In einer weiteren Ausführung wird der Konstanz-Detektor, der die konstanten Blöcke lokalisieren soll, mit einem der MPEG-Kodierungsverfahren kombiniert.
Bei diversen MPEG-Kodierungsverfahren werden auch Blöcke (im Allgemeinen der Größe 16x16) identifiziert, die sich nicht verändert haben. Diese Blöcke werden nicht übertragen. Ein integriertes Verfahren könnte also diese Information,
beziehungsweise die Zusatz-Information aus dem Enhancement-Layer aufnehmen und für die nachfolgenden Verarbeitungsschritte aufbereiten.
Referenzen:
1. US 2006/01616138 A1 und Nachmeldungen, „Methαd and System for Synthesizing Multiview Videos", 30.11.2005, Jun Xin Qufncy
2. EP 1 175 104 B1 und Nachmelduπgen, „Stereoscopic Image Disparity Measuring System", 15.6.2001, Jeong, Hong etaL
3. US 6,847,72a B2, „Dynamic Depth Recovery froπr Multiple Synchronized Video Streams", 9.12.2002, Hai Tao etal
4. CA 2212069, Optimal Disparity Estimation for Stereoscopic Video Codiπg", 6.8.1996, Chen, Xuemϊπ etaf
5. US 2007/0024614 A1 , "Generating A Depth Map from a Two-dfmensionaf Source Image for Stereoscopic and Multiview ϊmaging", 25,7.2006, Wa James Tarn et al.
6. US 2007/0104276 A1 , "Method and Apparatus for Encoding Multiview Video", 6.11.2006, Ha, Tae-Hyeun
7. WO 2007/035054 A1, "Method of Estϊmatrng Disparity Vector, and Method for Encoding and Decoding Multi-View Movϊng Pϊcture using the Disparity Vector Estimation Method", 22.9.2005, Ha, Tae-Hyeun
8. US 2005/0185048 A1, "3-D Display System, Apparatus, and Method for Reconstrucfing Intermediate-View Video", 27.1.2005, Ha, Tae-Hyeun