Vorläufige Version

Transcrição

Vorläufige Version
Bakkalaureatsarbeit
Projekt XXIII
Jürgen Platzer (0025360)
Christian Wagner (0026014)
Institute for Software Technology and Interactive Systems
Interactive Media Systems Group
Wintersemester 2002 bis Wintersemester 2004
2
Inhaltsangabe
1
Vorwort ............................................................................................................................. 7
2
Einführung – Die Videowelt wird digital ....................................................................... 9
3
4
2.1
Vorhandene Infrastruktur ........................................................................................... 9
2.2
Marktsituation ............................................................................................................ 9
2.3
Videobearbeitung für Heimanwender ...................................................................... 10
2.4
Digitale Kameras...................................................................................................... 10
2.5
Videostandards – ein kurzer Überblick.................................................................... 11
2.6
Zusammenfassung.................................................................................................... 11
Videoformate .................................................................................................................. 11
3.1
AVI........................................................................................................................... 11
3.2
WMV........................................................................................................................ 12
3.3
MOV......................................................................................................................... 13
3.4
MPEG-Formate ........................................................................................................ 14
3.4.1
MPEG-1 ................................................................................................................................... 14
3.4.2
MPEG-2 ................................................................................................................................... 15
3.4.3
H.263 ........................................................................................................................................ 15
3.4.4
MPEG-3 ................................................................................................................................... 16
3.4.5
MPEG-4 ................................................................................................................................... 16
3.4.6
H.264 ........................................................................................................................................ 16
3.4.7
MPEG-7 ................................................................................................................................... 16
3.4.8
MPEG-21.................................................................................................................................. 16
3.5
MJPEG-Format ........................................................................................................ 17
3.6
DivX ......................................................................................................................... 17
3.7
XviD ......................................................................................................................... 18
Audioformate.................................................................................................................. 19
4.1
Verlustfreie Kompression ........................................................................................ 19
4.1.1
Apple Lossless.......................................................................................................................... 19
4.1.2
Free Lossless Audio Codec ...................................................................................................... 20
4.2
Verlustbehaftete Kompression ................................................................................. 20
4.2.1
MP2 .......................................................................................................................................... 20
4.2.2
MP3 .......................................................................................................................................... 20
4.2.3
Advanced Audio Coding .......................................................................................................... 21
4.2.4
Windows Media Audio............................................................................................................. 21
4.2.5
Adaptive Transform Acoustic Coding...................................................................................... 21
4.2.6
Digital Theater Systems ........................................................................................................... 22
4.2.7
Dolby Digital............................................................................................................................ 22
3
5
6
Matlab 6.0 ....................................................................................................................... 23
5.1
Einleitung ................................................................................................................. 23
5.2
Algorithmus.............................................................................................................. 23
5.3
Implementierung ...................................................................................................... 24
5.4
Ergebnisse ................................................................................................................ 26
5.5
Weitere Bearbeitungsschritte ................................................................................... 27
Magix Audio Studio 2003 deluxe .................................................................................. 27
6.1
Einleitung ................................................................................................................. 27
6.2
Öffnen eines leeren Projekts .................................................................................... 28
6.3
Laden von Audiodateien .......................................................................................... 29
6.4
Exportieren der fertigen Audiospur.......................................................................... 31
6.5
Zusammenschneiden von Audiosamples ................................................................. 31
6.5.1
Zoom Modus ............................................................................................................................ 31
6.5.2
Volumen-Zeichnen Modus....................................................................................................... 31
6.5.3
Objekt-Zerschneide Modus ...................................................................................................... 32
6.5.4
Kopieren von Audioclips.......................................................................................................... 32
6.6
7
8
4
Wichtige Effekte ...................................................................................................... 33
6.6.1
Verändern der Abspieldauer von Audioclips............................................................................ 33
6.6.2
Normalisieren von Audioclips.................................................................................................. 34
Adobe Encore DVD 1.5.................................................................................................. 34
7.1
Einleitung ................................................................................................................. 34
7.2
Erstellen von Menüs................................................................................................. 35
7.3
Videos in Schnittfenster konvertieren ...................................................................... 38
7.4
Erstellen der Schaltflächen im Menü ....................................................................... 40
7.5
Abspielen des Projekts ............................................................................................. 42
7.6
Exportieren des Projekts........................................................................................... 43
7.6.1
Erzeugen einer DVD ................................................................................................................ 43
7.6.2
Erzeugen eines DVD-Ordners .................................................................................................. 44
7.6.3
Erzeugen eines DVD-Image..................................................................................................... 44
Eigene Programme: Vibrations-Effekt ........................................................................ 45
8.1
Einleitung ................................................................................................................. 45
8.2
Arbeitsablauf ............................................................................................................ 46
8.3
Kompilieren und Starten des Programms................................................................. 47
8.4
User Interface und Funktionalität............................................................................. 47
8.5
Implementierung ...................................................................................................... 48
8.5.1
DimmuEffect.java .................................................................................................................... 48
8.5.2
Mainframe.java......................................................................................................................... 48
8.5.3
Plotter.java................................................................................................................................ 48
8.5.4
ProgressBarWindow.java ......................................................................................................... 50
8.5.5
Property.java............................................................................................................................. 50
8.5.6
PropertyList.java ...................................................................................................................... 50
8.6
Ergebnisse ................................................................................................................ 50
8.7
Zukünftige Arbeiten ................................................................................................. 51
9
Literaturverzeichnis....................................................................................................... 52
10
Abbildungsverzeichnis ................................................................................................... 52
5
6
1 Vorwort
Das Ziel unseres Praktikums zur Erlangung des Bakkalaureatstitels war es, eine DVD zu
erstellen, auf der von uns erzeugtes Videomaterial und selbst erstellte Computeranimationen
zu sehen sind. Wir versuchten dabei, Videos mit den unterschiedlichsten Mitteln zu generieren. Mit Hilfe von selbst geschriebenen Programmen und einem Open Source RayTracer
wurden Bildsequenzen erzeugt. Filme wurden mit digitalen und analogen Videokameras gedreht. Inhaltlich konzentrierten sich die erstellten Videos auf zwei Schwerpunkte. Zum einen
wurden Animationen von Fraktalen kreiert, zum anderen wurden Filme rund um das Thema
„Lichtschwertduell“ gefilmt und am Computer nachbearbeitet.
Am Beginn unserer Bakkalaureatsarbeit steht eine theoretische Einführung in das Arbeiten
mit Videos am Computer. In weiterer Folge werden verwendete Programme und Arbeitsschritte zur Erstellung von Effekten und computergenerierten Animationen beschrieben.
Die vorliegende Arbeit umfasst noch nicht die gesamte Dokumentation des Praktikums. Im
Rahmen dieser Version liegen Abschnitte zu den Themen „Videoformate“, „Audioformate“,
„Digitalisieren“, „Matlab 6.5“, „Adobe Encore DVD 1.5“, „Magix Audio Studio 2003“ und
„Eigene Programme: Vibrations-Effekt“ vor. Diese Abschnitte sind in Kapitel gegliedert.
In Planung sind noch Abschnitte über weitere selbst geschriebene Programme, Corel Photopaint, POVRay, Adobe AfterEffects, Adobe Premiere, Hilfsprogramme sowie allgemeine
Beschreibungen über Komprimierungen und Codecs.
Die Arbeit ist über 2 Jahre hinweg entstanden. Leider wurde aber nicht durchgehend daran
gearbeitet. Aus diesem Grund verwenden einige Textpassagen ältere Informationen. Es wurde
versucht, diesen Effekt möglichst zu beheben. Ganze Kapitel wurden aber nicht neu geschrieben und ersetzt.
An dieser Stelle möchten wir unserer Betreuerin Margrit Gelautz für ihre Unterstützung und
ihren Rat während der gesamten Dauer unserer Praktikumsarbeit danken. Besonders hervorheben wollen wir dabei, dass unsere Betreuerin ein von uns gewähltes Thema akzeptiert und
trotz der zweijährigen Arbeitdauer nicht an der Fertigstellung gezweifelt hat. Weiters richten
wir unseren Dank an unsere Familien und Freunde, die uns immer wieder mit Rat, Tat und
aufmunternden Worten zur Seite gestanden sind.
7
8
2 Einführung – Die Videowelt wird digital
Die Entwicklung in den nächsten Jahren ist abzusehen: Digitale Medien gewinnen in immer
stärkerem Maße an Bedeutung. Die Vision der Verschmelzung von Telekommunikation, Unterhaltungselektronik und PC ist bald Realität. Was sich in einigen Unternehmen schon
durchgesetzt hat, wird in Kürze auch für private Haushalte gelten: Digitale Unterhaltungsund Informationsquellen stehen jedermann zur Verfügung. Dabei beschränkt sich digitales
Video im Privatbereich nicht nur auf die Übertragung von Fernsehkanälen. Ob Computer oder
Fernseher, Videorekorder oder Hifi-Gerät, mittels digitaler Übertragung verwischen die Grenzen zwischen den einzelnen Medien. Außerdem können über digitale Schnittstellen verschiedenste Geräte miteinander kommunizieren, ohne dabei Qualitätsverluste in der Übertragung
zu erleiden.
2.1 Vorhandene Infrastruktur
Videos verschlingen nicht nur Ressourcen auf Computern, sondern verlangen zudem hohe
Bandbreiten bei der Übertragung. Die Situation für gerade diese beiden Punkte hat sich innerhalb der letzten Jahre für Unternehmen entschärft. Speicherplatz wurde immer billiger und
das Intranet (firmeninternes Netzwerk) ist mittlerweile auf einem Stand, dass Videos mit ausreichender Qualität übertragen werden können.
Für Privatanwender sieht die Anbindung ans Internet nicht gerade rosig aus. Am weitesten
verbreitet sind Modems und ISDN-Karten, deren Übertragungsraten auf maximal 56 kbps
(Modem) beziehungsweise 64 kbps pro ISDN-Kanal beschränkt sind. Nur wenige kommen in
den Genuss von Breitbandtechnologien. Die Installation eines Glasfaser-Hausanschlusses ist
relativ teuer. Die Telekom Austria hat in Österreich (lediglich) einige Gebiete damit ausgestattet. Auch die Verbindung über Satellit setzt teure Hardware voraus.
Das aus Kupferleitungen (Coax-Leitungen) aufgebaute Breitbandnetz ist für das Kabelfernsehen als Übertragungsmedium nur eingeschränkt nutzbar. Vor allen Dingen fehlt dafür der
notwendige Rückkanal, die Übertragung könnte nur in eine Richtung (unidirektional) gehen.
Das Kabelnetz ist deshalb weniger für das Internet geeignet, dafür aber ideal für digitales
Fernsehen. Ein weiteres Übertragungsmedium ist das Stromnetz. Ähnlich wie beim Kabelfernsehen laufen derzeit nur einzelne Pilotprojekte. Ob sich diese Medien durchsetzen, bleibt
abzuwarten.
Voll im Trend liegt die Digital Subscriber Line (DSL). DSL nutzt bestehende Telefonleitungen, es brauchen also keine neuen Kabel verlegt werden. Lediglich die Vermittlungsstellen
werden mit DSL-Wandlern aufgerüstet. Der Vorteil von DSL: Die Downloadraten steigern
sich bis auf das 120fache (circa 8 MBit/s) gegenüber einem 56k-Modem bzw. ISDN. Die Tage von ISDN sind also gezählt.
2.2 Marktsituation
Immer mehr Firmen kommunizieren per Videokonferenzen miteinander, um Zeit und Kosten
zu sparen, die beispielsweise durch Reisen ihrer Mitarbeiter entstehen würden. Eine große
Bedeutung erlangen auch Videoserver, deren Datenbanken sich in beinahe allen Branchen
einsetzen lassen. Beispielsweise nutzen Unternehmen diese für die Schulung der eigenen Mitarbeiter (Tele-Learning). In Krankenhäusern ergänzen Videos die Krankenkartei einzelner
Patienten, Versicherungen nutzen das Videomaterial zur Einschätzung von Schadensfällen,
aber auch die Erotik-Branche baut ihr Angebot mit Videoservern aus.
Bis auf einzelne Freaks oder so genannte „Videorentner“ nutzen derzeit nur wenige private
Anwender dieses neue Medium. Was viele nicht wissen: Beim Neukauf eines PCs ist die
9
technische Basis für die Verarbeitung von digitalem Video meist vorhanden. Dennoch ist der
Anteil der Videoenthusiasten gering. In punkto Bedienungsfreundlichkeit der Software hat
sich jedoch in letzter Zeit vieles zum Positiven geändert. Auch die Preise für das Equipment
sind auf ein Niveau gefallen, das es für die breite Masse attraktiv macht. Langsam beginnt
sich der Heimanwendermarkt zu entwickeln, wobei das Angebot an entsprechender Hardware
aber noch gering ist.
2.3 Videobearbeitung für Heimanwender
Die Videobearbeitung am heimischen PC ist noch relativ jung, und lässt sich erst seit etwa
zwei Jahren sinnvoll einsetzen. Eine wesentliche Voraussetzung zum erfolgreichen Videoschnitt per PC ist eine leistungsfähige Hardware. Dazu gehören eine Festplatte mit ausreichender Kapazität (nicht unter 10 GByte) sowie genügend Arbeitsspeicher (mindestens 128
MByte RAM). Per Schnittkarte gelangt das analoge oder digitale Videosignal in den PC. Videos verschiedener Quellen lassen sich somit digitalisieren und im Rechner bearbeiten. Zur
Videoausgabe kann ein herkömmlicher Videorekorder mit S-VHS- oder VHS-Aufzeichnung
verwendet werden. Eleganter ist jedoch die Umwandlung des geschnittenen Videos ins
MPEG-1- oder MPEG-2-Format. Zum einen entfällt die verlustbehaftete Konvertierung in ein
analoges Videosignal und zum anderen können MPEG-komprimierte Videos auf CD-ROM
oder DVD-ROM gespeichert werden.
Für diejenigen, die auf aufwendige Schnittfunktionen oder Nachvertonung verzichten können,
bietet sich die Anschaffung eines Hardware-MPEG-Encoders an. Mit einem MPEG-Encoder
werden komprimierte Videodateien im MPEG-1- oder MPEG-2-Format erstellt - und dies in
Echtzeit. Somit können Videosignale einer beliebigen Quelle sofort auf der Festplatte eines
PCs kopiert werden, um anschließend mit einem preisgünstigen CD-Brenner auf eine CD-R
bzw. CD-RW gespeichert zu werden. Auf eine Standard-CD-R (650 MB Kapazität) passen
circa 65 Minuten MPEG-1-Video. Für das MPEG-2-Format lohnen sich CD-Rs kaum. Gerade
einmal 15 Minuten würden darauf Platz finden.
Für viele Einsatzgebiete ist die Qualität von Videos im MPEG-1-Format ausreichend. Lediglich die begrenzte Auflösung von maximal 352 x 240 Bildpunkten stellt einen Nachteil gegenüber MPEG-2 dar. Für ambitionierte Heimanwender und Videofreaks mit hochwertiger
PC-Ausstattung eignen sich Videoschnittkarten mit digitaler Schnittstelle. Modelle wie die
Pinnacle DV500 (welche auch in unserem Projekt verwendet wurde) sind mit einer IEEE1394-Schnittstelle ausgestattet. Somit kann über FireWire direkt eine digitale Videokamera
angeschlossen werden. Im Gegensatz zu Schnittkarten mit analogen Eingängen, wie etwa bei
der Fast AV Master, erfolgt die Übertragung der Audio- und Videodaten zum PC vollkommen verlustfrei.
2.4 Digitale Kameras
Speziell im Consumer-Markt sind viele preisgünstige Angebote von Videokameras mit digitaler Aufzeichnung (Mini-DV-Format) verfügbar. Gerade in diesem Markt zeichnet sich deutlich der Trend in Richtung Digitaltechnik ab. Kameras mit analoger Aufzeichnung werden
dagegen zunehmend billiger angeboten. Die Vorteile eines Modells mit digitaler Aufzeichnung liegen klar auf der Hand: Durch die kompaktere Digitaltechnik fallen Größe und Gewicht der Kamera wesentlich niedriger aus. Zusätzlich ist eine Anbindung an den PC über die
digitale IEEE-1394-Schnittstelle (FireWire) möglich. Marktführer bei den digitalen Videokameras ist Sony, der gleichzeitig eine große Modellvielfalt in allen Preissegmenten bietet.
Recht teuer sind noch die digitalen Videorekorder, welche sich eher an professionelle Videostudios richten.
10
2.5 Videostandards – ein kurzer Überblick
Zweifelsohne verursacht die analoge Übertragung durch das PAL-, SECAM oder das NTSCVerfahren weitaus höhere Verluste in punkto Bildqualität, da die letztgenannten Verfahren
mehrere analoge Zwischenstufen voraussetzen. PAL und SECAM sind Übertragungsstandards für Europa, NTSC für Amerika. Weit verbreitet zur analogen Aufzeichnung von Videos
sind Videorekorder mit VHS- oder S-VHS-Kassetten.
Beim schrittweisen Übergang von der Analog- zur Digitaltechnik existieren zwangsläufig die
Standards beider Verfahren gleichzeitig nebeneinander. Dennoch lassen sich analoge Geräte
mit digitalen Modellen nur über entsprechende Schnittstellen, die Konverterstufe, verbinden.
So empfängt beispielsweise eine Set-Top-Box digitales Fernsehen, am Ende muss das Signal
doch wieder für die weit verbreiteten analogen Fernsehgeräte umgewandelt werden. Die dafür
benutzen Buchsen (SCART, S-VHS oder Composite/Cinch) sind jedoch nur mit geringfügigen Verlusten behaftet.
Im Bereich des nonlinearen Videoschnitts zählt das MPEG-Format zum Quasi-Standard. Für
den Heimgebrauch hat sich das schon längere Zeit auf dem Markt befindliche und Platz sparende MPEG-1-Format bewährt. Z.B. werden sämtliche Filme der schon etwas betagten Video-CDs mittels MPEG-1 komprimiert. Als die bedeutendste digitale Schnittstelle hat sich
IEEE 1394, bekannt auch unter der Bezeichnung FireWire, durchgesetzt. Die meisten DigitalVideokameras verfügen über eine derartige Schnittstelle. Zudem gibt es immer mehr PCPeripherie, die mit FireWire-Interface ausgestattet ist.
Seit der Einführung der DVD gewinnt MPEG-2 immer mehr an Bedeutung. So arbeiten beispielsweise Broadcasting-Studios und Firmen, die DVDs herstellen (DVD Authoring), mit
Videodaten dieses Formats. Set-Top-Boxen empfangen ebenfalls ihre Signale digital als
MPEG-2-komprimierte Daten.
Fazit: Bei Digital Video gehört IEEE 1394 und MPEG-2 die Zukunft.
2.6 Zusammenfassung
In naher Zukunft wird sich digitales Video auf alle Bereiche des Lebens erstrecken. Die Vorteile liegen klar auf der Hand: Dank digitaler und standardisierter Schnittstellen ist die Kommunikation verschiedenster Geräte möglich. Eine einmal aufgenommene Videosequenz lässt
sich beispielsweise verlustfrei – sofern keine Komprimierungsschritte zwischengeschaltet
sind – vervielfältigen, bearbeiten oder an verschiedene Orte transportieren (es sei denn, man
verhindert dies über einen Kopierschutz). Treten bei der Datenübertragung Störungen auf,
lassen sich diese in einer bestimmten Toleranz mit Hilfe von Fehlerkorrektur-Mechanismen
beheben. Allerdings braucht die Umstellung auf digitale Endgeräte seine Zeit. Eins ist jedoch
sicher: Wer heute in digitale Videogeräte investiert, die mit standardisierten Schnittstellen
ausgestattet sind, ist am besten für die Zukunft gerüstet.
3 Videoformate
Hier beschreiben wir verschiedenen Verfahren, um Video möglichst Platz sparend zu speichern. Die hier beschriebene Auswahl stellt nur die am weitest verbreiteten Möglichkeiten
dar, welche wir auch zum größten Teil im Zuge unseres Projektes einsetzten.
3.1 AVI
Zu den ältesten Formaten in der x86-Computerwelt zählt AVI. Die Abkürzung „AVI“ steht
für „Audio Video Interleave“ und ist ein von Microsoft geschaffenes Videoformat, welches
von dem für Windows 3.1 eingeführten RIFF (Resource Interchange File Format) abgeleitet
11
ist. AVI ist auf Microsoft-Windows-basierten Systemen der De-facto-Standard für Audio- und
Videodaten.
Bei AVI werden die unterschiedlichen Daten in ineinander verschachtelten (interleaved) Datenstrukturen, so genannten Streams abgespeichert. Das AVI-Format bildet hierbei lediglich
den Container. Das bedeutet, dass die Daten selbst mittels unterschiedlicher Verfahren komprimiert sein können. Beispiele für solche Verfahren sind Cinepak, Intel Indeo, Microsoft Video 1, Clear Video oder IVI. In letzter Zeit sind vermehrt AVI-Dateien mit DivX für Video
und MP3 für Audio codiert. Die Aufgabe der (De-)Komprimierung übernimmt der Codec1.
Die Kennzeichnung, in welchem Format die eigentlichen Daten vorliegen, steht im FourCC
(Four Character Code), einem vier Zeichen langen Feld, im Header der AVI-Datei.
In der ersten Version unterstützt AVI maximale Auflösungen von 160 x 120 Bildpunkten bei
einer Bildwiederholrate von 15 Bildern pro Sekunde. Große Popularität erlangte das Format,
als erste Videoschnittsysteme mit dazugehöriger Software standardmäßig mit AVI arbeiteten.
Dazu gehören beispielsweise die populären Schnittkarten von Fast (AV Master) und Miro/Pinnacle (DC10 bis DC50). Allerdings gibt es zahlreiche Einschränkungen: So lässt sich
beispielsweise ein mit der AV Master bearbeitetes AVI-Video nicht direkt mit einer Schnittkarte von Miro/Pinnacle weiterbearbeiten. Die Hersteller haben das AVI-Format durch das
offene Konzept an die eigenen Bedürfnisse angepasst. Unter Windows 95 unterliegt AVI noch
weiteren Einschränkungen, die ein professionelles Arbeiten bei höheren Auflösungen zum
Teil erschweren. So liegt die maximale Dateigröße beim FAT16-Dateisystem bei maximal
2 GB. Einen Fortschritt brachte das FAT32-Dateisystem (ab OSR2 bzw. Windows 98): Im
Zusammenspiel mit dem neuesten DirectX-6-Modul DirectShow lassen sich theoretisch Dateien von immerhin 8 GB erstellen. In der Praxis scheitern allerdings zahlreiche Schnittkarten
am entsprechenden Treiber-Support, sodass sich der Einsatz von Windows ab NT 4.0 und
dem NTFS-Dateisystem empfiehlt, welches das Abspeichern von Dateien von theoretisch
unbegrenzter Größe zulässt.
Trotz seines Alters und seiner zahlreichen Probleme wird das AVI-Format nach wie vor bei
semiprofessionellen Videoschnittkarten angewandt. Das AVI-Format wird auch von vielen
TV-Karten oder Grafikkarten mit Videoeingang verwendet. Diese sind in der Lage, Videosequenzen bei niedrigen Auflösungen (bis zu 320 x 240 Bildpunkten) zu digitalisieren (grabben).
3.2 WMV
Windows Media Video (WMV) ist ein proprietärer Video-Codec von Microsoft und Teil der
Windows Media-Plattform. Dieses Format stellt eine Art Weiterentwicklung des AVIFormates dar. Neben dem Windows Media Player und vielen anderen Software-Playern beherrschen auch einige eigenständige Hardware-Abspielgeräte das Dekodieren von WMVDateien. Dateien, die WMV-kodierte Audio-Streams enthalten, sind meist in Microsofts Container-Format Advanced Streaming Format (ASF) eingebettet. Diese Dateien haben meistens
die Dateiendung .asf, im Falle einer Video-Datei können sie aber auch die Endung .wmv tragen. Eine neue Variante von WMV ist das Windows Media Video High Definition-Format
(WMVHD).
1
Als Codecs (englisches Akronym aus coding und decoding) bezeichnet man Verfahren, die aus einem Codierer
und einem Decodierer bestehen. Jedes digitale Telefon, unabhängig davon, ob es für ein Festnetz oder ein Mobilfunknetz gebaut ist, enthält einen Codec, der analoge in digitale Signale umwandelt und digitale in analoge. Ein
Codec kann in Hardware oder in Software realisiert sein. Es kann also auch in einem Programm enthalten sein,
das Multimedia-Daten zwischen zwei Formaten hin- und herwandelt. Häufig werden von solchen Programmen
die Daten dabei komprimiert.
12
WMV ist vor allem ein Versuch die von Microsoft unterstützten Komprimierungsverfahren zu
verbreiten. Dieses Format stellt keinen Container für beliebige Formate dar. Es kann nur mit
Microsoft eigenen Formaten kodiert werden, die meistens eine Abwandlung und Weiterentwicklung von bereits standardisierten Verfahren sind. Als Beispiel wäre H.264 zu nennen,
welches von Microsoft in Eigenregie weiterentwickelt wurde und eingegliedert in Microsofts
Windows Media Video 9 bisher unerreichte Ergebnisse in Geschwindigkeit und Qualität erzielt.
Das Windows Media Format unterstützt auch die Einbindung von Digital Rights Management
(DRM), die dem Urheber von geistigem Eigentum die Regelung der Zugriffsrechte auf Tonmaterial ermöglichen soll. In der Praxis wird diese Technik häufig als Kopierschutzmaßnahme eingesetzt.
3.3 MOV
Das aus der Macintosh-Welt stammende MOV-Format von Apple wurde auch auf x86basierende PCs portiert. Es ist das allgemeine Dateiformat von Apples QuickTime. Dieses
Computerprogramm ermöglicht das Abspielen von Video- und Audiodateien und wurde von
der Firma Apple Computer entwickelt. Es ist frei in der Benutzung und liegt für die gebräuchlichsten Macintosh- und Windows-Betriebssysteme vor. Die klassische Endung einer QuickTime Datei ist .mov. QuickTime kann auch so genannte QuickTime-VR-Panoramen darstellen. Dies ist ein von Apple entwickelte Technologie, mit dem es möglich ist 3 dimensionale
Räume zu simulieren.
Das MOV-Format ist ebenfalls, wie AVI, ein so genanntes Containerformat. In der Computertechnik bezeichnet man als Container (engl. für Behälter) ein Aufbewahrungsformat für Inhalte am PC. Typischerweise definiert ein Containerformat nur die Art und Struktur, wie der
Inhalt aufzubewahren ist. Container ermöglichen so zum Beispiel das synchrone Wiedergeben
von Audio- und Videospuren. Während sich bei AVI die Bezeichnung Containerformat vor
allem auf die unterschiedlichen Kompressionsverfahren bezieht, die das Format erlaubt, ist
MOV in zweierlei Hinsicht ein „Behälter“. Zum einen muss MOV nicht nur einen Datenstrom
enthalten, sondern kann mehrere so genannte Tracks in sich vereinen. (Tracks können Videound Audiospuren sein.) Zum anderen können diese Tracks mit unterschiedlichen Codecs kodiert werden.
QuickTime 1.0 wurde im Dezember 1991 zum ersten Mal auf der Macintosh-Plattform veröffentlicht. Damit begann die Multimedia-Ära der Firma Apple. In Briefmarkengröße (156 x
116 Pixel) konnten erstmals digitale Videos ohne zusätzliche externe Hardware abgespielt
werden. Die Bildrate betrug damals ungefähr 10 Bilder pro Sekunde. Dies war eine kleine
Sensation, zumal damals viele Anwender noch mit monochromen Monitoren arbeiteten.
Quicktime war in Sachen Funktionalität und Qualität dem AVI-Format von Microsoft in der
Zeit zwischen 1993 und 1995 weit überlegen.
Aus heutiger Sicht (2005) ist es möglich mit dem Kauf des Programms QuickTime Pro, Video- und Audiodateien in zahlreiche Formate umzuwandeln, zu schneiden und mit diversen
Effekten zu versehen. Für Benutzer, die Videos und Audios nicht bearbeiten wollen, ist eine
freie Version des Programms erhältlich, welche das Abspielen von MOV- und AVI-Dateien
ermöglicht. (Allerdings kann QuickTime nicht alle Codecs lesen, die AVI erlaubt.)
Das MOV-Format ist gut geeignet, um Video- und Audiodateien in Internetseiten darzustellen, da es über hochqualitative Komprimierungs- und Streamingeigenschaften verfügt und
Apple dafür eine Vielzahl an Befehlen für deren (interaktiven) Steuerung in Form des Programms QuickTime entwickelt hat. Als einer der Trendsetter im Internetbereich hat sich
MOV als Standard für das Streaming von Audio- und Videosequenzen etabliert. Der Siegeszug von QuickTime und dessen Filmformat (MOV) erfolgte mit der rasanten Verbreitung der
13
CD-ROM. Auf ihr konnten multimediale und plattformübergreifende Inhalte veröffentlicht
werden. Dennoch verliert das Apple eigene Format mit dem Ausbau von MPEG immer mehr
an Bedeutung. Allerdings kann mit QuickTime mittlerweile auch eine MPEG4-codierte
MOV-Datei erzeugt werden.
QuickTime dient im professionellen Einsatz als systemweite Plattform für die Multimediaproduktionen. Besonders deutlich wird dies bei den Programmen Final Cut Pro, DVD Studio
Pro, Apple Motion, die alle auf QuickTime basieren. Auch Multimedia-Autorensystem verwenden teilweise (wie z.B. Director) oder ausschließlich (wie iShell) die QuickTimeTechnologie. (Die Nutzung von QuickTime im Rahmen unseres Projektes wird im Abschnitt
„Hilfsprogramme“ beschrieben.)
Für den nichtprofessionellen Benutzer werden sämtliche Kinotrailer im MOV-Format zum
freien Download zur Verfügung gestellt. Gemeinsam mit der freien Version von QuickTime
konnte man so das MOV-Format als gängiges Videoformat neben AVI etablieren.
3.4 MPEG-Formate
Die mit Abstand höchste Popularität genießen die MPEG-Formate. MPEG steht für „Motion
Picture Experts Group“ – eine Gruppe von Experten, die sich mit der Standardisierung von
Videokompression und den dazugehörenden Bereichen, wie Audiokompression oder Containerformaten, beschäftigt. Seit dem ersten Treffen 1988 hat sich die Gruppe auf etwa 360 Mitglieder von verschiedenen Firmen und Universitäten vergrößert.
Um die größtmögliche Anwendungsbreite zu gewährleisten, spezifiziert der MPEG-Standard
nur ein Datenmodell zur Kompression von bewegten Bildern und Tonsignalen. Auf diese
Weise bleibt MPEG für die verschiedensten Computer-Plattformen unabhängig. Die offizielle
Bezeichnung für MPEG ist ISO/IEC JTC1/SC29/WG11 (International Organization for Standardization / International Electrotechnical Commission, Joint Technical Committee 1, SubComittee 29, Working Group 11). Im Folgenden wird nun ein kurzer Überblick über einen
Teil der von MPEG standardisierten Komprimierungsformate gegeben. Sämtliche H.26x
Standards sind ITU2-Standards. Aber sie gehören dennoch aufgrund der Zusammenarbeit mit
den MPEG-Experten dazu.
3.4.1 MPEG-1
MPEG-1 wurde in den 80er Jahren mit dem Ziel entwickelt, für Medien mit geringer Bandbreite (1 MBit/s bis 1,5 MBit/s) die Übertragung von bewegten Bildern mit zugehörigem Audiosignal bei akzeptabler Bildwiederholfrequenz und möglichst guter Bildqualität zu erreichen. Das Entwurfsziel bei MPEG-1 ist der wahlfreie Zugriff auf eine Sequenz innerhalb einer halben Sekunde, ohne dass dabei merkliche Qualitätsverluste auftreten dürfen. Für die
meisten Heimanwendungen (Digitalisierung von Urlaubsvideos) sowie für den Businessbereich (Image-Videos, Dokumentation) ist die Qualität von MPEG-1 ausreichend.
MPEG-1 definiert auch eine Methode zur blockweisen Verschränkung („Multiplex“) von Audio und Video zu System Streams. In diesen sind unter anderem auch Daten zu Abspielzeiten
2
ITU (International Telecommunication Union) (frz: Union internationale des télécommunications, UIT) mit
Sitz in Genf ist die einzige Organisation, die sich offiziell und weltweit mit technischen Aspekten der Telekommunikation beschäftigt. Sie geht zurück auf den 1865 gegründeten Internationalen Telegraphenverein und ist
damit die älteste internationale Organisation. Heute ist sie eine Teilorganisation der UNO mit derzeit 190 Mitgliedsländern. Ihre Ziele sind Abstimmung und Förderung der internationalen Zusammenarbeit im Nachrichtenwesen. In ihrem Rahmen arbeiten Staatsregierungen, Unternehmen des privaten Sektors, sowie weitere regionale
und nationale Organisationen zusammen. Grundlage der ITU ist der Internationale Fernmeldevertrag, der Aufgaben, Rechte und Pflichten der ITU-Organe festlegt.
14
und zur Fehlererkennung integriert. Sie können als Datei gespeichert oder über ein Netzwerk
gestreamt werden.
3.4.2 MPEG-2
MPEG-2 ist ein MPEG Standard zur Videodekodierung mit Videokompression und Audiokodierung mit Audiokompression. MPEG-2 wurde 1994 eingeführt und ist der Nachfolger von
MPEG-1. Es erlaubt Datenraten bis zu 100 MBit/s und kommt bei digitalem Fernsehen (DF1),
Videofilmen auf DVD-ROM und in professionellen Videostudios zum Einsatz. MPEG-2 ist in
Auflösung und Datenrate über einen weiten Bereich skalierbar. Aufgrund seiner hohen Datenrate gegenüber MPEG-1 und dementsprechend hohem Speicherplatzbedarf eignet sich
MPEG-2 derzeit im Heimbereich nur zur Wiedergabe. Ab einer Datenrate von zirka 4 MBit/s
ist die erzielbare Videoqualität deutlich besser als bei MPEG-1.
Für die Videospur zielt der MPEG-2-Standard auf höhere Qualitäten und damit verbundene
Datenraten als der Vorgänger MPEG-1 ab. Datenraten von 15 Mbit/s beziehungsweise bei
höherer Chrominanz (Farb)-Auflösung auch bis zu 50 Mbit/s sind möglich. MPEG-2 ist für
Fernsehübertragungen und Studioanwendungen definiert worden. Für die Audiospur ist eine
Erweiterung zu niedrigeren Datenraten sowie auf mehr Kanäle (5.1 Dolby Digital) enthalten.
Es gibt zwei Varianten der Multikanalkodierung: die rückwärtskompatible, bei der MPEG-1
Dekoder den erzeugten Bitstrom sinnvoll nutzen können, und eine nicht rückwärtskompatible
Variante (engl. non backward compatible - NBC). Die NBC Variante steht im Teil 7 des
MPEG-2 Standards unter dem Namen AAC (Advanced Audio Coding).
Auch variable Bitraten (VBR – variable bitrate) können seit MPEG-2 verwendet werden. Hier
wird nicht immer mit der gleichen Datenmenge über die ganze Sequenz hinweg codiert wie
das bei konstanter Bitrate (ABR – arbitrary bitrate) der Fall wäre. Wenn die aktuelle Sequenz
sehr komplex ist, ist die codierte Datenmenge pro Zeiteinheit größer. Wenn sich sehr wenig in
einer Szene bewegt, kann diese mit sehr wenigen Daten beschrieben werden. Auf diese Weise
spart man Bandbreite bzw. Speicherplatz, erleidet aber keinen zusätzlichen Qualitätsverlust.
Große Verbreitung hat der Standard durch die DVD gewonnen: DVD-Videos sind MPEG-2
enkodiert3. Der Audioteil der DVD kann auch als MPEG-2 Audio Layer-2 codiert sein, was
aber in der Praxis kaum genutzt wird. Fast immer ist das Audiosignal auf DVDs in Dolby
Digital und manchmal zusätzlich in DTS abgespeichert. Auch auf SVCDs wird MPEG-2 verwendet, allerdings mit im Vergleich zur DVD niedrigerer Datenrate. Auch die verschiedenen
heutigen Varianten des digitalen Fernsehens (DVB-S, DVB-C, DVB-T) nutzen die MPEG-2Video-Codierung.
3.4.3 H.263
H.263 ist ein International Telecommunication Union (ITU) Standard zur Videodekodierung
mit Kompression aus den Jahren 1995/1996, welcher auch im MPEG-4 Standard der Moving
Picture Experts Group enthalten ist. H.263 beschreibt einen Codec, welcher in erster Linie für
Video-Konferenzen vorgesehen ist. Somit ist er für niedrige Datenraten und relativ wenig
Bewegung im Video optimiert. H.263 ist eine Weiterentwicklung des H.261 Standards, welcher hauptsächlich als Ausgangspunkt der Entwicklung von MPEG mit Optimierung für höhere Datenraten verwendet wurde. Der H.263 Standard enthält eine Komponente für starke
temporäre Kompression und arbeitet am Besten mit Sequenzen von Filmen, welche wenig
Veränderung zwischen den einzelnen Bildern aufweisen.
3
Ein Encoder (oder auch Coder/Codierer) ist ein System, das eine Datenquelle mit Hilfe eines Codecs in ein
anderes Format umwandeln soll. Ein 'Encoder' arbeitet nach einer fest vorgegebenen Codiervorschrift, damit der
Decoder auf der Empfängerseite das Signal wieder in das ursprüngliche Format zurückkonvertieren kann. Zu
einem Encoder gehört also immer ein „entgegengesetzt“ arbeitender Decoder.
15
3.4.4 MPEG-3
Hätte der Standard für HDTV (HighDefinitionTeleVision, ein digitaler Fernsehstandard) werden sollen. Eine Erweiterung von MPEG-2 war allerdings ausreichend, so dass MPEG-3 nie
zustande kam.
3.4.5 MPEG-4
MPEG-4 ist ein MPEG-Standard (ISO/IEC-14496) und beschreibt unter anderem Verfahren
zur Video- und Audiokompression. Der hauptsächliche Vorteil von MPEG im Allgemeinen
ist die Reduktion von Daten unter geringer Einbuße der Qualität. Um diesen Vorteil zu erreichen, mussten komplexe Kompressionsalgorithmen definiert werden. MPEG-4 erschien 2001
und erweitert MPEG-2 um verschiedene „Video-Objekte” zu unterstützen. Das Ziel ist es 3DInhalte und künstliche Objekte so zu repräsentieren, damit Videos interaktiv verändert werden
können. Zusätzlich wird mit dem neuen Standard eine verdichtete Kodierung eingeführt.
MPEG-4 zählt zu den neuesten Videoformaten und verfolgt das Ziel, eine möglichst hohe
Videoqualität bei extrem niedrigen Datenraten im Bereich zwischen 10 KBit/s und 1 MBit/s
zu erreichen. Eine völlige Neuerung an MPEG-4 ist die Gliederung des Bildinhalts in eigenständige Objekte, um sie gezielt anzusprechen oder weiter zu verarbeiten. Weiterhin gilt die
Forderung nach Robustheit und fehlerfreier Datenübertragung, was besonders im Mobilfunk
eine Rolle spielt. MPEG-4 kommt beispielsweise bei der Videoübertragung übers Internet
zum Einsatz. Einige Hersteller planen, in Zukunft bewegte Bilder per Handy zu übertragen.
MPEG-4 soll dann die Basis für den Datentransfer bilden.
Zusätzlich zur Videodekodierung wurden auch noch einige Audiostandards definiert, wie das
bereits in MPEG-2 standardisierte Advanced Audio Coding (AAC) sowie die Unterstützung
für Digital Rights Management, welches unter der Bezeichnung IPMP (Intellectual Property
Management and Protection) läuft. Außerdem gibt es verschiedene Container für MPEG-4.
Der offizielle Container ist das MP4-Fileformat.
3.4.6 H.264
Die offizielle Terminologie dieses Standards vom ITU lautet H.264 und wird in diesem Dokument auch weiterhin verwendet. Der Standard ist aber auch als MPEG-4 Teil 10 (offizielle
MPEG Terminologie) ISO/IEC 14496-10 AVC bekannt. H.264 wurde 2002 standardisiert.
H.264 unterscheidet sich deutlich von MPEG-4 und seinen Derivaten DivX und XviD. Die
Bezeichnung MPEG-4 wurde ausschließlich aus Marketinggründen beibehalten. H.264 erreicht typischerweise eine etwa dreimal so hohe Codiereffizienz wie MPEG-2. Das heißt, vergleichbare Qualität ist etwa bei einem Drittel der MPEG-2-Datenmenge zu erreichen. Allerdings ist die Rechenkomplexität auch um den Faktor 2 bis 3 höher.
3.4.7 MPEG-7
MPEG-7 ist ein 2002 verabschiedeter Standard der Moving Picture Experts Group. Er dient
zu Ergänzung von multimedialen Daten um Metainformationen. MPEG-7-Daten werden in
XML geschrieben. Es stellt einen Standard zur Beschreibung des Inhalts von MultimediaDaten dar, der unabhängig von den anderen MPEG-Standards eingesetzt werden kann.
Für viele Anwendungen existieren bereits so genannte Deskriptoren und Description Schemes. Diese ermöglichen die Beschreibung von multimedialen Inhalten. So kann beispielsweise eine inhaltsbasierte Ähnlichkeitssuche in Bildern ermöglicht werden.
3.4.8 MPEG-21
MPEG-21 ist ein so genanntes „Multimedia Framework“. Hinter diesem Standard steckt der
Versuch das Medium für den Datentausch von Inhalten über Plattformgrenzen hinaus zu ver16
einheitlichen. Dieser Ansatz ist äußerst wünschenswert, da viele Firmen eigene Standards für
Videoplayer, Plugins, Codecs etc. durchsetzen wollen. Die Industrie steht daher vor dem
selbst gemachten Dilemma des Verlusts von Image, Monopolen und Marktanteilen. Weiters
sind Standards selten so umfassend, dass genügend Raum für Innovationen und Erweiterungen bleibt. So bleibt es zumindest aus Anwendersicht wünschenswert, dass dieses ehrgeizige
Projekt gelingt.
3.5 MJPEG-Format
Die Abkürzung MJPEG steht für Motion-JPEG. Bei diesem Format handelt es sich quasi um
eine Zwischenstufe zwischen Bild- und Videoformat, da eine MJPEG-Sequenz aus hintereinander aufgenommenen JPEG-Bildern besteht. Bei MJPEG handelt es sich um ein Kompressionsverfahren, das auf jedes einzelne Bild angewandt wird. Videoschnittkarten wie die Fast
AV Master oder die Miro DC50 reduzieren den anfallenden Datenstrom eines StandardFernsehsignals von zirka 30 MB/s (!) auf 6 MB/s (MJPEG-Datei). Das entspricht einem
Kompressionsverhältnis von 5:1. Einen Standard zur Synchronisation von Audio- und Videodaten bei der Aufnahme sieht das MJPEG-Format allerdings nicht vor, sodass die Hersteller
von Videoschnittkarten ihre eigenen Implementierungen vornehmen müssen.
Die mit MJPEG-komprimierten Videos haben im Gegensatz zu den mit MPEG komprimierten eine von der Bewegung im Film unabhängige Qualität. Wegen der hohen Qualität (bei 3
MB/s etwa SVHS-Qualität) der Videos wird dieser Standard oft von digitalen Kameras verwendet. Der Nachteil ist, dass bei mittlerer Datenrate sehr große Dateien entstehen. Deshalb
können die meisten Digitalkameras nur relativ kurze Sequenzen aufnehmen. Es gibt zahlreiche Varianten des Formats die zum Teil nicht kompatibel sind.
3.6 DivX
DivX ist ein Video-Codec, der von DivXNetworks entwickelt wurde. Der Codec ist für seine
Fähigkeit bekannt, große Videodateien zu komprimieren. Aufgrund seiner oft genutzten Verwendung zum Kopieren und Verbreiten von urheberrechtlich geschützten DVDs ist er umstritten. Es gibt bereits Hardware-DVD-Player, die DivX-Videos abspielen können.
DivX ist nicht mit DIVX zu verwechseln, einem seinerzeit umstrittenen DVD-Mietsystem,
das um 1998 vom US-Elektronikeinzelhändler Circuit City entwickelt wurde. Zuerst wurde
der Codec DivX „Codec DivX ;-)“ genannt, was als eine höhnische Anspielung darauf gemeint war, dass der Code von dem MPEG-4-Projekt von Microsoft „übernommen“ wurde.
Der heute verfügbare Codec basiert aber nicht auf dieser Version, sondern wurde von Grund
auf neu geschrieben und an den MPEG-4-Standard angelehnt. Zahlreiche eigene Funktionalitäten ermöglichen aber bis heute keine Kompatibilität der beiden Verfahren.
Ein typischer Film auf DVD benötigt sechs bis acht Gigabyte Speicherplatz. Mit der DivXVideokompression können Anwender den Film auf einer einzigen CD-ROM (650 – 700 MB)
speichern. Die Qualität bleibt jedoch hoch, außer bei Szenen mit viel Bewegung sind stärkere
Kompressionsartefakte sichtbar. Es gibt viele Anwendungen, die eine DivX-Datei aus einem
normalen DVD-Video extrahieren (rippen) können. Die resultierende Datei kann dann auf
Festplatte gespeichert werden bzw. auf CD oder DVD gebrannt werden.
DivX 3.11 und frühere Versionen des Codecs entstanden, indem Microsofts MPEG-4-Codec
gehackt wurde. Dieser war durch einen französischen Hacker namens Jerome (Gej) Rota aus
einer Betaversion des Windows Media Players extrahiert worden. Der Microsoft-Codec wurde modifiziert, um nicht nur ASF-Dateien, sondern auch AVI-Dateien komprimieren zu können. Die von Rota gegründete Firma DivXNetworks, Inc. entwickelte später eine komplett
neue Version, um Patentverletzungen zu vermeiden. DivXNetworks hat ein Patent für den
neuen Codec – der auf dem MPEG-4-Standard basiert – angemeldet.
17
Man kann den neuen DivX Codec (Version 5.2) für Windows-, Linux- und MacintoshBetriebssysteme von der DivX-Webseite herunterladen. Er ist allerdings keine Freie oder Open-Source-Software. Jedoch wurde eine offene Version (OpenDivX) 2001 von DivXNetworks veröffentlicht. Diese Version war Grundlage für den offenen XviD-Codec, der von
einer unabhängigen Gruppe unterstützt wird.
Der Erfolg von DivX im Heimbereich hat sich in den letzten Jahren soweit gesteigert, dass
selbst DVD-Player im Low-Price Segment DivX unterstützen. Um sich weiter im Heimbereich zu festigen wird die Breite an Abspielmöglichkeiten weiter gesteigert, in dem der Codec
auch für den Einsatz auf anderen Platformen weiterentwickelt wurde. So gibt es zusätzlich die
Möglichkeit Filme im resourcen- und speicherschonenden Formaten für den Einsatz auf
PDAs und Handhelds zu komprimieren, als auch für den anspruchsvollen Heimkinoeinsatz in
hochauflösenden Formaten (HDTV). Filme mit hochauflösenden Bildern werden folglich
mehr Leistung vom Prozessor verlangen und auch mehr Speicherplatz einnehmen. Jedoch
wird man deutlich unter dem Bedarf eines vergleichbaren MPEG Filmes bleiben.
3.7 XviD
XviD ist ein Open Source-MPEG-4-Video-Codec, der ursprünglich auf dem OpenDivXQuellcode basierte. Der zugrunde liegende Quellcode von OpenDivX stammte wiederum aus
der MPEG-4-Referenzimplementierung des EU-Projekts 'MoMuSys'. Das XviD-Projekt wurde von mehreren freiwilligen Programmierern gestartet, nachdem der Quellcode von OpenDivX nicht mehr frei zur Verfügung stand. Auch der Name des Projekts ist eine Anspielung
darauf (XviD ist DivX rückwärts). Zusammen mit DivX ist dieser Codec der bekannteste
MPEG-4-Encoder.
Wegen Patentrechtsangelegenheiten kann XviD nicht an Personen und Firmen in den USA
oder Japan lizenziert werden. Zudem werden deshalb keine offiziellen kompilierten Versionen
des Quelltextes vom XviD-Team bereitgestellt.
Im Juli 2001 fingen die Entwickler an, sich über einen Mangel an Aktivität in dem Projekt zu
beschweren, da die letzte Quelltextveränderung schon Monate her war, Verbesserungen von
Programmfehlern ignoriert wurden und die versprochene Dokumentation nicht erschienen
war. Kurz danach veröffentlichte DARC4 eine Beta-Version ihres Closed Source und kommerziellen DivX 4 Codecs, welches auf encore25 basierte, mit der Erklärung „Was die Community wirklich will, ist ein Winamp, nicht ein Linux“ (übersetzt). Manche warfen DivXNetworks vor, OpenDivX nur gestartet zu haben, um anderer Leute Ideen zu sammeln und sie
dann in ihrem DivX 4 Codec zu benutzen. Manche waren enttäuscht, dass die Codecentwicklung stagnierte, wollten aber daran weiter arbeiten, während andere wütend darüber waren, wie DivXNetworks ein so genanntes Open-Source-Projekt handhabt. Danach wurde ein
Fork von OpenDivX erstellt, der die letzte Version von encore2 verwendet. Seitdem wurde
der gesamte OpenDivX-Code ersetzt und XviD unter der GPL (GnuPublicLicense, OpenSource-Lizenz) veröffentlicht.
4
http://www.darc.com
5
Im Frühjahr 2001 schrieb DARC Mitglied „Sparky“ eine verbesserte Version des Encoderkerns, genannt encore2, welcher dann vom CVS ohne Vorwarnung entfernt wurde. Die Erklärung von Sparky war: „Wir (unsere
Vorgesetzten) entschieden, dass wir noch nicht bereit sind, es der Öffentlichkeit zu zeigen“ (übersetzt).
18
4 Audioformate
In diesem Kapitel werden Möglichkeiten zum Codieren von Audiodateien beschrieben. Auch
hier gilt, dass die beschriebene Auswahl nur die am weitest verbreiteten Verfahren umfasst.
Generell muss man zwischen verlustfreier und verlustbehafteter Kompression unterschieden.
4.1 Verlustfreie Kompression
Verglichen mit Bildkomprimierung werden verlustfreie Komprimierungsmethoden in der
Audiokomprimierung nicht so häufig verwendet. Die Hauptbenutzer von verlustfreier Komprimierung sind Toningenieure und ihre Kunden, die den Qualitätsverlust der verlustbehafteten
Kompressionsmethoden vermeiden wollen. Der Grund für die geringe Verwendung ist die
geringe Speicherplatzreduktion, die hierbei erreicht werden kann.
Die meisten Tonaufnahmen sind Sounds aus der realen Welt. Solche Daten können nicht gut
komprimiert werden. Aber auch computergenerierte Tonabfolgen können sehr komplizierte
Wellenformen enthalten, die sich mit vielen Kompressionsalogrithmen nur schlecht verkleinern lassen. Dies liegt an der Natur der Schallwellen, die sich im Allgemeinen schwer vereinfachen lassen. Vereinfachungen führen dazu, dass nicht mehr alle Frequenzen des originalen
Signals repräsentiert werden und so bereits ein Qualitätsverlust auftritt. Außerdem ändern sich
die Werte der Audiosamples sehr schnell und es gibt selten Folgen von gleichen Bytes, weswegen allgemeine Datenkompressionsalgorithmen (wie Lauflängencodierung) keine hohe
Datenreduktion erreichen.
Die verlustfreien Audiocodecs unterscheiden sich von allgemeinen Algorithmen zur Datenreduktion dadurch, dass sie speziell an die typische Datenstruktur von Audiodateien angepasst
sind. So können Audiocodecs Ähnlichkeiten zwischen den Kanälen (links, rechts) oder eine
bestimmte Samplerate (z.B. CD-Qualität: 44,1 kHz) als Voraussetzung für die zu komprimierenden Daten annehmen. Dies hat zur Folge, dass die Audiocodecs in fast allen Fällen Audiodateien besser komprimieren als z. B. die ZIP- oder RAR-Algorithmen. Die Kompressionsrate
von verlustfreien Audiocodecs bei CD-Tracks liegt meist zwischen 40 und 70 Prozent, aber
meistens näher bei 40 Prozent.
Verlustfreien Codecs reproduzieren jeweils das Originalsignal.
4.1.1 Apple Lossless
Apple Lossless ist ein von Apple entwickelter proprietärer Codec zur verlustfreien Audiokompression. Ab Version 4.5 von iTunes6, kann er benutzt werden, um Musik von CDs und
anderen Quellen (AIFF, WAV) zu importieren, wobei die komprimierten Audiodaten in MP4Container (MP4 ist der für MPEG-4-Inhalte von der Moving Picture Experts Group vorgesehene Container.) eingebettet werden. Apple Lossless wird auch von Apples AirPort Express
verwendet, um Musik mit iTunes 4.6 und AirTunes7 über WLAN zu streamen.
6
iTunes ist ein kostenloser Musikplayer, sowohl für den Computer der Firma Apple als auch jeden anderen
Computer, der unter dem System Windows 2000 bzw. XP läuft. Die Funktionen erstrecken sich vom Abspielen
über das Organisieren bis hin zum Kaufen von Musik. Die aktuelle Versionsnummer ist 4.7.1, die für die Betriebssysteme Mac OS X sowie für Windows 2000 und XP erhältlich ist. Die Mac-OS-9-Version wird seit der
Version 2.0.4 nicht mehr weiterentwickelt.
7
AirTunes nennt sich die Methode, über Wireless-Lan Musik mit der Software iTunes über das Gerät Airport
Express der Firma Apple zu streamen. Dabei wird in der Software iTunes die Airport Express Station als Lautsprecher ausgewählt und anschließend Musik abgespielt. An die Airport Express Station wird über einen Lineout
Ausgang direkt die Stereoanlage oder Ähnliches angeschlossen.
19
4.1.2 Free Lossless Audio Codec
FLAC, ausgeschrieben Free Lossless Audio Codec, zu Deutsch Freier verlustfreier AudioKodierer. Frei bedeutet, dass es sich um Freie Software handelt. Ähnlich wie MP3 komprimiert FLAC Musikdaten, aber mit dem Unterschied, dass dies ohne Qualitätsverluste geschieht.
4.2 Verlustbehaftete Kompression
Die meisten verlustbehafteten Kompressionsalgorithmen basieren auf simplen Transformationen, wie der „modifizierten diskreten Kosinus-Transformation“ (MDCT), welche die aufgenommene Wellenform in ihre Frequenzabfolgen umwandeln. Einige moderne Algorithmen
benutzen Wavelets, aber es ist noch nicht sicher, ob solche Algorithmen besser funktionieren
(bessere Qualität/Kompressionsverhältnisse erzielen) als die auf MDCT basierenden.
Die meisten Algorithmen versuchen nicht den mathematischen Fehler zu reduzieren, der beim
Abtasten eines Signals entsteht, sondern die subjektive menschliche Wahrnehmung der Tonfolgen zu verbessern. Da das menschliche Ohr nicht alle Informationen, die in einem Sound
enthalten sind, analysieren kann, ist es möglich, eine Sounddatei stark zu verändern, ohne
dass die subjektive Wahrnehmung des Hörers beeinträchtigt wird. So kann ein Codec zum
Beispiel einen Teil der sehr hohen und sehr tiefen Frequenzen (welche für Menschen fast unhörbar sind) weglassen. Auf ähnliche Weise werden Frequenzen, die durch andere Frequenzen überlagert sind, mit geringerer Genauigkeit wiedergegeben. Eine andere Art der Überlagerung ist, dass ein leiser Ton nicht erkennbar ist, wenn er unmittelbar vor oder nach einem
lauten Ton kommt. Ein solches Modell der Ohr-Gehirn Verbindung, welches für diese Effekte
verantwortlich ist, wird häufig psychoakustisches Modell genannt (auch: “Psychoaccoustic
Model“, „Psycho-model“ oder „Psy-model“). Ausgenutzt werden hierbei Eigenschaften des
menschlichen Gehörs wie Frequenzgruppenbildung, Hörbereichsgrenzen, Maskierungseffekte, sowie das Wissen über die Signalverarbeitung des Innenohrs.
Aufgrund der Natur der verlustbehafteten Algorithmen verschlechtert sich die Qualität, wenn
eine solche Datei dekomprimiert und anschließend wieder komprimiert wird (Generationsverluste). Das passiert in der Praxis vor allem, wenn eine Audio-CD aus verlustbehafteten Audiodateien gebrannt wird und diese später wieder komprimiert wird. Dies macht verlustbehaftete Dateien sehr ungeeignet für Anwendungen in professionellen Tonbearbeitungsbereichen.
Allerdings sind solche Dateien sehr beliebt bei Endbenutzern, da ein Megabyte je nach Komplexität des Tonmaterials ungefähr für eine Minute Musik bei annehmbarer Qualität reicht,
was einer Kompressionsrate von ca. 1:11 entspricht.
4.2.1 MP2
MPEG-1 Audio Layer 2 (MP2) ist ein auch als Musicam bekanntes und von der Motion Pictures Experts Group standardisiertes Verfahren zur Audiokompression von digitalen Audiodaten. Die Abkürzung wird auch als Dateierweiterung für Dateien, die Audiodaten dieses Typs
beinhalten, genutzt.
Während es im PC- und Internet-Bereich im Wesentlichen durch MP3 abgelöst wurde, verbleibt es als dominanter Standard für digitalen Rundfunk als Teil der DAB- und DVBStandards.
4.2.2 MP3
MP3, eigentlich MPEG-1 Audio Layer 3, ist ein Dateiformat zur verlustbehafteten Audiokompression. Entwickelt wurde es 1987 am Fraunhofer-Institut für Integrierte Schaltungen in
Erlangen in Zusammenarbeit mit AT&T Bell Labs und Thomson. Wie viele der aktuellen
Kodierverfahren sind Kernbereiche von MP3 durch Patente geschützt. Prof. Dr. Karlheinz
20
Brandenburg wurde für die Entwicklung dieses Datenformates mehrfach ausgezeichnet.
Brandenburg ist heute Leiter des Fraunhofer-Instituts für Digitale Medientechnologie IDMT
in Ilmenau und Direktor am Institut für Medientechnik der TU Ilmenau.
Wie andere Formate setzt MP3 darauf, dass die Wahrnehmung des Menschen begrenzt ist.
Die Menge der Töne, die vom Menschen beispielsweise wegen ihrer Frequenz oder Lautstärke nicht wahrgenommen werden können, wird beim MP3 Verfahren reduziert. Somit ist MP3
ein verlustbehaftetes Verfahren, d.h. das Eingangssignal kann aus dem Ausgangssignal nicht
mehr reproduziert werden und Informationen gehen verloren. Die Verluste hängen stark von
der Datenrate und dem zu komprimierenden Tonmaterial ab. Das MP3-Format erlaubt dem
Benützer, Kompressionsraten von 32 kBit/s bis zu 320 kBit/s festzulegen. Üblich ist für Musik, die in lauter Umgebung oder bei hoher Lautstärke gehört wird, eine Bitrate von 128
kBit/s, je nach Anspruch auch eine höhere. Weiterhin gibt es variable Bitraten, die sich einer
gewählten Qualitätsstufe anpassen.
MP3 wurde vor allem durch Musiktauschbörsen in der breiten Öffentlichkeit bekannt, wird
aber auch bei vielen DVD-Rips als Audioformat benutzt. Die MP3-Technologie wird für so
genannte MP3-Player eingesetzt, mit denen man auch unterwegs Musik hören kann.
4.2.3 Advanced Audio Coding
Advanced Audio Coding, häufig auch einfach AAC genannt, ist ein von der Moving Picture
Experts Group (Dolby, Fraunhofer-Institut für Integrierte Schaltungen in Erlangen, AT&T,
Nokia, Sony) entwickeltes Audiokompressionsverfahren, das vom MPEG-2 Standard spezifiziert ist. Es bietet gegenüber älteren Formaten wie MP3 diverse Vorteile, unter anderem eine
bessere Qualität bei gleicher Dateigröße oder die Unterstützung für Multichannel-Audio. Jedoch benötigen manche Profile (Kompressionseinstellungen) mehr Rechenleistung zum Enkodieren (zum Beispiel beim Rippen von CDs) und Dekodieren (Abspielen) als zum Beispiel
MP3.
Neben dem Kompressionsschema ist auch das Containerformat MP4 definiert worden, das
unter anderem die Übermittlung von Metadaten (Tagging) oder die Verwendung eines Kopierschutzverfahrens (siehe DRM) erlaubt.
4.2.4 Windows Media Audio
Windows Media Audio (WMA) ist ein proprietärer Audio-Codec von Microsoft und Teil der
Windows Media-Plattform. WMA ist ein verlustbehafteter Codec, d.h. beim Kodierungsprozess gehen Daten verloren. In der „Professional“-Variante unterstützt er bis zu 24 bit/96 KHz
bei einer variablen Bitrate von bis zu 768 kb/s und Surround-Ton mit bis zu 7.1 Kanälen.
Daneben gibt es eine Version, die speziell auf Quellmaterial, das Stimmaufnahmen enthält,
abgestimmt ist (Windows Media Audio Voice, ACELP), sowie den verlustfreien Codec Windows Media Audio Lossless.
WMA-kodierte Audio-Streams, sind in der Regel in ASF-Container eingebettet. Im Falle einer reinen Audio-Datei tragen die Dateinamen zumeist die Endung .wma. Windows Media
Audio unterstützt auch die Einbindung von DRM, die dem Urheber von geistigem Eigentum
die Regelung der Zugriffsrechte auf Tonmaterial ermöglichen soll. In der Praxis wird diese
Technik häufig als Kopierschutzmaßnahme bzw. als Abspielbeschränkung eingesetzt.
4.2.5 Adaptive Transform Acoustic Coding
ATRAC ist die Abkürzung für Adaptive Transform Acoustic Coding (in etwa: Anpassungsfähiger Ton-Umwandlungscode). ATRAC ist ein Audiokompressionsverfahren, das auf psychoakustischen Grundregeln basiert. Es komprimiert Audio-Dateien auf einen Bruchteil des
21
ursprünglichen Datenvolumens. Der ATRAC-Codec wurde von Sony mit der Einführung der
MiniDisc im Jahre 1992 vorgestellt und bis heute stetig weiterentwickelt.
Der Codec beinhaltet verschiedene Kopierschutzmechanismen. Seit ATRAC3 wird auch Digital Rights Management unterstützt. Sony möchte so Raubkopien unterbinden, schränkt aber
damit auch die Nutzungsmöglichkeiten des ATRAC-Codecs ein und hat so dessen großen
Durchbruch bisher verhindert. Vor allem wegen der hohen Lizenzgebühren, die von Sony für
ATRAC verlangt werden, findet man heute nur noch wenige Firmen, die kompatible Geräte
herstellen. Darunter sind Sony selbst, Sharp, Aiwa (von Sony aufgekauft) und Panasonic.
Trotz alledem erfreuen sich ATRAC-kompatible Geräte und die unweigerlich mit diesem Codec verknüpfte MiniDisc großer Beliebtheit.
4.2.6 Digital Theater Systems
DTS ist ein Mehrkanal-Tonformat, das im Kino, bei Laserdisks und DVDs zum Einsatz
kommt. DTS verwendet verlustbehaftete Verfahren zur Komprimierung der Audiodaten. Es
wurde von der Firma Digital Theatre Systems Inc. entwickelt. DTS ist die Abkürzung für Digital Theatre Sound und wird als höherwertige Alternative zu Dolby Digital vermarktet.
Die Bitrate von DTS Tonspuren auf Video DVDs beträgt entweder 754.5 kbps oder 1509.25
kbps. Die Tonspur kann einen LFE-Kanal enthalten, der nur den für die Tieftonwiedergabe
zuständigen Subwoofer bedient. Die vollfrequenten Kanäle gehen von 20Hz bis 20kHz, der
Basskanal reicht aber nur bis 80Hz.
Der Ton wird im Kino auf einer oder mehreren Compact Discs gespeichert, die durch eine
kleine Timecode-Spur auf der Filmrolle zum Bild synchronisiert werden. Der analoge Ton
befindet sich weiterhin auf dem Film und wird bei Ausfall von DTS als Notlösung verwendet.
4.2.7 Dolby Digital
Dolby Digital (auch DD, SR*D oder AC-3 genannt) ist ein Mehrkanal-Tonsystem, das im
Kino, auf Laserdisks, DVDs und im Fernsehen zum Einsatz kommt. Es konkurriert im Bereich Kino und DVD mit den Verfahren DTS und SDDS (SDDS nur Kino).
Dolby Digital ermöglicht die datenreduzierte Kodierung von drei Frontkanälen, zwei vollwertigen Rückkanälen und einem LFE-Kanal (Low Frequency Effect; Subwoofer) in einen konstanten Datenstrom. Das verwendete Kodierungsverfahren heißt AC-3. Die vollfrequenten
Kanäle haben ein Spektrum von 20Hz bis 20kHz, der Basskanal reicht bis 120Hz.
Im Heimbereich ist Dolby Digital der digitale Nachfolger von Dolby Surround (analoges
Mehrkanal-Tonsystem). Zusätzlich enthält es Metadaten, die dem Dekoder u.a. behilflich
sind, einen Stereo-Downmix der sechs verwendeten Kanäle zu erstellen und den Dynamikbereich (Differenz zwischen maximaler und minimaler Amplitude), falls dies der Zuhörer möchte, zu beschränken.
22
5 Matlab 6.0
5.1 Einleitung
Matlab ist ein Programm, das es ermöglicht mit Hilfe einer High-Level-Programmiersprache
mathematische Programme und Prozeduren kurz und kompakt zu erstellen. Aufgrund der Tatsache, dass von Matlab für viele spezielle Berechnungen bereits Befehle vordefiniert sind,
kann der User sehr schnell, mit wenigen Codezeilen eine gewünschte Anwendung erstellen.
Meist reicht es allerdings aus, eine Skriptdatei zu erstellen, welche die Befehle abarbeitet und
anschließend terminiert. Mit dieser Arbeitsweise wurde auch im Rahmen unseres Projektes
mit Matlab gearbeitet.
Für die „Wagner & Platzer – Anfangssequenz“ wurde ein Ausschnitt aus „Star Wars - Episode 1 – Die dunkle Bedrohung“ herangezogen und mit einem speziellen Effekt bearbeitet. Mit
Hilfe der Image-Toolbox von Matlab stehen bereits umfangreiche Methoden zum Laden, Bearbeiten und Exportieren von Bildern zur Verfügung, weshalb wir auf Matlab zurückgegriffen
haben, um den Effekt in kurzer Zeit auszuprogrammieren.
In den nächsten Abschnitten werden der Algorithmus und dessen Implementierung genauer
beschrieben.
5.2 Algorithmus
Für die Bearbeitung des zugrunde liegenden Filmmaterials in Matlab musste dieses in einer
Bildsequenz vorliegen. Wir verwendeten dafür eine Bitmap-Sequenz, weil dabei kein Qualitätsverlust auftritt. Der nun folgende Algorithmus lädt jeweils fünf Bilder dieser Sequenz und
erstellt daraus ein neues Bild, indem für jede Pixelposition der Median der RGB-Werte der
fünf Basisbilder verwendet wird. Man kann die Berechnung in folgenden Formeln angeben:
Ir(x,y) = median(A1r (x,y), A2r (x,y), A3r (x,y), A4r (x,y), A5r (x,y))
Ig(x,y) = median(A1g (x,y), A2g (x,y), A3g (x,y), A4g (x,y), A5g (x,y))
Ib(x,y) = median(A1b (x,y), A2b (x,y), A3b (x,y), A4b (x,y), A5b (x,y))
Dabei sind A1, A2, A3, A4, A5 die Basisbilder und I das Ergebnisbild. x und y geben die jeweilige Pixelposition im Bild an. Die Subscripte r, g und b geben die drei Farbkanäle Rot,
Grün und Blau an.
Dieses Verfahren wurde in der LU Bildverstehen verwendet, um statische Hintergründe aus
Bildsequenzen zu extrahieren. In unserer Übungsaufgabe rekonstruierten wir aus einer Serie
von Standbildern einer Autobahnwebcam das Bild einer leeren unbefahrenen Autobahn. Um
das Problem zu vereinfachen, wurden aus den Webcam-Bildern Grauwertbilder erzeugt. Dies
ermöglichte es, alle Bilder für die Generierung des Hintergrundes zu berücksichtigen. In
Abbildung 5.1(a) ist ein Beispielbild von der Webcam zu sehen. In Abbildung 5.1(b) das generierte Bild.
23
(a) Original-Webcambild
(b) Ergebnisbild
Abbildung 5.1: Hintergrunddetektion
Ursprünglich war gedacht, den Algorithmus auf Kinofilme anzuwenden, um ebenfalls Hintergründe zu separieren. Da aber dafür eine statische Kameraeinstellung benötigt wird, war es
zunächst überhaupt schwer eine geeignete Szene zu finden. Als wir dann bei dem Lichtschwertkampf aus „Starwars – Episode 1 – Die dunkle Bedrohung“ fündig wurden, erweiterten wir den Algorithmus, so dass er auf RGB-Bildern operieren konnte. Er schaffte es allerdings nicht, die Schauspieler komplett vom Hintergrund zu trennen. Wir testeten dabei auch
mehr als fünf Bilder, wobei aber zu beachten ist, dass das Programm sehr viel Speicher benötigt, da die Bildsequenz in einem vierdimensionalen Array gespeichert und bearbeitet wird.
(Die vier Dimensionen sind: die Bildnummer, der Farbkanal, die x- und die y-Position der
Pixel) Dies hatte zur Folge, dass der Rechner mit maximal acht Bildern arbeiten konnte, um in
annehmbarer Zeit ein Ergebnis zu erzeugen. Weil aber das Erhöhen der Bildzahl, das Ergebnis nicht wesentlich verbesserte, hätte man den Algorithmus modifizieren müssen. Dabei hätte
man nicht mehr die Mediane der Bildintensitäten pro Kanal verwenden müssen, sondern eine
vom User definierte Nummer der gereihten Intensitätswerte. Da man dies für jeden Farbkanal
separat einstellen hätte können, wäre man flexibler geworden. Doch diese Herangehensweise
hätte den Aufwand drastisch erhöht. Erstens liegt in Matlab keine Funktion vor, die dies bewerkstelligt. Zweitens hätte man, da die beiden Schauspieler unterschiedlich angezogen sind,
zwei Bilder erstellen müssen, in denen jeweils nur ein Schauspieler entfernt worden ist. Diese
Bilder hätten anschließend noch kombiniert werden müssen.
Da der Algorithmus aber interessante Bilder erzeugte, entschieden wir uns, eine Animation
daraus zu erzeugen. Um die Rechenzeit zu vermindern, verwendeten wir fünf Bilder zur Generierung des Ergebnisses.
5.3 Implementierung
In diesem Kapitel werden nun die einzelnen Codezeilen der Matlab-Implementierung genauer
erörtert. (Die Bilder der zu ladenden Bildsequenz haben den Basisnamen obimaul, was daraus resultiert, dass in dem besagten Videoausschnitt die beiden Charaktere Obi-wan Kenobi
und Darth Maul zu sehen sind.)
Die äußere Schleife definiert welche Bilder gewählt und wie viele Ergebnisbilder erzeugt
werden. In diesem Beispiel werden 10 Ergebnisbilder generiert. Die Laufvariable j durchläuft
den Bereich 1 bis 10. j legt unter anderem fest welches das erste Basisbild ist.
Unserer Erfahrung nach ist es optimal maximal 10 Bilder in einem Durchlauf zu generieren.
Ansonsten kann es vorkommen, dass Matlab abstürzt. Damit nicht immer dieselben Bilder
generiert werden, muss der Bereich für j natürlich verändert werden.
24
for j = 1:10
Als erstes wird der Name des ersten Basisbildes in der Variable picname abgespeichert. Dabei wird die Laufvariable j mit dem Befehl int2str() in einen String konvertiert. Um einzelne Strings aneinander zu reihen, werden diese in eckigen Klammern hintereinander geschrieben. Letztlich sind einige if-Abfragen notwendig, um passend für die verschiedenen
Anzahlen von Stellen von j den korrekten String zu erzeugen.
if j < 10
picname = ['obimaul000' int2str(j) '.bmp'];
else
if j < 100
picname = ['obimaul00' int2str(j) '.bmp'];
else
if j < 1000
picname = ['obimaul0' int2str(j) '.bmp'];
else
picname = ['obimaul' int2str(j) '.bmp'];
end
end
end
Anschließend wird das Bild in die Variable immatrix mit dem Befehl imread() geladen.
Dabei werden die Bildeinträge mit im2double() in das double Format konvertiert. immatrix
ist zunächst ein dreidimensionaler Array mit den Dimensionen Farbkanal, x-Position und yPosition.
immatrix = im2double(imread(picname));
In der nun folgenden inneren Schleife werden vier weitere Bilder geladen. Dabei wird aus der
ursprünglichen Bildsequenz jeweils ein Bild ausgelassen, damit unterschiedlichere Bildinhalte
in die Berechnung eingehen. Wurde also beispielsweise der Algorithmus mit j=1 gestartet, so
gehen die Bilder 1, 3, 5, 7 und 9 in die Berechnung ein.
for i = 1:4;
if (j+2*i) < 10
picname = ['obimaul000' int2str(j+2*i) '.bmp'];
else
if (j+2*i) < 100
picname = ['obimaul00' int2str(j+2*i) '.bmp'];
else
if (j+2*i) < 1000
picname = ['obimaul0' int2str(j+2*i) '.bmp'];
else
picname = ['obimaul' int2str(j+2*i) '.bmp'];
end
end
end
Mit dem nächsten Befehl wird in die Variable immatrix ein weiteres Bild eingefügt. Beim
ersten Schleifendurchlauf wird dabei automatisch die Dimension erhöht. Die vierte Dimension ist nun die Bildnummer.
immatrix(:,:,:,i+1) = im2double(imread(picname));
25
end
Mit dem Befehl median(immatrix,4) wird nun der Median über die 4. Dimension der Variable immatrix gebildet.
imean = median(immatrix,4);
Abschließend wird der Name des Ergebnisbildes festgelegt und die Variable imean mit dem
Befehl imwrite() als Bild mit dem Namen, der picname gespeichert ist, exportiert.
picname = ['ergebnis' int2str(j) '.jpg'];
imwrite(imean, picname);
end
Dieser Code wird nun in einer Skriptdatei mit dem Dateityp .m gespeichert. Man kann nun in
Matlab diese Datei aufrufen, in dem man den Dateinamen ohne dessen Dateiendung (Dateityp) eingibt.
5.4 Ergebnisse
In den nächsten 3 Abbildungen sind jeweils unter (a) die ersten Basisbilder für die unter (b)
gezeigten, vom Algorithmus generierte Ergebnisbilder zu sehen. Vor allem in Abbildung
5.4(b) ist sehr gut zu erkennen, dass aufgrund der starken Bewegung der Schauspieler eine
Extraktion des Hintergrundes mit dieser Methode möglich ist.
(a) Erstes Basisbild
(b) Ergebnisbild
Abbildung 5.2: j = 212
26
(a) Erstes Basisbild
(b) Ergebnisbild
Abbildung 5.3: j=300
(a) Erstes Basisbild
(b) Ergebnisbild
Abbildung 5.4: j= 700
5.5 Weitere Bearbeitungsschritte
Um die einleitende Animation fertig zu stellen, wurden noch Einblendungen von Wolkenanimationen und des „Wagner & Platzer“ Logos angefertigt. Die Beschreibung der Generierung
von animierten Wolkenvideos ist in den Kapiteln „Eigene Programme: Wolkengenerator“ und
„Arbeiten mit Adobe Aftereffects“ nachzulesen. Die Kombination der Wolkeneffekte mit dem
in Matlab erstellten Video und die Anzeige des Wagner & Platzer – Logos ist im Kapitel „Arbeiten mit Corel Photopaint“ beschrieben.
6 Magix Audio Studio 2003 deluxe
6.1 Einleitung
Mit Magix Audio Studio 2003 deluxe wurden die Audiospuren für sämtliche Filme erstellt.
Dies umfasst das Zusammenschneiden und Modifizieren von Lichtschwertsoundsamples für
den Film „Das Duell“, sowie die Musikzusammenschnitte für die Menü-Videos und die Videos „Making of“, „Outtakes“, „Das Duell“, „Ouvertüre“, „2D-Fraktal-Animation“, „Jackass27
Trailer“, „Fraktale-Trailer“, „Experimental-Trailer“ und die „Wagner & Platzer“Anfangssequenz.
Die Funktionalität des Programms, die für das Projekt verwendet worden ist, wird auch von
Adobe Premiere zur Verfügung gestellt. Allerdings konzentriert sich Magix Audio Studio
2003 deluxe rein auf das Schneiden und Bearbeiten von Audiospuren und stellt ein sehr komfortables Interface zur Verfügung, weshalb wir diesem Programm den Vorzug gegeben haben.
Im Folgenden werden die wichtigsten Operationen zur Erstellung oben genannter Audiospuren beschrieben.
6.2 Öffnen eines leeren Projekts
Nach dem Start des Programms erscheint folgendes Fenster:
Abbildung 6.1: Start Auswahl
Hier kann mit Hilfe des Buttons „Neues Mehrspur-Projekt (VIP)“ ein neues Projekt geöffnet
werden. Außerdem kann man hier zuletzt geöffnete Projekte sehr schnell auswählen. Die weiteren Funktionalitäten dieses Fensters wurden nicht benutzt.
Nachdem man den Button „Neues Mehrspur-Projekt (VIP)“ geklickt hat, erscheint ein Fenster, in dem die Einstellungen für das neue Projekt festgelegt werden können. Dies ist in
Abbildung 6.2 sichtbar.
28
Abbildung 6.2: Projekteinstellungen
Hier können Projektname und Pfad für das Abspeichern der Projektdatei eingegeben werden.
Weiters kann die Anzahl der Spuren festgelegt werden. Diese gibt an, wie viele Audiosamples
gleichzeitig zu einem Zeitpunkt abgespielt werden können. Im Rahmen unserer Arbeiten haben wir 4 Spuren verwendet. Das nachträgliche Hinzufügen von Spuren ist sehr leicht möglich (Menü „Spur“, Untermenü „Neue Spuren einfügen“, Menüpunkt „Leere Spur anhängen“). Bei der Sample Rate wählten wir mit 44100 Hz CD-Qualität. Die voreingestellte Projektlänge kann vernachlässigt werden, da sich das Projekt beim Importieren von Audiosamples, die über diese Länge hinausgehen, automatisch verlängert. Die Einstellungen für Projekt
Vorlagen wurden nicht verwendet. Nach Bestätigen mit dem „OK“-Button wird ein leeres
Projekt geöffnet.
6.3 Laden von Audiodateien
Magix Audio Studio 2003 deluxe ermöglicht es, rasch Audiodateien von der Festplatte aber
auch Samples von Audio-CDs zu laden. Das Laden von Audiodateien von der Festplatte wird
mit dem Icon
links neben dem „Speichern“-Icon initiiert. Es wird ein Importdialog geöffnet. Darin können
alle ladbaren Dateien ausgewählt werden. Die für uns wichtigsten Dateitypen waren WAV
und MP3. Selektierte Dateien können in diesem Dialogfenster abgespielt werden. Bei Bestätigung mit dem „OK“-Button werden die ausgewählten Dateien geladen und in der ersten Spur
beginnend ab der aktuellen Position des Play-Cursors in das Projekt eingefügt. Dies ist in
Abbildung 6.3 dargestellt.
29
Abbildung 6.3: importiertes Audiosample
In dieser Abbildung sind in der linken Spalte die jeweiligen Grundeinstellungen für jede Spur
ersichtlich. Hier kann beispielsweise die Lautstärke mit Hilfe des „Vol“-Schiebers verändert
werden, oder die Spur mit Aktivieren des „Mute“-Buttons auf stumm geschalten werden.
In der rechten Spalte sind die Audiosamples in den einzelnen Spuren zu sehen. Der gelbe
Marker am linken Ende des aktuellen Audiosamples repräsentiert den Play-Cursor, der angibt,
von wo weg eine Wiedergabe des Projektes startet. Das Audiosample ist durch ein entsprechendes Amplituden-Zeit-Diagramm dargestellt, das mit Hilfe der Zoom-Funktion beliebig
detailliert angezeigt werden kann. Dies macht es leicht möglich, signifikante Stellen in den
Samples aufzuspüren. (Eine genauere Beschreibung dieser Funktion ist im Abschnitt „Zusammenschneiden von Audiosamples“ zu finden.)
Das Laden von Samples von einer Audio-CD wird über das Menü „CD“ mit dem Menüpunkt
„Lade Audio-CD-Track(s)...“ initialisiert. Es erscheint folgendes Fenster:
Abbildung 6.4: Audio-CD-Track importieren
In der linken Liste werden alle gefundenen Tracks auf der Audio-CD angezeigt. Durch einfaches Anklicken kann jeder einzelnen selektiert bzw. bei erneutem Anklicken deselektiert wer30
den. Selektierte Tracks können auch abgespielt werden. Falls mehrere CD-Laufwerke zur
Verfügung stehen, kann zwischen diesen gewechselt werden, in dem man den Button „CD
Laufwerk Optionen“ anklickt. In diesem Menü können Laufwerke auch konfiguriert werden.
Wurden die gewünschten Tracks selektiert, können sie mit einem Klick auf den Button „Kopiere selektierte Track(s)...“ in Form von Audiodateien auf der Festplatte abgespeichert werden. Es erscheint dafür ein Dialogfenster, in dem der Pfad, der Dateiname und der Dateityp,
sowie dessen Qualitätseinstellungen festgelegt werden können. Weiters kann man bei mehreren Tracks entscheiden, ob jeder Track in einer eigenen Datei gespeichert oder eine Sammeldatei erzeugt werden soll. Nach Bestätigung mit dem „OK“-Button, werden die Tracks beginnend ab der Play-Curser Position in der ersten Spur eingefügt.
6.4 Exportieren der fertigen Audiospur
Man kann zu jedem Zeitpunkt das gesamte Projekt in eine Audiodatei exportieren. Dafür ist
im Menü „Datei“ der Menüpunkt „Exportiere Audio“ zu wählen. Es werden dann in einem
Untermenü die zur Verfügung stehenden Formate angeführt. Wir wählten dabei immer das
WAV-Format, da für unsere Arbeit unkomprimierte Dateien notwendig waren, um bis zum
Kompressionsvorgang die bestmögliche Qualität zu erhalten.
Es erscheint danach ein Speicherdialog, in dem der Dateiname und dessen Pfad festgelegt
werden kann. Wichtig ist dabei, dass bei „Bereich“ die Option „Komplettes Projekt“ und bei
„Erzeugung“ die Option „Erstelle eine Datei“ ausgewählt ist. Weiters kann mit dem Button
„Formateinstellungen“ die Qualität der Audiodatei noch gesteuert werden. Wir wählten dabei
immer den Codec „Unkomprimiert“ und Eintrag „44100Hz; 16 bit, Stereo“.
6.5 Zusammenschneiden von Audiosamples
6.5.1 Zoom Modus
Beim Zusammenschneiden von Audiosamples ist es zunächst wichtig bestimmte Stellen in
den Sounddateien zu lokalisieren. Mit Hilfe des Zooms und der deutlichen Darstellung der
Soundclips im Amplituden-Zeit-Diagramm ist dies leicht möglich. Am einfachsten setzt man
den Zoom ein, in dem man auf den „+“- bzw. auf den „-“-Button neben den horizontalen
Scrollbalken im Schnittfenster klickt. Der „+“-Button erhöht den Detailgrad, während der „-“Button die Zeitskala wieder zusammenstaucht. Dasselbe Prinzip gibt es auch für den vertikalen Scrollbalken. Hierbei wird durch den „+“-Button die Höhe der Spur vergrößert.
Audioclips lassen sich leicht verschieben, in dem man mit der linken Maustaste in die untere
Hälfte des Clips klickt und dann via Drag & Drop Prinzip dort platziert, wo der Clip gewünscht ist. Ein Audioclip kann dabei sowohl von einer Spur zur anderen als auch horizontal
entlang der Zeitachse verschoben werden. Klickt man hingegen in die obere Hälfte des Clips
wird der Play-Cursor auf die Zeitposition verschoben, auf die man geklickt hat.
6.5.2 Volumen-Zeichnen Modus
Damit man interaktiv festlegen kann, welcher Clip zu welchem Zeitpunkt im Endergebnis mit
einer bestimmten Lautstärke vertreten ist, wird der Volumen-Zeichnen Modus zur Verfügung
gestellt. Diesen aktiviert man, in dem man mit der Maus auf das Symbol
klickt, das sich in der Maus-Modus-Leiste befindet. (Sollte diese Symbolleiste nicht sichtbar
sein, kann man sie im Menü „Fenster“ durch Klicken auf den Menüpunkt „Maus-ModusLeiste“ aktivieren.) Die Maus verwandelt sich in diesem Modus in einen Zeichenstift, wenn
man über die Audioclips fährt. Mit diesem Stift kann man nun eine Kurve zeichnen, die fest31
legt wie laut der Clip zu einem gewissen Zeitpunkt gespielt wird. Befindet sich die Kurve
dabei am oberen Ende des Clips, so wird dieser mit annähernd voller Lautstärke wiedergegeben. Ist die Kurve am unteren Ende des Clips, so ist er kaum zu hören. In Abbildung 6.5 ist
ein Beispiel zu sehen.
Abbildung 6.5: Lautstärkenkurve eines Audioclips
Die gelbe Kurve repräsentiert die Lautstärkenkurve. Niedrige Werte in dieser Kurve, wie im
Mittelteil zu sehen, löschen den Sound aus. Hohe Werte geben ihn in voller Lautstärke wieder. In diesem Beispiel sind zwei Möglichkeiten zu sehen, wie man die Kurve zeichnen kann.
Man kann durch Gedrückthalten der Maustaste eine kontinuierliche Kurve zeichnen, wie es
im rechten Teil des Bildes ersichtlich ist. Man kann aber durch einzelne Mausklicks Kontrollpunkte setzen, die später im normalen Mausmodus verschoben werden können. Die Kontrollpunkte werden dabei linear verbunden. Dies ist im linken Teil des Bildes sichtbar. (An den
Amplituden kann sehr schön erkannt werden, welche Auswirkungen die Volumen-Kurve auf
die Lautstärke hat.)
Durch Klick auf das Universal-Modus Icon
in der Maus-Zeiger-Leiste wechselt man wieder in den normalen Mausmodus. Fährt man
dann mit der Maus über einen Kontrollpunkt der Lautstärkenkurve, so wird er zu einem Steuerkreuz und man kann den Kontrollpunkt mittels Drag & Drop verschieben.
6.5.3 Objekt-Zerschneide Modus
Ein weiteres wichtiges Tool ist der Objekt-Zerschneide-Modus, der durch Klick auf das Icon
in der Maus-Zeiger-Leiste aktiviert wird. Sobald man in diesem Modus mit der Maus über ein
Objekt fährt, verformt sie sich zu einer Schere. Klickt man dann mit der linken Maustaste, so
wird der Audioclip an der Stelle, an der sich die Maus befindet, zerteilt und es existieren von
nun an zwei separate Audioclips, die separat bearbeitet werden können.
6.5.4 Kopieren von Audioclips
Abschließend ist noch das Kopieren von Audioclips zu erwähnen. Am einfachsten geht dies,
in dem man mit der rechten Maustaste in einen Audioclip klickt und vom angezeigten PopupMenü den Menüpunkt „Kopieren“ auswählt. Anschließend muss man den Play-Cursor an jene
Stelle bewegen, an der das Objekt eingefügt werden soll. Das Einfügen wird am besten mit
dem Menü „Bearbeiten“ und dem Menüpunkt „Einfügen“ bewerkstelligt. Das Objekt wird
allerdings in der ersten Spur eingefügt und ist gemeinsam mit seinem Ursprungsobjekt selektiert. Man muss daher die beiden Objekte deselektieren (indem man beispielsweise in einen
32
anderen Audioclip oder die leere Spur klickt) und dann erneut anklicken, um das kopierte
Objekt separat zu bearbeiten.
6.6 Wichtige Effekte
Abschließend sind noch einige wichtige Effekte zu erwähnen, die vor allem beim Erstellen
des Sounds der Lichtschwerter benötigt wurden. Dabei handelt es sich um das Verändern der
Abspieldauer eines Audioclips und um das Normalisieren von Audioclips.
6.6.1 Verändern der Abspieldauer von Audioclips
Um die Abspieldauer eines Audioclips zu verändern, klickt man mit der rechten Maustaste in
den zu bearbeitenden Audioclip, worauf ein entsprechendes Popup-Menü angezeigt wird.
Hier ist der Menüpunkt „Effekte“ auszuwählen, und davon der Unterpunkt „Resampling /
Timestretching ...“. Es wird daraufhin folgendes Fenster angezeigt:
Abbildung 6.6: Reampling / Time Strechimg / Pitch Shiftimg
Im linken oberen Eck des Fensters kann man zwischen drei Modi wählen. Resampling bedeutet dabei das Verändern der Länge des Tracks, was lediglich bewirkt, dass der Track mit jener
Geschwindigkeit abgespielt wird, mit der er die gewünschte Länge erreicht. Das bedeutet,
dass bei langsamerem Abspielen (längere Spieldauer) der Sound tiefere Töne, bei schnellerem
Abspielen (kürzere Spieldauer) höhere Töne aufweist. Time Stretching hingegen ermöglicht
eine beliebige Abspieldauer bei der eingestellt werden kann, wie sich die Tonhöhe des Sounds
verändern soll. Pitch Shifting allerdings beeinflusst nicht die Abspieldauer sondern lediglich
die Tonhöhe des Sounds. Wir wählten hier jeweils den Time Stretching Modus, da man so
über Tonhöhe und Abspiellänge volle Kontrolle hat.
Die Einstellungen für den internen Algorithmus für Pitch Shifting / Time Stretching ließen
wir unverändert. Dasselbe gilt für die Einstellungen des Anti-Aliasing Filters.
Nun gibt es zwei verschiedene Arbeitsweisen. Man kann entweder über den Zeitfaktor die
Abspiellänge steuern, oder direkt über die Eingabe der gewünschten Abspiellänge.
Der Zeitfaktor gibt an mit welchem Faktor die aktuelle Zeit multipliziert wird. Es sind durch
den Schieber Werte zwischen 0.5 und 2 möglich, wobei 0.5 eine doppelt so schnelle und 2
33
eine doppelt so langsame Wiedergabe des Audioclips bedeutet. Der Schieber „Pitch“ gibt an
um wie viele Halbtöne der Audioclip höher oder tiefer abgespielt werden soll.
6.6.2 Normalisieren von Audioclips
Das Normalisieren eines Audioclips ermöglicht es, dass man einem Clip eine höhere oder
eine niedrigere Lautstärke zuweisen kann, ohne die Lautstärke aller Clips in einer Spur zu
beeinflussen. Dabei wird der maximale Amplitudenwert eines Audioclips herangezogen um
einen Faktor zu berechnen, mit dem jeder Amplitudenwert des Clips multipliziert wird. Will
man beispielsweise einen Clip auf 100 % normalisieren, so weist der größte Amplitudenwert
des Clips nach der Operation den maximalen Wiedergabewert (die maximale Lautstärke) auf.
Der Normalisierungsfaktor für alle anderen Amplitudenwerte errechnet sich dann aus (maximal wiedergebbaren Amplitudenwert) / (maximalen Amplitudenwert des ursprünglichen
Clips).
Eine Normalisierung über 100 % verursacht also eine Erhöhung der Lautstärke, eine Normalisierung unter 100 % hingegen, die Garantie, dass der Clip keine höhere Lautstärke als der
angegebene Prozentsatz vom maximal wiedergebbaren Amplitudenwert aufweist.
Um einen Audioclip zu normalisieren muss man mit der rechten Maustaste in den zu bearbeitenden Clip klicken, um das Popup-Menü zu öffnen. Darin ist der Menüpunkt „Effekte“, davon den Punkt „Amplitude / Normalisieren“ und davon den Punkt „Normalisieren...“ auszuwählen. Es wird folgendes Fenster angezeigt:
Abbildung 6.7: Normalisieren eines Clips
Im Rahmen unserer Arbeit haben wir lediglich mit den Prozentwerten gearbeitet. Dabei haben
wir je nach Gebrauch die gewünschte Lautstärke festgelegt. Es ist allerdings zu beachten, dass
bei Normalisierungswerten über 100 % viele Amplitudenwerte auf das Maximum aufskaliert
werden, was zu Rauschen und Übersteuereffekten führen kann.
7 Adobe Encore DVD 1.5
7.1 Einleitung
Adobe Encore DVD 1.5 ist ein Programm, mit dem Video-DVDs erstellt werden können,
wobei mit diesem Programm die Videos selbst nicht erstellt werden können. Neben dem Einbinden von bereits existierenden Filmdateien, bietet Adobe Encore viele benutzerfreundliche
Möglichkeiten, um Video-DVD-Inhalte zu gestalten. Da wir im Rahmen des Projektes für alle
DVD-Menüs Animationen erstellt hatten, war es nicht mehr notwendig, die Funktionalitäten
von Adobe Encore DVD bezüglich des Menüdesigns auszureizen. Wir mussten lediglich aus
34
den Menü-Animationen Menüs erstellen und von diesen Menüs zu den fertigen Filmen verlinken. Dies wird in den nächsten Abschnitten beschrieben.
Da wir nur einmal mit Adobe Encore DVD gearbeitet haben, um unsere DVD fertig zu stellen, ist unsere Anleitung lediglich für Anfänger – wie wir es nach wie vor sind – hilfreich.
Erfahrene Nutzer des Programms werden sicherlich Wege kennen, wie man die nun folgenden
Aufgaben effizienter und schneller durchführt. Um diesbezüglich weiterführende Informationen zu erhalten, verweisen wir auf die umfangreiche Hilfe, die vom Programm aus aufgerufen
werden kann.
Doch bevor man mit dem Erstellen von Menüs beginnen kann, muss man nach dem Starten
von Adobe Encore DVD ein Projekt anlegen. Dafür muss man aus dem Menü „Datei“ den
Menüpunkt „Neues Projekt“ wählen. Anschließend wird abgefragt, welcher TV-Standard für
das neue Projekt gewählt werden soll. NTSC und PAL stehen zur Auswahl. Da wir unsere
Videos im PAL-Format (720 x 576) erstellt haben, was auch der europäische TV-Standard ist,
wählten wir PAL. Anschließend wird ein leeres Projektfenster geöffnet. Dieses Projekt kann
nun abgespeichert werden, in dem man aus dem Menü „Datei“ den Menüpunkt „Speichern
unter“ wählt.
Anschließend müssen die Videos importiert werden, um sie im DVD-Projekt zu verwenden.
Dafür wählt man aus dem Menü „Datei“ den Menüpunkt „Als Asset importieren“. Nun können alle Videos, die benötigt werden, ausgewählt und importiert werden. Nach dem Import
der Videos sind diese im Projektfenster (siehe Abbildung 7.1) ersichtlich.
Abbildung 7.1: Projektfenster nach dem Importieren der Videos
7.2 Erstellen von Menüs
Als nächstes soll aus einem der importierten Videos ein Menü erstellt werden. Man generiert
dafür zunächst eine Menüvorlage. Man wählt dazu aus dem Menü „Menü“ den Menüpunkt
„Neues Menü“. Es wird automatisch ein Menüfenster gemäß einer Standardvorlage generiert.
Dieses Fenster ist in Abbildung 7.2 zu sehen.
35
Abbildung 7.2: Automatisch erstelltes Menüfenster
Dieses automatisch generierte Menü enthält abgesehen vom Hintergrund ein Textobjekt als
Überschrift, 6 Buttons als vordefinierte Schaltflächen und eine rechteckige Fläche unter der
Überschrift, die den Hintergrund abdunkelt. Diese werden in unserem Fall nicht benötigt und
sollten daher entfernt werden. Man kann nun durch einfaches Klicken auf eines dieser Elemente und anschließendes Drücken der „Entfernen“-Taste die Elemente löschen. Es sollte
lediglich das Hintergrundbild im Menü zurückbleiben (Abbildung 7.3).
Abbildung 7.3: Menüfenster ohne Menüelemente
Als nächstes betrachten wir das Menüeigenschaftsfenster. Sollte es nicht sichtbar sein, ist im
Menü „Fenster“ der Menüpunkt „Eigenschaften“ auszuwählen, damit es angezeigt wird. Dieses Eigenschaftsfenster zeigt die Einstellungen für das momentan aktivierte Element an. Um
also sicher zu stellen, dass unser Menü aktiv ist, sollte man im Menüfenster auf den Hintergrund klicken. In Abbildung 7.4 ist der aktuelle Status des Menüeigenschaftsfensters ersichtlich.
36
Abbildung 7.4: Menüfenster ohne Menüelemente
In diesem Fenster ist zunächst das Feld „Name“ wichtig. Hier sollte man einen geeigneten
Namen für das Menü eintragen. Weiters ist das Feld „Schleifenzahl“ zu verändern. Unser
Menü soll solange wiederholt werden, bis der Benutzer der DVD auf einen Link zu einem
Video klickt, oder die DVD auswerfen lässt. Deshalb stellten wir dieses Feld auf den Wert
„unbegrenzt“.
Anschließend ist das Menüvideo zu definieren. Um dies zu tun, muss man in das Projektfenster wechseln, die Karteikarte „Projekt“ aktivieren und darin das zu diesem Zeitpunkt einzige
Menü anklicken. (In Abbildung 7.5 heißt dieses Menü „Fraktal_Menü“.) So werden die Einstellungen dieses Menüs im Eigenschaftsfenster angezeigt. Anschließend drückt man die linke
Maustaste auf dem Symbol des Feldes „Video“ im Eigenschaftsfenster, lässt sie gedrückt und
zieht mit der Maus eine Linie auf jenes Video im Projektfenster, das für das Menü als Hintergrund dienen soll. Sobald man die Maustaste loslässt, wird im Feld Video die ausgewählte
Filmdatei eingetragen (siehe Abbildung 7.5).
Abbildung 7.5: Definieren des Menüvideos
Da mit dieser Aktion allerdings nur die Videospur dem Menü zugewiesen wurde, muss dieser
Vorgang mit dem Feld „Audio“ wiederholt werden. Es muss also wieder mit der Maus vom
37
Symbol im Feld „Audio“ auf das gewünschte Video gezogen werden, sofern dieses auch eine
Audiospur besitzt. Letztendlich sollte das Eigenschaftsfenster des Menüs folgendermaßen
aussehen.
Abbildung 7.6: Festgelegte Menüeigenschaften
Um das Menü fertig zu stellen, müssen noch Schaltflächen erstellt werden. Damit man aber
den Schaltflächen als Ziel ein Video oder ein Menü angeben kann, müssen entsprechende
Videos im Projekt in so genannte Schnittfenster umgewandelt bzw. andere Menüs erstellt
werden.
7.3 Videos in Schnittfenster konvertieren
Jedes Video, das nicht als Menü verwendet wird, muss in ein Schnittfenster umgewandelt
werden, damit von einem Menü auf das Video verlinkt werden kann. Um dies zu tun, ist das
Projektfenster zu aktivieren. Darin markiert man das Video, das in ein Schnittfenster umgewandelt werden soll. Danach öffnet man mit einem Klick mit der rechten Maustaste auf das
markierte Video ein Menü und wählt den Menüpunkt „Neues Schnittfenster“. Daraufhin öffnet sich ein Fenster, in dem der erste Frame des Videos angezeigt wird, und das Eigenschaftsfenster zeigt die Einstellungen zu diesem Schnittfenster. (Abbildung 7.7)
38
Abbildung 7.7: Schnittfenster mit Eigenschaftsfenster
Für unsere Zwecke reichte es die Felder „Endaktion“ und „Remote-Menü“ im Eigenschaftsfenster zu bearbeiten. Das Feld „Endaktion“ gibt an, was geschieht, nachdem das Video fertig
abgespielt wurde. In diesem Fall soll wieder zum Menü zurückgekehrt werden. In dem man
auf den Pfeil auf der rechten Seite des Feldes klickt, werden alle möglichen Aktionen angezeigt. (Abbildung 7.8)
Abbildung 7.8: Endaktion eines Schnittfensters
Es ist jenes Menü zu wählen, zu dem zurückgekehrt werden soll. (In Abbildung 7.8 heißt dieses „Fraktal_Menü“.) Dabei öffnet sich noch ein Untermenü, in dem alle Schaltflächen des
Menüs angeführt werden. Hier sollte jene Schaltfläche ausgewählt werden, die beim Abspielen der DVD markiert werden soll, wenn das aktuelle Video beendet und zum Menü zurückgekehrt worden ist. Da in unserem Menü aber noch keine Schaltfläche vorhanden ist, muss
„Standard“ ausgewählt werden. (Man kann nach dem Abspielen eines Videos natürlich auch
ein weiteres Video abspielen. Man müsste in diesem Fall auf ein geeignetes Schnittfenster
verweisen. In unserem Fall liegt derzeit nur ein Schnittfenster vor.)
Dieselbe Prozedur wird für das Feld „Remote-Menu“ wiederholt. Dieses Feld legt fest, zu
welchem Menü man zurückkehrt, wenn der Betrachter der DVD das Video abbricht. Bei unserer DVD wählten wir bei jedem Schnittfenster für „Remote-Menu“ und Endaktion dieselben
Menüs.
39
Sobald alle Videos, die vom Menü aus adressiert werden, in Schnittfenster umgewandelt worden sind, kann man im Menü die Schaltflächen inkludieren.
7.4 Erstellen der Schaltflächen im Menü
Nun ist wieder das Menüfenster zu aktivieren. Falls es nicht bereits geöffnet ist, genügt im
Projektfenster ein Doppelklick auf das gewünschte Menü. Im Menüfenster ist nun der erste
Frame des festgelegten Menüvideos zu sehen.
Beim Erstellen der Schaltflächen ist zu beachten, dass im Allgemeinen Fernsehgeräte nicht
das gesamte PAL-Bild wiedergeben. Im Menüfenster kann mittels des in Abbildung 7.9 rot
gekennzeichneten Buttons der geschützte Bereich im Menü angezeigt werden. Um sicher zu
gehen, dass eine Schaltfläche auch auf TV-Monitoren ganz lesbar ist, muss sie innerhalb des
inneren Rahmens positioniert werden.
Abbildung 7.9: Menüfenster mit geschütztem Bereich
Mit Hilfe der Anzeige des geschützten Bereichs sieht man auch, dass wichtige Inhalte in der
Videospur innerhalb des äußeren Rahmens sein sollten. Alles was außerhalb ist wird von
Fernsehgeräten sicher abgeschnitten. Alles was innerhalb des inneren Rahmens zu sehen ist,
wird von jedem Fernsehgerät dargestellt. Die beiden Rahmen markieren die Schwankungsbreite von Darstellungsausschnitten, die von Fernsehgerät zu Fernsehgerät variieren.
Nun wählt man aus dem Werkzeugfenster, das in Abbildung 7.9 am linken Rand zu sehen ist,
eines der beiden Texttools aus. Jenes, das nur mit einem T symbolisiert ist, erzeugt horizontal
verlaufenden Text, jenes mit dem T und einem Pfeil nach unten erzeugt vertikal verlaufenden
Text. Anschließend kann ein entsprechender Text geschrieben werden, in dem man einfach in
das Menüfenster klickt.
Nach dem man den Text geschrieben hat, klickt man im Werkzeugfenster auf den obersten
Pfeil. Es entsteht ein Rahmen um den Text und dieses Textelement kann nun mit der Maus
verschoben werden. Jetzt muss das Textobjekt in eine Schaltfläche konvertiert werden, in dem
man aus dem Menü „Objekt“ den Menüpunkt „In Schaltfläche konvertieren“ wählt. Im Eigen40
schaftsfenster werden daraufhin die Einstellungen der aktuellen Schaltfläche angezeigt.
(Abbildung 7.10)
Abbildung 7.10: Schaltflächeneigenschaften
Im Eigenschaftsfenster sind nun die Felder „Nummer“ und „Verknüpfung“ von Bedeutung.
Das Feld „Nummer“ gibt an, an welcher Stelle die aktuelle Schaltfläche in der Abfolge der
Schaltflächenansteuerung ist. Im Feld „Verknüpfung“ wird - analog zum Feld „Endaktion“
bei den Schnittfenstern - festgelegt, auf welchen Film (Schnittfenster) oder auf welches Menü
die Schaltfläche verweisen soll. (Beim Verlinken auf Schnittfenster ist noch anzumerken, dass
diese in mehrere Kapitel unterteilt werden können. So ist es möglich, dass man auf bestimmte
Szenen in einem längeren Video verweisen kann. Da dies in Rahmen unserer Arbeit nicht
benötigt wurde, steht bei jedem Schnittfenster lediglich Kapitel 1 zur Auswahl. Kapitel 1 repräsentiert somit den Start eines Videos.)
Um die Schrift der aktuellen Schaltfläche zu formatieren, kann man aus dem Menü „Fenster“
den Menüpunkt „Zeichen“ wählen. In einem eigenen Fenster stehen nun die Standardformateinstellungen zur Verfügung. Auf der fertigen DVD erscheint im Menü für den Betrachter der
DVD lediglich der Text, sofern die Schaltfläche nicht markiert ist. Wenn sie markiert ist, wird
die Schrift gelb unterlegt. Wenn man auf eine Schaltfläche klickt, leuchtet die Schrift kurz rot
auf. Wir haben an diesen Einstellungen nichts verändert, weshalb dies hier auch nicht weiter
ausgeführt ist.
Nachdem alle gewünschten Schaltflächen erstellt wurden, kann man mit dem in Abbildung
7.11 gekennzeichneten Button die Schaltflächenreihenfolge anzeigen lassen. Dies hilft beim
Festlegen der gewünschten Reihenfolge. Die Markierungen über den Schaltflächen zeigen in
der Mitte für die aktuelle Schaltfläche die Position in der Schaltflächenreihenfolge an. Die
Pfeile nach außen geben an, auf welche Schaltfläche man wechselt, wenn man auf der Fernbedienung einen Navigationsknopf in eine der vier Richtungen drückt. (Im Beispiel kann man
nur zwischen den beiden Schaltflächen hin- und herwechseln, egal welche Richtung man
drückt.)
41
Abbildung 7.11: Schaltflächenreihenfolge
Abschließend muss man noch die Schnittfenster bzw. andere Menüs bearbeiten, die auf das
aktuelle Menü verweisen sollen. Dort muss bei den Feldern „Endaktion“ und „Remote-Menü“
noch spezifiziert werden, welche Schaltfläche beim Start des Menüs aktiviert sein soll. (So
kann man im Prinzip eine Reihenfolge der Schaltflächen festlegen, so dass der Betrachter der
DVD lediglich durch Drücken der Enter-Taste am PC bzw. des „OK“-Knopfs der Fernbedienung, alle Videos einmal aktiviert.) In Abbildung 7.12 ist nochmals eine Festlegung der Endaktion eines Schnittfensters gezeigt, wobei nun aber auf eine konkrete Schaltfläche verwiesen
wird.
Abbildung 7.12: Definition einer Endaktion
7.5 Abspielen des Projekts
Um das gesamte Projekt zu besichtigen, als würde man bereits die fertige DVD abspielen, ist
aus dem Menü „Datei“ der Menüpunkt „Vorschau“ zu wählen. Es öffnet sich ein eigenes
Fenster, in dem das Projekt abgespielt wird. Wenn von einem Videomenü lediglich ein Standbild angezeigt wird, so ist der Button „Aktuelles Bewegungsmenü rendern“ zu drücken. Dieser Button ist in Abbildung 7.13 rot markiert.
42
Abbildung 7.13: Vorschau – Aktuelles Bewegungsmenü rendern
7.6 Exportieren des Projekts
Für das Exportieren des fertig gestellten Projekts stehen vier Möglichkeiten zur Verfügung. In
diesem Abschnitt werden jene drei dieser Möglichkeiten beschrieben, die im Rahmen unserer
Arbeit verwendet wurden. Dabei ist zu beachten, dass vor einem Export das Projekt nochmals
gespeichert werden sollte.
7.6.1 Erzeugen einer DVD
Hierfür ist aus dem Menü „Datei“ der Menüpunkt „DVD erstellen“ und aus dem erscheinenden Untermenü der Eintrag „DVD-Disc erstellen...“ auszuwählen. Es erscheint folgendes
Fenster.
Abbildung 7.14: DVD-Disc erstellen
Im Feld „Erstellen mit:“ kann zwischen dem aktuellen Projekt, einer bereits bestehenden
DVD und einem bestehenden DVD-Image ausgewählt werden. Da das Projekt exportiert werden soll, wählt man den Eintrag „Aktuellem Projekt“. Bei den Einstellungen des Schreibgeräts sind der Recorder und die Schreibgeschwindigkeit, sowie die Anzahl der zu erstellenden
DVDs einzustellen. Letztlich sollte „Alle Warnmeldungen ignorieren und Projekt erstellen“
NICHT angekreuzt sein. Dies garantiert, dass einige Checks durchgeführt werden, die sicherstellen, dass das Projekt fehlerfrei ist.
43
Mit einem Klick auf den „Weiter“-Button wird der Brennvorgang gestartet.
Die erstellte DVD kann unserer Erfahrung nach nicht, durch einfache DVD-Kopie reproduziert werden. Es ist zu empfehlen ein DVD-Image zu erzeugen und dies für das Brennen neuer Kopien zu verwenden. (Abschnitt Erzeugen eines DVD-Image)
7.6.2 Erzeugen eines DVD-Ordners
Hierfür ist aus dem Menü „Datei“ der Menüpunkt „DVD erstellen“ und aus dem erscheinenden Untermenü der Eintrag „DVD-Ordner erstellen...“ auszuwählen. Es erscheint folgendes
Fenster.
Abbildung 7.15: DVD-Ordner erstellen
In diesem Fenster muss lediglich der Speicherort des Ordners angegeben werden. Mit einem
Klick auf den „Weiter“-Button wird der Ordner angelegt. Die darin abgelegten Daten können
von einem DVD-Programm abgespielt werden. Der Ordner sollte allerdings nicht für das
Brennen von DVDs verwendet werden, da die daraus erstellte DVD nicht abspielbar ist. Um
mehrere DVD-Kopien zu erzeugen, sollte ein DVD-Image erstellt werden. (Abschnitt 7.6.3
Erzeugen eines DVD-Image) Allerdings ist diese Option recht nützlich, da man so die Lauffähigkeit des DVD-Inhalts überprüfen kann, ohne einen DVD-Rohling zu vergeuden.
7.6.3 Erzeugen eines DVD-Image
Hierfür ist aus dem Menü „Datei“ der Menüpunkt „DVD erstellen“ und aus dem erscheinenden Untermenü der Eintrag „DVD-Image erstellen...“ auszuwählen. Es erscheint ein Fenster,
das praktisch mit jenem aus Abbildung 7.15 ident ist. Nach dem Bestätigen mit dem „Weiter“-Button wird das Image erstellt.
Die so erzeugte IMG-Datei kann nun von einem Brennprogramm verwendet werden, um eine
DVD zu erstellen. (Wenn man mit Nero – Burning Rom arbeitet, kann allerdings keine IMGDatei importiert werden. Es ist allerdings möglich, die Dateiendung im Explorer von Windows von IMG in ISO abzuändern und danach die abgeänderte Datei zu verwenden.)
44
8 Eigene Programme: Vibrations-Effekt
8.1 Einleitung
Der Lichtschwertfilm „Let’s Rock“ sollte sich vor allem dadurch vom Hauptfilm „Das Duell“
unterscheiden, dass sich das Filmmaterial der Musik unterordnet. (Während bei „Das Duell“
die Musikzusammenstellung hauptsächlich an den Handlungsablauf des Filmes angepasst
worden war.) Schon bei der Erstellung des Konzeptes für dieses Video stimmten wir die zu
drehenden Szenen zeitlich genau auf einzelne Passagen des Liedes „Puritania“ von der Band
„Dimmu Borgir“ ab. Da dieses Lied zu Beginn und zum Schluss mit akustischen Rauscheffekten angereichert ist, stand schon bei den Dreharbeiten fest, dass in der Nachbearbeitung
Störeffekte über das Video geblendet werden. (Dieser Effekt wurde mit QuickTime ausgeführt und ist im Kapitel „Hilfsprogramme“ beschrieben.) Weiters hoben wir es vom anderen
Videomaterial ab, in dem wir versuchten, einen Grünstich – ähnlich dem aus dem Film „Matrix“ – zu erzeugen. (Die Erstellung dieses Effektes ist im Abschnitt „Adobe AfterEffects“
genau erklärt.)
Eines der signifikantesten Merkmale des Liedes sind bestimmte Schlagzeug-Passagen. Diese
wollten wir zusätzlich noch herausstreichen, in dem das Video passend „vibrieren“ sollte. Um
diesen Effekt zu kreieren und zu steuern, definierten wir folgende Parameter:
•
Maximaler Skalierungsfaktor – Um eine Vibration zu simulieren, muss man versuchen, schnelle Distanzveränderungen zwischen dem Videobild und dem Betrachter zu
simulieren. Dies kann man am besten durch eine Skalierung des Bildes erreichen. Um
allerdings zu vermeiden, dass schwarze Ränder entstehen, kommen nur Skalierungsfaktoren in Frage, die größer gleich 1 sind.
•
Vibrationsdauer – Diese gibt an, wie viele Frames eine Vibrationsbewegung für sich
beansprucht. Bei einer Vibrationsbewegung – so legten wir dies fest – wird zunächst
ein Frame in Originalgröße gerendert. Anschließend wird der Skalierungsfaktor für jeden weiteren Frame bis zum oben angegebenen maximalen Skalierungsfaktor linear
erhöht bis die Hälfte der Frames der Vibrationsdauer erreicht worden ist. Danach wird
der Skalierungsfaktor wieder linear verringert.
Beispiel: Vibrationsdauer = 4 Frames, maximaler Skalierungsfaktor = 1.2
1. Frame: Skalierungsfaktor = 1
2. Frame: Skalierungsfaktor = 1.1
3. Frame: Skalierungsfaktor = 1.2
4. Frame: Skalierungsfaktor = 1.1
Anschließend beginnt die nächste Vibration mit denselben Werten.
•
Transparenz – Weiters kann man noch einen Transparenzfaktor einstellen. Dabei
wird dem skalierten Bild ein Durchsichtigkeitswert zugewiesen. Dahinter ist das Bild
unskaliert – also in Originalgröße – sichtbar. 0 % bezeichnet dabei ein undurchsichtiges Bild, während 100 % ein komplett durchsichtiges aufskaliertes Bild erzeugt, so
dass nur das Original und somit überhaupt kein Vibrationseffekt sichtbar ist.
Wie man aus diesen Parametern ersieht ist die Geschwindigkeit einer Vibration begrenzt. Die
minimale Vibrationsdauer beträgt 2 Frames (erster Frame in Originalgröße, zweiter Frame in
maximaler Skalierung). Um eine schnellere Vibration zu simulieren, wären aufwendige Be-
45
rechnungen notwendig. Ein Frame müsste dem zufolge mehrere Vibrationen zeigen. Um dies
zu verwirklichen, wäre ein Algorithmus zu entwerfen, der diesen Effekt berechnet.8
Weil das Lied zum Film zwei unterschiedliche „Klangintensitäten“ bei den SchlagzeugPassagen aufweist, wollten wir auch den Vibrationseffekt dementsprechend steigern können.
Eine glaubhafte Vibration ist allerdings nur mit einer Vibrationsdauer von 2 Frames möglich,
da eine längere Vibrationsdauer keinen überzeugenden Effekt erstellt, und eine kürzere – wie
oben ausgeführt – nicht möglich ist. Daher mussten wir auf eine Intensitätsveränderung basierend auf der Steigerung der Vibrationsgeschwindigkeit verzichten. Stattdessen erstellten wir
für die stärkeren Vibrationen zuerst eine schwache Vibration und wandten den Effekt mit geänderten Parametern auf das modifizierte Videomaterial (= schwache Vibration) nochmals an.
Natürlich könnte man diesen Effekt auch mit Adobe AfterEffects realisieren. Allerdings wäre
es sehr aufwendig, innerhalb eines Zeitraumes für jeden Frame eine Skalierung mit Hilfe von
Keyframes festzulegen, vor allem aufgrund der Tatsache, dass bei einer Vibrationsdauer von
2 Frames jeder Frame ein Keyframe sein muss. Deshalb entschieden wir uns, ein Programm
in Java zu implementieren.
8.2 Arbeitsablauf
Um den Vibrationseffekt zu realisieren, führten wir folgenden Arbeitsablauf ein:
1
Zunächst sucht man in Adobe Premiere die zu verändernden Filmpassagen und exportiert
diese als unkomprimiertes AVI-Video. (Dabei ist zu beachten, dass man Markierungen
setzt, die kennzeichnen, wo die exportierten Passagen beginnen. Dies ist wichtig, da die
mit Vibrationseffekt bearbeiteten Videos wieder an diesen Stellen eingefügt werden müssen. Wie Markierungen zu setzen sind, ist im Abschnitt „Adobe Premiere“ nachzulesen.)
2
Falls dieses Video interlaced ist (z.B. selbstaufgenommenes Video), kann mit VirtualDub
ein Videofilter angewandt werden, um die Sägezahneffekte des Interlacings zu eliminieren. Das bearbeitete Video ist als unkomprimiertes AVI aus VirtualDub zu exportieren.
(Dieser Arbeitsschritt ist im Abschnitt „Hilfsprogramme“ erläutert.)
3
Da unser Java-Programm lediglich Bilder im PNG-Format lesen kann, muss man mit
Hilfe von QuickTime Pro das AVI-Video in eine PNG-Sequenz konvertieren. (Abschnitt
„Hilfsprogramme“) Der Grund dafür liegt darin, dass VirtualDub lediglich Bildsequenzen
im BMP und TGA Format erzeugen kann. Mit Java können allerdings nur Bilder in den
Formaten PNG, X-PNG, GIF und JPEG gelesen werden. (Es sind im Internet allerdings
auch Java Klassen zu finden, die den Import und Export von BMP-Dateien erlauben. Im
Rahmen unseres Praktikums setzten wir diese Klassen aber nicht ein.)
4
Anschließend sind die erzeugten PNG-Bilder in das Verzeichnis „original“ zu kopieren,
das im Ordner liegt, in dem das Java-Programm ausgeführt wird.
5
Die gewünschten Einstellungen für das Programm sind zu treffen. Danach kann der Effekt berechnet werden.
8
Man kann theoretisch eine kürzere Vibrationsdauer erreichen, in dem man eine Bildsequenz mit einer Vibrationsdauer von 2 Frames generiert und dann in ein Videoverarbeitungsprogramm einspielt, wobei man eine hohe
Framerate festlegt. QuickTime könnte beispielsweise 30 Bilder pro Sekunde verwenden. Anschließend müsste
man den so entstandenen Film mit der von uns benötigten Framerate von 25 Bildern pro Sekunde exportieren.
Bei diesem Export müsste das Videoverarbeitungsprogramm Frames generieren, welche die schnellere Vibration
darstellen. (Allerdings ist man wiederum limitiert durch die maximal mögliche Framerate des Videoverarbeitungsprogramms.)
46
6
Die bearbeitete Bildsequenz liegt nun im PNG-Format im Verzeichnis „new“ des JavaProgramms vor und muss mit QuickTime Pro in ein unkomprimiertes AVI-Video konvertiert werden. (Für jene Sequenzen, in denen auch ein stärkerer Vibrationseffekt vorkommen soll, muss die bearbeitete Bildsequenz noch einmal in das Verzeichnis „original“ kopiert und dann mit den neuen Effekteinstellungen bearbeitet werden. Erst danach
kann die PNG-Sequenz, die im Ordner „new“ liegt, weiterverarbeitet werden.)
7
Dieses AVI-Video wird in Adobe Premiere importiert und genau auf die Markierung für
das anfängliche Exportieren positioniert. (Wenn diese Markierung verloren geht, ist es
schwierig wieder genau den richtigen Anfangsframe zu finden.)
8.3 Kompilieren und Starten des Programms
Das Programm besteht aus sechs Java-Dateien (DimmuEffect.java, Mainframe.java, Plotter.java, ProgressBarWindow.java, Property.java, PropertyList.java). Wurde das Programm
vom User schon einmal gestartet, so existiert auch eine Serialisierungsdatei (properties.ser),
welche Voreinstellungen persistent (dauerhaft) speichert.
Alle diese Dateien sollten in einen Ordner kopiert werden, in dem weiters die Verzeichnisse
„original“ und „new“ angelegt werden müssen. Aus dem Ordner „original“ wird die ursprüngliche Bildsequenz eingelesen, während die erzeugte Bildsequenz im Verzeichnis „new“ gespeichert wird. Das Programm kann mit dem Befehl
javac *.java
kompiliert und mit dem Befehl
java DimmuEffect
ausgeführt werden.
8.4 User Interface und Funktionalität
Nach dem Starten des Programms wird das in Abbildung 8.1 sichtbare User Interface angezeigt.
Abbildung 8.1: User Interface – Vibrations-Effekt
In der linken Spalte sind die drei Parameter mit Hilfe von Schiebern und Textfeldern einzustellen. Für die Dauer einer Erschütterung (Vibrationsdauer) kann ein Wert zwischen 2 und 25
Frames eingestellt werden. Für die Skalierung der Erschütterung kann ein Wert zwischen 100
und 200 % eingegeben werden. 100 % gibt einen Skalierungsfaktor von 1, 200 % einen Ska47
lierungsfaktor von 2 an. Für die Transparenz kann ein Wert zwischen 0 % und 100 % angegeben werden. 0 % bedeutet, dass das skalierte Bild undurchsichtig ist. 100 % bedeutet, dass das
skalierte Bild völlig durchsichtig ist.
In der rechten Spalte werden die Einstellungen verwaltet. Beim Starten des Programms wird
automatisch die Standardeinstellung gewählt. Sobald ein Parameter verändert wird, zeigt das
Listenfeld den Wert „Aktuelle Einstellung“ an. Durch Markieren einer anderen Einstellung
werden die Parameter entsprechend neu gesetzt. Wir speicherten 2 Einstellungen:
•
„dimmu1“ für eine leichte Vibration: Dauer einer Erschütterung = 2 Frames, Skalierung einer Erschütterung = 105 %, Transparenz 50 %
•
„dimmu2“ für eine starke Vibration: Dauer einer Erschütterung = 2 Frames, Skalierung einer Erschütterung = 120 %, Transparenz 50 %
Mit dem Button „Einstellungen speichern“ kann die aktuelle Parametereinstellung persistent
(über das Beenden des Programmes hinaus) abgespeichert werden. Es wird nach dem gewünschten Namen der Einstellung gefragt, und falls dieser noch nicht vorhanden ist gespeichert. Tritt der eingegebene Einstellungsname bereits auf, so kann die Einstellung entweder
überschrieben oder ein neuer Name eingegeben werden. Mit dem Button „Einstellung löschen“ wird die aktuell gewählte Einstellung ohne Rückfrage entfernt.
Wurden alle Parameter entsprechend gesetzt, kann mit dem Klick auf den Button „Render“
der Effekt erstellt werden. Es erscheint daraufhin ein Fortschrittsbalken, der angibt wie viele
Frames bereits bearbeitet wurden.
8.5 Implementierung
8.5.1 DimmuEffect.java
Diese Klasse beinhaltet die main Methode und öffnet das Hauptfenster der Applikation.
8.5.2 Mainframe.java
Diese Klasse implementiert das graphische User Interface der Applikation. Sie implementiert
weiters die Abfragen, falls Einstellungen gespeichert werden sollen. Wird eine korrekte Eingabe gemacht, so wird ein neues Property-Objekt erstellt und an das aktuelle PropertyListObjekt übergeben. Soll ein Property-Objekt gelöscht werden, wird der Befehl an das aktuelle
PropertyList-Objekt weitergegeben. Wird der Button „Render“ geklickt, so wird ein neuer
Thread gestartet, dem die aktuell eingestellten Parameter übergeben werden. Dieser Thread ist
in der Klasse Plotter.java implementiert.
8.5.3 Plotter.java
Diese Klasse implementiert das Laden der Originalbilder, das Erstellen des Effekts und das
Speichern der Bilder. Dabei wird zunächst ein Fortschrittsbalken erzeugt. Anschließend wird
eine Bilddatei nach der anderen im Verzeichnis „original“ aufsteigend – gemäß deren Nummer im Dateinamen – geladen und einzeln bearbeitet. Die wichtigsten Funktionaliäten dieser
Klasse sind in folgendem Source-Code-Ausschnitt angeführt.
/*
*********************************************************************
* Source-Code-Ausschnitt aus der Hauptschleife von Methode render() *
*********************************************************************
*/
//Laden des Quellbildes (Die Variable filestring enthält den Dateinamen)
BufferedImage bimg = null;
try {
48
bimg = ImageIO.read(new File("original/" + filestring));
}
catch (Exception e) {
System.out.println("Das Bild " + filestring + " konnte nicht geladen werden.");
}
//Transformieren des Bildes
//Erstellung der Skalierungsoperation (Variable scale speichert den Skalierungsfaktor)
AffineTransform at = new AffineTransform();
at.scale(scale, scale);
BufferedImageOp biop = new AffineTransformOp(at,AffineTransformOp.TYPE_BILINEAR);
//Kopieren des Originalbildes in ein neues BufferedImage-Objekt
//1. Erstellen eines neuen BufferedImage-Objekts
//2. Erstellen eines RescaleOp-Objekts mit den Parametern: Skalierungsfaktor = 1, Offset = 0
//
RenderingHints = null
//3. filter(original, new) überträgt das Bild original mit den Parametern aus 2.) in das Bild
//
new
BufferedImage newimg = new BufferedImage(bimg.getWidth(), bimg.getHeight(), BufferedImage.TYPE_INT_RGB);
RescaleOp resop = new RescaleOp(1f, 0f, null);
resop.filter(bimg, newimg);
//Erzeugen eines Graphic-Objekts mit Antialiasing-Eigenschaft
Graphics2D big = newimg.createGraphics();
big.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//Skalieren des neuen Bildes mit Hilfe der obigen Skalierungsoperation
//Zusätzlich muss das größere Bild noch zentriert werden -> x- und y-Offset
big.drawImage(newimg,biop,
(int)-((double)bimg.getWidth()*(scale-1)*0.5),
(int)-((double)bimg.getHeight()*(scale-1)*0.5));
//Berechnung der Transparenz
//combine ist eine selbstgeschriebene Methode (siehe unten)
if (transparency > 0) {
newimg = combine(bimg, newimg);
}
//Abspeichern des Bildes (i ist die Laufvariable der Schleife, die diesen Code umgibt)
try {
ImageIO.write(newimg, "png", new File("new/new"+ i + ".png"));
}
catch (Exception e) {
System.out.println("Konnte Bild nicht schreiben.");
}
/*
**********************
* Methode combine () *
**********************
*/
//Kombiniert zwei Bilder gemäß dem Parameter transparency
private BufferedImage combine(BufferedImage original, BufferedImage scaled) {
if (transparency == 0) {
return scaled;
}
else if (transparency == 1) {
return original;
}
//Erzeugt Ergebnisbild, das zurückgegeben wird
BufferedImage result = new BufferedImage(original.getWidth(), original.getHeight(),
BufferedImage.TYPE_INT_RGB);
//Durchlaufen aller
for (int x = 0; x <
for (int y = 0; y
Color colorig =
Color colscaled
Pixelpositionen
original.getWidth(); x++) {
< original.getHeight(); y++) {
new Color(original.getRGB(x,y));
= new Color(scaled.getRGB(x,y));
//Berechnung des Farbwertes des aktuellen Pixels für jeden Farbkanal
int red = (int)(transparency*(double)colorig.getRed() + (1transparency)*(double)colscaled.getRed());
49
int green = (int)(transparency*(double)colorig.getGreen() + (1transparency)*(double)colscaled.getGreen());
int blue = (int)(transparency*(double)colorig.getBlue() + (1transparency)*(double)colscaled.getBlue());
//Setzen der Farbinformation
result.setRGB(x, y, (new Color(red, green, blue)).getRGB());
}
}
return result;
}
8.5.4 ProgressBarWindow.java
Implementiert das Erscheinungsbild des Fortschrittsbalkens und stellt eine Methode zur Verfügung, um den aktuellen Fortschritt zu übergeben.
8.5.5 Property.java
Kapselt alle Eigenschaften einer Parametereinstellung (Name, Skalierungsfaktor, Vibrationsdauer, Transparenz).
8.5.6 PropertyList.java
Datenstruktur, die mehrere Property-Objekte speichert. Sie erlaubt das Hinzufügen und Löschen von Property-Objekten und serialisiert sich (speichert sich persistent) automatisch,
nachdem eine Veränderung aufgetreten ist. Die Datei, in der die Daten serialisiert werden,
heißt „properties.ser“.
8.6 Ergebnisse
In Abbildung 8.2(a) ist ein unverändertes Originalbild aus dem Film „Let’s Rock“ zu sehen.
In Abbildung 8.2(b) wurde dieses Originalbild mit der Einstellung dimmu1 (Dauer einer Erschütterung = 2 Frames, Skalierung einer Erschütterung = 105 %, Transparenz 50 %) bearbeitet.
(a) Original
(b) Ergebnisbild
Abbildung 8.2: Vibration (Einstellung: dimmu1)
In Abbildung 8.3(a) ist ein unverändertes Originalbild aus dem Film „Let’s Rock“ zu sehen.
In Abbildung 8.3(b) wurde dieses Originalbild zunächst mit der Einstellung dimmu1 und danach mit der Einstellung dimmu2 (Dauer einer Erschütterung = 2 Frames, Skalierung einer
Erschütterung = 120 %, Transparenz 50 %) bearbeitet.
50
(a) Originalbild
(b) Ergebnisbild
Abbildung 8.3: Vibration (Einstellung: dimmu2)
8.7 Zukünftige Arbeiten
Im Grunde steht mit dieser Anwendung ein primitives Framework zur Verfügung, das es erlaubt jeden beliebigen Effekt auf eine Bildsequenz anzuwenden. Um einen anderen Effekt zu
implementieren, müssen folgende Änderungen implementiert werden:
•
Die User-Interface-Klasse Mainframe.java muss für die neuen Parameter eines anderen Effektes angepasst werden.
•
In der Effekt-Klasse Plotter.java muss die Berechnung des neuen Bildes angepasst
werden.
•
Die Eigenschafts-Klasse Property.java muss andere Variablen – entsprechend der Parameter des neuen Effektes – kapseln.
Wenn man dieses Programm ernsthaft mit neuen Effekten versehen will, so würde es sich
empfehlen, für jeden Effekt ein Package zu erstellen. Jedes Package enthält seine eigenen
Klassen für das effektspezifische User-Interface, Effekterstellung, Eigenschaften und Eigenschaftsverwaltung / Eigenschaftsserialisierung. Oberhalb dieser Packages würde die Klasse
mit der main Funktion und eine Klasse mit einem übergelagerten User Interface, welche das
Umschalten zwischen Effekteinstellungen und die Kombination von Effekten ermöglicht.
51
9 Literaturverzeichnis
[1]
PROCEEDINGS OF THE IEEE VOL. 83 NO. 6 JUNE 1995, Ralf Schärfer und
Thomas Sikora: „Digital Video Coding Standards an Their Role in Video Communications“
[2]
Fraunhofer-Gesellschaft Institut für integrierte Schaltungen Arbeitsgruppe Audio &
Multimedia: http://www.iis.fraunhofer.de/amm/techinf/layer3/index.html
[3]
TG Publishing AG, 1998-2004: “Toms’ Hardware Guide”
[4]
Vorlesungen Multimedia I und II
[5]
Heise Zeitschriften Verlag, 2000-2004: “c’t”
[6]
Linux New Media AG, 2000-2004: “Linux Magazin”
[7]
CHIP Xonio Online GmbH, 2004: http://www.chip.de
[8]
IDG Interactive, 2001-2004: http://www.tecchannel.de
[9]
Nickles.de Internet Publishing GmbH, 1997-2004: http://www.nickles.de
[10]
analog multimedia, 2004: http://www.digitalvideoschnitt.de
[11]
Conference Publication No. 447 IEEE 1997, Y. Nagaoka, K. Honma, D. Gifford, N.
Neubert, D. Cameron: „DIGITAL S VIDEO COMPRESSION PROCESSING AND
RECORDING“
[12]
IEEE SPECTRUM APRIL 1195, Jukka Hamalainen: “VIDEO RECORDING”
[13]
Online Hilfe zu Adobe Premiere
[14]
Onlinehilfe zu Adobe After Effects
10 Abbildungsverzeichnis
Abbildung 5.1: Hintergrunddetektion ...................................................................................... 24
Abbildung 5.2: j = 212 ............................................................................................................. 26
Abbildung 5.3: j=300 ............................................................................................................... 27
Abbildung 5.4: j= 700 .............................................................................................................. 27
Abbildung 6.1: Start Auswahl.................................................................................................. 28
Abbildung 6.2: Projekteinstellungen........................................................................................ 29
Abbildung 6.3: importiertes Audiosample ............................................................................... 30
Abbildung 6.4: Audio-CD-Track importieren ......................................................................... 30
Abbildung 6.5: Lautstärkenkurve eines Audioclips ................................................................. 32
Abbildung 6.6: Reampling / Time Strechimg / Pitch Shiftimg................................................ 33
Abbildung 6.7: Normalisieren eines Clips ............................................................................... 34
Abbildung 7.1: Projektfenster nach dem Importieren der Videos ........................................... 35
Abbildung 7.2: Automatisch erstelltes Menüfenster................................................................ 36
Abbildung 7.3: Menüfenster ohne Menüelemente................................................................... 36
52
Abbildung 7.4: Menüfenster ohne Menüelemente................................................................... 37
Abbildung 7.5: Definieren des Menüvideos ............................................................................ 37
Abbildung 7.6: Festgelegte Menüeigenschaften ...................................................................... 38
Abbildung 7.7: Schnittfenster mit Eigenschaftsfenster............................................................ 39
Abbildung 7.8: Endaktion eines Schnittfensters ...................................................................... 39
Abbildung 7.9: Menüfenster mit geschütztem Bereich............................................................ 40
Abbildung 7.10: Schaltflächeneigenschaften........................................................................... 41
Abbildung 7.11: Schaltflächenreihenfolge............................................................................... 42
Abbildung 7.12: Definition einer Endaktion............................................................................ 42
Abbildung 7.13: Vorschau – Aktuelles Bewegungsmenü rendern .......................................... 43
Abbildung 7.14: DVD-Disc erstellen....................................................................................... 43
Abbildung 7.15: DVD-Ordner erstellen................................................................................... 44
Abbildung 8.1: User Interface – Vibrations-Effekt.................................................................. 47
Abbildung 8.2: Vibration (Einstellung: dimmu1) .................................................................... 50
Abbildung 8.3: Vibration (Einstellung: dimmu2) .................................................................... 51
53