Videokompression: Motion Compensation Virtual Reality

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Objektbewegungsdetektion in Bildfolgen
Polynomial Root Isolation
• • • • • 3.2 Die projektive Erweiterung des E³
5. Sortier-Algorithmen Vorbemerkungen:
Multi-Media Seminar von Andre Münch
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Grundlagen der Geometrie
5.2 Schattierungsverfahren
5. Beleuchtung und Schattierung
Phong Shading (Normaleninterpolation)
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Grundlagen Videokompression
Texturwahrnehmung von Bela Julesz
Java3d „Licht und Material“
Grundlegende Analysen & Zwischendarstellungen
Struktur und Funktion von Biopolymeren Elmar Lang
Wahrnehmung der räumlichen Tiefe von Objekten
So animieren Sie Kreisdiagramme mit der Eingangs-Animation „Rad“
Displacement Mapping Dynamische Generierung detaillierter Geometrien
Special Effects Realistischeres Rendern einer Scene.
Computergrafik Die Computergrafik führt die damit einhergehenden Methoden und Repräsentationstechniken in gewisser Weise auf höherem Niveau wieder zusammen.
Computergrafik Begriff: Was ist Computergrafik?
§9 Der affine Raum – Teil 2: Geraden
Wie macht man ein Sudoku? Transformations-Methode:
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
FHP - Fachbereich Bauingenieurwesen
Integration virtueller und realer Objekte Proseminar: Anwendungen für Augmented Reality.
Computergraphik mit OpenGL Einführung. Bilder Objekt existiert im Raum unabhängig vom Betrachter Objekte sind beschrieben durch die Position verschiedener.
Übersicht Motivation Konzeption Umsetzung/ Implementierung
DivX3 IT Referat DIVX 3.
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Abschlussvortrag zur Studienarbeit
Erzeugen von Karten, Layern und Legenden
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
§3 Allgemeine lineare Gleichungssysteme
§5-1 §5 Mapping-Techniken Computergrafik - SS Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen)
Medizinische Visualisierung
Hallo Ich möchte einen Text einer Folie nicht einfach nur einfliegen lassen, sondern genau diesen Text, der schon an einer bestimmten Stelle steht, vergrößern.
ProSeminar WS 2007/08 Leo Hackstein
Strategie der Modellbildung
Fraktale und iterierte Funktionensysteme
Ein Überblick über verschiedene Verfahren
Beleuchtungsmodelle, Schattierungsmodelle
Michael Schmidt computer graphics & visualization Texture Mapping Lapped Textures.
Augmented Reality mit korrekter Beleuchtung Thorsten Grosch
VTK-Filter für effizientes netzwerkbasiertes Rendern inkl. Interaktionsmöglichkeit.
JPEG Joint Photographic Experts Group Thomas Leinmüller
Vom graphischen Differenzieren
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
Möglichkeiten der Visualisierung
Geometric Representation
Der Begriff Grafik Computergrafik ist die Erstellung und Verarbeitung von Grafiken mit Hilfe eines Computers. Hierzu benötigt man: Eingabegeräte wie zum.
Die Renderpipeline.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
Institut für Kartographie und Geoinformation
Grundlagen der Geometrie
- Studienarbeit - Entwurf und Umsetzung von kombinierten Anfragen für die Ähnlichkeitssuche auf digitalen Bilder auf der Basis von Regionen und Features.
Binärbäume.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
 Präsentation transkript:

Videokompression: Motion Compensation Virtual Reality Animation I/II Videokompression: Motion Compensation Virtual Reality

Video-Kompressionstechniken: Motion Compensation (Fortsetzung) Die Kompression von Bildern basiert im Wesentlichen auf der Korrelation zwischen Pixeln. Die Kompression von Video-Sequenzen beruht neben der Korrelation von Pixeln in einem einzelnen Bild auch auf der Korrelation zwischen aufeinander folgenden Bildern (Frames). Grundsätzlich werden zwei Arten von Redundanz beseitigt: räumliche Redundanz, die in jedem einzelnen Bild (Frame) existiert; temporale Redundanz, die im Unterschied eines Bildes zu seinen unmittelbaren Nachbarn besteht.

1. Bewegungskompensation (Motion Compensation) =Technik zur Beseitigung temporaler Redundanz in Video-Sequenzen. Grundgedanke: Zwei aufeinander folgende Frames einer Sequenz sind üblicherweise sehr ähnlich – enthalten somit viel (temporal) redundante Informationen. Redundante Informationen müssen aber nicht mit jedem Frame neu abgespeichert werden. Motion Compensation berücksichtigt daher für die Redundanzreduktion die Veränderungen in den Bewegungen einzelner, gleicher Bildkomponenten. Die Veränderungen werden als Bewegungsvektoren (motion vector) gespeichert. Somit können die Bildinformationen eines aktuellen Frames durch einen Vergleich mit einem vorherigen Referenzframe über die Bestimmung der Bewegungsvektoren festgehalten werden (Resultat= P-Frame). Werden auch Informationen aus einem folgenden Frame zur Kodierung der Bildinformationen des aktuellen Frames hinzugezogen, entsteht ein bidirektional kodiertes Frame (B-Frame).

(Ax – Bx, Ay – By) = (Δx, Δy)

1.1 Blockbasierte Bewegungskompensation (Block Motion Compensation) Framefragmentierung/ Blockvergleich Bei dier blockbasierten Motion Compensation wird das Frame zunächst in Blöcke zerlegt (Frame Segmentation). MPEG-Standard: Blöcke à 16x16 Pixel. Jeder Block des aktuellen Bildes wird mit dem entsprechenden Block des Vorgängers verglichen. Abhängig von einem Schwellenwert (Search Threshold) der die Ähnlichkeit der Blöcke repräsentiert, wird bei nahezu identischen Blöcken (Unterschied unterhalb des Schwellenwerts) vom Kodierer angenommen, dass keine Bewegung vorliegt. Wird der Schwellenwert überschritten, so startet ein Blocksuchalgorithmus. Die Blockgröße hat wesentlichen Einfluss auf die Wirksamkeit der Kompression: Zu große Blöcke vermindern die Chance identische Blöcke zu finden, zu kleine können zur Generierung vieler Bewegungsvektoren führen.

Blocksuche (Block Search) Ein Algorithmus sucht nach der bestmöglichen Übereinstimmung eines Blocks des momentanen Frames mit einem des Referenzframes. Mögliche Vergleichsgrößen (distortion measure): z.B. Mittelwert der absoluten oder quadrierten Differenz, Integralprojektion. Die Suche wird in der Regel auf einen eng begrenzten Bereich (search area) im vorherigen Frame begrenzt. Aufgrund der Annahme, dass von Frame zu Frame die Bewegung eines Objektes (also die räumliche Verschiebung) gering ist, kann der Suchbereich relativ stark eingegrenzt werden. Dies muss auch so sein, denn Block search ist zeitintensiv: Schon ein Suchbereich von 48x48 Bildpunkten ergibt max. 2304 Möglichkeiten.

Suboptimale Suchstrategien Um die Rechenzeit bei der Blocksuche zu verringern können, werden in der Regel „ungenauere“ Suchmethoden eingesetzt. Z.B.: Signature Based Methods: Im ersten Schritt werden alle in Frage kommenden Blocks mit einfachen Blocksuch-Methoden (z.B. Mittelwert der absoluten Differenz) auf die Ähnlichkeit überprüft. In den nächsten Schritten werden genauere Methoden nur auf die Blöcke mit den besten Ergebnissen aus Schritt 1 angewendet. Distance-Diluted Search: Alle nahe am Ursprungsblock liegenden Blöcke werden verglichen, immer weniger aber mit zunehmender Distanz . Locality-Based Search: Zunächst wird über räumlich relativ weit verteilte Blocks gesucht; der „beste Treffer“ ist Ausgangsbasis für eine intensivierte Suche um diesen Treffer herum: Hier besteht die hohe Wahrscheinlichkeit, einen besseren/ den besten Block zu finden.

Abhängigkeitsbestimmte Algorithmen Da sich bewegende Objekte innerhalb eines Frames in der Regel größer sind als einzelne Blocks, kann man annehmen, dass benachbarte Blocks korrelierende Bewegungsvektoren aufweisen. Diese Annahme wird von Algorithmen, die Abhängigkeitsverhältnisse zu Grunde legen (dependent algorithms) genutzt. In einem Algorithmus, der räumliche Abhängigkeit zu Grunde legt, werden benachbarte Blocks von Block X benutzt, um den Bewegungsvektor von X vorherzusagen. Natürlich kann man für die Berechnung nur Nachbarblocks benutzen, deren Vektoren bereits errechnet wurden. Die meisten Blocks haben acht Nachbarn, aber alle acht zu vergleichen ist ineffektiv. Die beste Variante ist vier symmetrische Nachbarblöcke zu nehmen.

Drei Schritte sind erforderlich für die Überprüfung von jeweils vier symmetrisch angeordneten Nachbarn: Zuerst wird in der ersten und danach in jeder zweiten Reihe für jeden zweiten Block der Vektor berechnet. Im zweiten Schritt wird in den bisher unberücksichtigten Zeilen versetzt für jeden zweiten Block der Vektor berechnet. Hier können bereits vier symmetrisch angeordnete Blöcke zum Vergleich herangezogen werden. Im dritten Schritt werden alle restlichen Vekoren berechnet.

Bewegungsvektorberechnung und -Korrektur Nachdem ein „passender“ Block im Referenzframe gefunden wurde, wird der Bewegungsvektor als Differenz zweier lokal identischer Punkte der Blöcke berechnet. Verschiedene Faktoren können eine Optimierung des berechneten Bewegungsvektors notwendig machen (z.B. suboptimaler Suchalgorithmus). Schätzfehler-Kodierung Die zwei korrespondierenden Blöcke sind normalerweise nicht absolut identisch, es existiert ein Schätzfehler. Durch Speicherung der Differenz zwischen unkomprimierten und komprimierten Block kann der Decoder eine Verbesserung erreichen.

Kodierung von Bewegungsvektoren Da ein großer Teil des jeweils aktuellen Bildes in Bewegungsvektoren konvertiert werden kann, ist die Kodierung der Ergebnisse von hoher Bedeutung. Bewegungsvektoren sollten verlustfrei kodiert werden.

Kodierung von Bewegungsvektoren Da ein großer Teil des jeweils aktuellen Bildes in Bewegungsvektoren konvertiert werden kann, ist die Kodierung der Ergebnisse von hoher Bedeutung. Bewegungsvektoren sollten verlustfrei kodiert werden. Zwei Eigenschaften von Bewegungsvektoren helfen dabei: sie korrelieren miteinander: Wenn ein Bild Block für Block verglichen wird, sind die Bewegungsvektoren nebeneinander liegender Blöcke meist nicht sehr unterschiedlich, sie korrelieren miteinander. ihre Verteilung ist ungleichmäßig: Die Bewegungsvektoren weisen außerdem nicht in alle möglichen Richtungen, sondern in eine oder zwei bevorzugte. Sie sind ungleichmäßig verteilt.

Bisher hat sich keine Kodierungsmethode als die ideale herausgestellt, aber einige als sehr wirksam. Besonders gut haben diese Methoden funktioniert: Schätzung des Bewegungsvektors aufgrund der vorhergehenden Blöcke in derselben Zeile und Spalte eines Bildes. Berechnung der Differenz zwischen der Schätzung und dem tatsächlichen Vektor. Huffman-Kodierung  (MPEG-1) Gruppierung der Bewegungsvektoren zu Blocks. Sind alle Vektoren im Block identisch, wird der Vektor einmal für den gesamten Block kodiert. Andere Blocks werden nach Methode 1 kodiert.

Teilschritte der Motion Compensation Blockzerlegung Blockvergleich Blocksuche Bewegungsvektorermittlung Bewegungsvektorkorrektur Schätzfehlerkodierung Bewegungsvektorkodierung

Block-Layer: kleinste Organisationseinheit, 8x8 Pixel. MPEG-1/ MPEG-2 - Syntax Datenstrukturen werden in MPEG-1/ -2 in einer Hierarchie (Layer) defniert: Block-Layer: kleinste Organisationseinheit, 8x8 Pixel. Macro Block- Layer: Aggregation mehrerer Blöcke (4x) Slice- Layer: Aufeinanderfolge von Makroblöcken; Fehlerkorrekturverbesserung Picture- Layer: Primäre Kodierungseinheit; Farbmodell: Luminanz/Chrominanz (YCbCr) Group of Pictures (GOP)- Layer: Jede Sequenz enthält eine Serie von Bilder; GOP beginnen ebenfalls mit einem Header Sequence- Layer: Eine Sequenz fasst eine oder mehrere GOP zusammen; der Header-Teil der Sequenz beinhaltet allgemeine Informationen wie z.B. Bildformat, Übertragungsrate u.a.

Kompression in MPEG Es werden eine Reihe von Kompressionstechniken kombiniert angewandt, um eine hohe Kompressionsrate zu erzielen, insbes. DCT, Motion Compensation, Huffman, RLE.

Virtuelle Realität 2.1 Was ist Virtual Reality? Unter Virtual Reality versteht man alle Konzepte, die unsere natürliche audiovisuelle und räumliche Wahrnehmung im Computer simulieren (Däßler). VR umfasst Methoden zur räumlichen Darstellung von Objekten, für die räumliche Klangausbreitung und für eine Reihe von Interaktionsmöglichkeiten. Über Trackingsysteme können Bewegungen des Menschen in die synthetische Umgebung übertragen werden, über Sensoren kann man wie in der Realität Objekte der künstlichen Welt beeinflussen.

2.2 Anwendungsbereiche der VR Architektur: Walk throughs Städteplanung

Industrielle Fertigung: Montagesimulation, Entwurf von Fertigungsanlagen Design: Automobilindustrie: Prototypisierung

Ausbildung und Training : Flugsimulation Medizin (Analyse medizinischer Datensätze, Planung und Training von Operationen) Kulturelles Erbe: Simulationen in der Archäologie (Ausgrabungssimulation)

2.3 Zentrale Aspekte der VR 2.3.1 VR-Systeme VR-Systeme bilden die Schnittstelle zwischen dem Benutzer und der Virtuellen Welt. Man unterscheidet: Desktop-VR: Der Benutzer schaut von einem Standpunkt ausserhalb auf die zweidimensionale Darstellung der Virtuelle Welt. Stereo Vision: Durch stereoskopische Sichtsysteme (z.B. Shutterbrille) entsteht trotz zweidimensionaler Darstellungsform ein realer dreidimensionaler Eindruck. Immersive Systeme: Der persönliche Blickpunkt des Betrachters liegt vollständig in der Virtuellen Welt. Dies wird z.B. durch einen HMD (Head Mounted Device) erreicht. 2.3.2 Immersion Der Grad, inwieweit ein Benutzer die virtuelle Welt als eigene Realität wahrnimmt, wird als Immersionsgrad (Immersion= „Eintauchen“) eines VR- Systems bezeichnet. Werden alle Sinne konsistent angesprochen oder wird die reale Welt nicht mehr wahrgenommen, so liegt ein maximaler Immersionsgrad vor. Der Immersionsgrad kann also über die Abschirmung von der realen Welt oder die Anzahl der angesprochenen Sinne bestimmt werden.

2.3.3 Rendering Als Rendern bezeichnet man den Prozess, für eine Bewegung in einer Szene die gesamte Szene mit allen Objekten neu zu berechnen und darzustellen. Wie kann eine Szene optimal gerendert werden? 2.4 Räumliche Modellierung von Objekten Die Grundlage jeder räumlichen Modellierung ist ein 3D-Koordinatensystem. Die Gestalt eines beliebigen Objekten wird durch Punkte im Koordinatensystem beschrieben. Verbindet man die Punkte miteinander, entsteht ein Drahtmodell.

Das Drahtmodell alleine erlaubt keine eindeutige Identifikation der Raumorientierung des Objekts. Die eindeutige Raumorientierung erreicht man mit Perspektive und Verdeckung.

Polygondarstellung Reale Objekte besitzen im Gegensatz zu einem Drahtmodell Oberflächen mit physikalischen Eigenschaften. In der Computergrafik verwendet man dazu die Polygondarstellung. Polygone sind kleine Flächeneinheiten, aus denen sich beliebige regelmäßige oder unregelmäßige Oberflächen zusammensetzen lassen. Die Orientierung jedes Polygons im Raum wird durch einen gedachten Normalvektor beschrieben, der senkrecht auf dem Flächenstück steht. Da sich in der Praxis nur eine begrenzte Zahl an Polygonen darstellbar ist, kann man sich realen Objekten mit der Polygondarstellung lediglich annähern.

Oberflächeneigenschaften Eine Szene, die nur in der Polygondarstellung gerendert wurde, erscheint trotz Perspektive und Verdeckung flach und unwirklich. Realistische Darstellung von künstlichen Objekten wird erst durch Oberflächeneffekte erzielt. Oberflächeneffekte kommen durch Beleuchtung einer Szene und die charakteristischen Schattenverläufe einer Oberfläche zustande. 2.5 Vom Programmskript zur virtuellen Welt: Die 3D-Grafikpipeline Der gesamte Weg den 3D-Daten hin zum 2D-Frame durchlaufen - vom Modell über mathematische Beschreibung einer Szene bis hin zur gerasterten Darstellung - wird als (3D-) Grafikpipeline (oder oft auch 3D-Rendering Pipeline) bezeichnet.

Die Grafikpipeline besteht aus zwei Hauptteilen: Geometrie-Teil Rendering-Teil Die Routinen im Geometrieteil ermitteln aus dem vorgegebenen Modell des Entwicklers eine dem jeweiligen Blickwinkel des Betrachters angepasste Szene. Die Rendermaschine berechnet daraus für jede neue Einstellung die digitalen Bilder, die dann auf dem dem Bildschirm sichtbar sind. API-Beispiele für Grafikpipelines: DirectX, OpenGL

Transformationen Die Modellkoordinaten werden in den Koordinatenraum der Anwendung, das sog. Weltkoordinatensystem, überführt. Verschiebungsmatrizen beschreiben die Übersetzung. Die Transformation enthält verschiedene Einzelschritte: Translation: Einfache Objekt- (Punkt-)Verschiebung im Raum Skalierung: Vergrößern/ Verkleinern von Objekten (Polygonen) um einen bestimmten Faktor. Rotation: Rotation eines Körpers um einen bestimmten Punkt. Shearing: Verzerrung eines Körpers. Clipping: Abschneiden von Objektteilen, die ausserhalb des Blickwinkels des Beobachters der Szene oder ganz ausserhalb des Beobachtungsfensters liegen.

Transformationen(Fotsetzung) Clipping: Abschneiden von Objektteilen, die ausserhalb des Blickwinkels des Beobachters der Szene oder ganz ausserhalb des Beobachtungsfensters liegen. Projektionen: Perspektivische Ausrichtung der Szene auf eine Projektionsebene. Transformationsschritte können durch Matrizenmultiplikation zusammengefasst werden, wodurch der Rechenaufwand sinkt.

Beleuchtung Berechnung des Einflusses verschiedener Lichtquellen auf die Objekte. Der Standpunkt des Beobachters ist wie auch in der realen Welt ausschlaggebend für die Szenenbeleuchtung. Tesselation Zerlegung nichtregulärer Polygone in reguläre Formen, die besser von der Rendermaschine verarbeitet werden können.

Schattierung Mit Hilfe des Flat-Shading-Verfahrens werden die regulären Flächenelemente mit einem Helligkeitswert belegt, der sich aus der Winkeldifferenz zwischen einfallendem Licht und dem Polygonnormal errechnet. Das Flat-Shading erfordert nur geringe Rechenleistung, liefert aber auch nur grobe Schattierungen. Beim Gouraud-Shading-Verfahren werden Farbabstufungen durch die Interpolation der Farbwerte benachbarter Polygone auf den einzelnen Flächenelementen berechnet. Phong-Shading verwendet eine Technik die Überlagerungen verschiedener Lichtarten berücksichtigt.

Textur-Mapping Als Textur bezeichnet man Muster oder Bilder, die wie eine Haut über die Oberfläche eines Drahtmodells gezogen werden. Mit Texturen können Raumeffekte vorgetäuscht werden, die sonst sehr aufwendig mit Polygonen modelliert werden müssten. Die Zahl der Polygone einer Szene kann so reduziert werden. Textur-Mapping ist eine wichtige Technik zur Erhöhung der realistischen Darstellung

Mip Mapping beim Mip Mapping werden gleichzeitig mehrere Versionen (Rasterbilder) einer Textur gespeichert (Mip Map), die sich in ihrem Detailliertheitsgrad, d.h. in der Auflösung, unterscheiden (Mip= Multum in parvo). Durch Mip Mapping kann die Qualität der Textur bei der Skalierung (also Vergrößerung oder Verkleinerung) eines Objektes mit einer Texturoberfläche beibehalten werden. Alpha Blending ist ein Verfahren zur Kontrolle der Transparenz eines Objektes. Damit lassen sich lichtdurchlässige Oberflächen wie Glas oder Wasser simulieren. Auch athmosphärische Effekte wie Nebel oder Depth Cueing, bei denen ein Objekt mit zunehmender Distanz an Deutlichkeit verliert, können simuliert werden.

Antialiasing Antialiasing ist ein Verfahren zur Glättung von Kanten und zur Vermeidung von unerwünschten Treppenmustern. Der Effekt wird durch Reduzierung des Kontrastes zwischen der Kante des Objektes und dem Hintergrund erreicht. Nachteilig ist, dass Linien sich verbreitern und Kanten an Kontrast verlieren.

Aufgaben 1) Wiederholen Sie den Stoff dieser Sitzung bis zur nächsten Sitzung (siehe dazu den Link zur Sitzung auf der HKI-Homepage). Informieren Sie sich zusätzlich durch eigene Literaturrecherche! 2) Beantworten Sie die Fragen aus der Sammlung „beispielhafte Klausurfragen“ zum Bereich Animation (soweit in dieser Sitzung behandelt).