Bit wisem 2015-wieners-sitzung-13_Zusammenfassung II
Bit SoSem 2014 | Basisinformationstechnologie II - 09: Video - Kompression
1. Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
Jan G. Wieners // jan.wieners@uni-koeln.de
Basisinformationstechnologie II
Sommersemester 2014
02. Juli 2014 – Video: Kompressionsverfahren
6. ~25 Bilder pro Sekunde 25 fps (frames per second)
Auflösung
Farbtiefe (Quantisierung) z.B. 24 Bit pro Pixel
Rechenexempel unkomprimiertes Video:
720 * 576 * 24 = 9.953.280 Bit pro Frame = ~1,2 MB / Frame
(9.953.280 / 8 / 1024)
1,2 MB * 25 Frames = 30 MB/ sec.
30 MB * 60 sec. = 1.800 MB / min.
1,8 GB * 60 min. = 108 GB / std.
Speicherplatzbedarf von Videomaterial
7. DVD & Co.
Quelle: http://www.bluray-disc.de/faq/was-ist-der-unterschied-zwischen-blu-ray-und-der-dvd
8.
9. Container
Codecs Von den Begriffen Compressor und Decompressor
• Codecs: Mathematische Algorithmen, mit deren Hilfe Video- und Audiodaten reduziert werden.
• Hardware-Codecs: Hardwarebausteine, die die Kompression in Echtzeit durchführen.
• Software-Codecs
10. MKV: Matroska Media Container
http://matroska.org/technical/whatis/index.html
12. Container: mp4
Mp4
Von der Moving Picture Expert Group (MPEG) (gegründet 1988) beschränkt auf
folgende Formate:
Video: MPEG-4 (Part 2, Part 10 (AVC/H.264)), MPEG-2 und MPEG-1
Audio: AAC, MP3, MP2, MP1, AC-3
Bilder: JPEG, PNG
Grafik und Text: BIFS (z. B. können Untertitel in dieses Format
umgewandelt werden)
Dateiendungen:
.m4v, .mp4v: Video (MPEG-4-Videoströme)
.m4a: nur für Audio
.m4b: (Audiobook): Hörbücher, in die Lesezeichen gesetzt werden können
.m4p: (Protected): DRM-geschützte AAC-Audiodateien
.m4r: (Ringtone): Klingeltöne für iPhone
15. Codec: DivX
DivX
<= DivX ;-) 3.11 (1999): Veränderter MS MPEG 4 Codec:
u.a.: Erhöhung der maximalen Bitrate
MS MPEG 4: 256 kbps
DivX: bis 6 mbps
Erzeugt kein ISO-konformes MPEG 4 Video
> DivX ;-) 3.11: Neuentwicklung, patentierter Codec
Unterstützt u.a.:
Multipass Encoding (variable Bitrate)
Komplexe Szenen erhalten eine höhere Bitrate zugewiesen, langsame Szenen eine
niedrigere Bitrate
2000: Gründung der Firma DivXNetworks
Open Source Projekt OpenDivX, basierend auf der MPEG-4 Referenzimplementierung des EU-
Projektes „MoMuSys“ (Mobile Multimedia Systems)
Nach Veröffentlichung von DivX 4.0 (August 2001): Fokus auf kommerzielle Interessen, die
Entwicklungsarbeiten an OpenDivX werden eingestellt
Kodiereffizienz schlechter als bei DivX ;-)
DivX 5: Erstes kommerzielles Produkt
…DivX 9.1.2 (2013-05)
Linktipp: http://www.heise.de/ct/artikel/DivX-im-Griff-288448.html
16. Coded: Xvid
Xvid
Freie MPEG-4 Implementierung (GNU General
Public License), basierend auf OpenDivX
Quelltext
Techniken:
B-Frames
Quarter Pixel Compensation
…
17. Codec: H.264
H.264
• 2003 als Standard verabschiedet: MPEG-4 Part 10
oder auch AVC (Advanced Video Coding)
Zehnter Teil des MPEG-4 Standards (MPEG-
4/Part 10, ISO/IEC 14496-10)
• Datei-/Containerformat: mp4
• Verwendung:
• HDTV / Blu-Ray
• Freier, quelloffener Encoder: x264
(http://www.videolan.org/developers/x264.html)
18. H.264
Variable block-size motion compensation (VBSMC) with block sizes as large as 16×16 a
as small as 4×4, enabling precise segmentation of moving regions.
20. Wie ließe sich diese Videosequenz komprimieren?
http://skateboarding.ru/gallery/data/media/81/sequence_mini.jpg
21. Videokompression: Möglichkeiten in der Beseitigung von Redundanzen
Videokompression
Bild- bzw. Framedimensionen (Höhe und Breite)
- Eigenschaften der Pixel (Helligkeit, Farbe)
- Eigenschaften des jeweils betrachteten Frames
Zeitliche Dimension
22. Welche der beiden Videosequenzen lässt sich besser /
stärker komprimieren? Warum?
http://skateboarding.ru/gallery/data/media/81/sequence_mini.jpg / http://mamboaustralia.com/isfucked/wp-content/uploads/2011/05/CHEADLE_CULBURRA_SEQUENCE1.jpg
23. Unterscheidung:
Intra-coding (auch: spatial coding): Redundanz aus
einem Frame entfernen (räumliche Redundanz),
Kompression teilweise analog zu JPEG
Vektorquantisierung
Konturbasierte Codierung
vs.
Inter-coding (auch: temporal coding): Redundanz
zwischen Frames entfernen (temporale Redundanz)
Differenzkodierung (frame differencing)
Bewegungskompensation
Videokompression
24. Idee und Verfahrensweise:
Aufteilung des Frames in Blöcke (4x4, 8x8, etc.)
Suche nach ähnlichen Blöcken
Ähnliche Blöcke im Bild ersetzen durch „Durchschnittsblock“
Zwei Schritte:
Training: Erstellung der Tabelle (Codebuch) mit häufig vorkommenden Blöcken
Häufig verwendet: Linde–Buzo–Gray Algorithmus
Berücksichtigung der Ähnlichkeit der notierten Blöcke
Dekoder muss über das gleiche Codebuch verfügen
Vorteile:
Schnelle Decodierung
Gute Kompression bei vielen ähnlichen Blöcken
Nachteile:
Codierung aufwändig, da ähnliche Blöcke gesucht werden müssen
Praxis: Verwendung in Codecs: Indeo, Cinepak
Intra-Coding: Vektorquantisierung
25.
26. Idee und Verfahrensweise:
Trennung in Textur und Kontur
Konturen beschreiben (z.B.) durch Bézier-Kurven
Texturen kodieren (z.B. mit DCT)
Praxis: Verwendung ansatzweise in MPEG-4
Knackpunkt: Objekterkennung
Intra-Coding: Konturbasierte Codierung
29. t = 1
Frame vollständig gespeichert
I-Frame
t = 2
Aus dem vorhergehenden
Frame berechnetes Frame
P-Frame
…Kompression!
t = 3
Aus dem vorhergehenden
Frame berechnetes Frame
P-Frame
Bildnachweis: http://www.ipway.rs/h264/Doc/wp_h264_31669_en_0803_lo.pdf
30. Speichern der Differenzen zwischen Start- und
Folgeframe, z.B. pixelweise
Differenzcodierung
Bildnachweis: Malaka, Butz, Hußmann: Medieninformatik. München: Pearson Studium, 2009. S. 180.
31. Intra- vs. Predicted- vs. Bidirectional Frames:
Das Intra-Frame (I-Frame, auch: Key Frame / Schlüsselbild)
wird nur unter Berücksichtigung der eigenen Bildinformation
kodiert
Predicted Frames (P-Frames) werden aus den
vorhergehenden I-Frames berechnet.
Bidirectional Frames beziehen sich sowohl
auf die vorhergehenden I- und P-Frames
als auch
auf die folgenden I- und P-Frames.
Praxis
MPEG-1 / -2: Ein I-Frame pro ½ Sek.
MPEG-4: Ein I-Frame ~ alle 10 Sek.
Unterscheidung I: Frame-Typen (in MPEG)
32. Verfahrensweise
Startframe und spätere I-Frames intracodiert
übertragen
Unterschiede zum Folgeframe bestimmen, als Bild
interpretieren und dieses Bild komprimieren
Differenzcodierung
Bildnachweis: Malaka, Butz, Hußmann: Medieninformatik. München: Pearson Studium, 2009. S. 180.
33. Verfahrensweise:
Objektbewegungen zwischen Frames identifizieren
Speicherung der Veränderungen als Bewegungsvektoren
(motion vector)
Zu übertragen:
Differenzbild
Bewegungsvektoren
Bewegungskompensation (Motion Compensation)
Bildnachweis: Malaka, Butz, Hußmann: Medieninformatik. München: Pearson Studium, 2009. S. 182.
34.
35. Blockbasierte Bewegungskompensation
Verwendung u.a. im MPEG-2 Standard
Grob:
Jedes Frame des Videomaterials wird in n*m große
Pixelblöcke unterteilt
Um die Bewegungskompensation zu leisten, werden
die Pixelblöcke von Frame zu Frame miteinander
verglichen
Ähneln sich die Pixelblöcke (z.B. Kreuzkorrelation), so
wird nur der Verschiebungsvektor gespeichert, um
den sich der Block verschiebt
Bewegungskompensation