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