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
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.
2. 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 VRSystems 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
•
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).

ppt