Du bist nicht angemeldet.

DanielRei

unregistriert

1

Mittwoch, 24. Oktober 2012, 11:26

Wie fünktioniert die h.264 /MPEG 4 Komprimierung genau ?

Guten Morgen,

ist es richtig das der h.264 codec mit 2 verschiedenen mitteln komprimiert?
Nämlich
1. Bildvorhersage ( also nicht jedes Bild enthält die volle Information
2. Color Subsamplingrate von 4-2-0 (demnach also kein rgb, sondern getrennte Luminanz und Farbwerte)

Habe ich das richtig verstanden oder liege ich ganz falsch?


Daniel...

Broken Tape Productions

unregistriert

2

Mittwoch, 24. Oktober 2012, 14:55

zu 1.:
Meines Wissens nach funktioniert der h.264-codec tatsächlich so, dass er nicht jedes Bild speichert, sondert nur sogenannte keyframes, die alle so und so viele Bilder gesetzt werden. Diese Keyframes sind die Bezugsbilder für die restlichen Bilder. So wird bei diesen quasi nicht der Bildinhalt gespeichert, sondern die Veränderung zum Bezugsbild.


Du kennst das sicher, wenn du dir auf deinem PC ein Video anschaust und dann vorspulst. Oft ist es dann so, dass das Bild kurz hängt, verpixelt ist und erst nach 1-2 Sekunden wieder sauber läuft. Dann musste erst wieder ein Keyframe gefunden werden so, dass die anderen Bilder wieder "funktionieren".

Hoffe das hilft weiter.

mfg BTP

3

Mittwoch, 24. Oktober 2012, 16:25

Hallöchen

zur Bildvorhersage hat mein Vorredner das schon korrekt erklärt. Es gibt also verschiedene Arten von Bildern, also z.B. solche, die als Referenzbilder dienen, um Vorhersagen über die weiteren Bilder treffen zu können und solche, für die dann jeweils nur der Unterschied zum referenzierten Bild gespeichert wird. Dadurch kann man schon eien ganze Menge an Informationen sparen, da man für manche Bilder nur die Bewegungsvektoren braucht.

Zum 2.: Das was du da sagst ist nicht ganz richtig, nur teilweise. Luminanz und Farbwerte sind nämlich immer getrennt, aber RGB ist es trotzdem. Das liegt daran, dass das menschliche Auge Farbwertveränderungen nicht so stark wahrnimmt, wie Veränderungen oder Fehler in den Helligkeitswerten - das Auge reagiert also stärker auf Helligkeitsabweichungen, als auf die von Farbwertabweichungen. Demnach hat man sich überlegt, dass dieses Defizit zur Komprimierung von Videoströmen genutzt werden kann, in dem man die Farbwerte einfach unterabtastet ("subsampling"). 4:4:4 würde z.B. bedeuten, dass keine Unterabtastung stattfindet: Für jeden Helligkeitswert wird auch ein Farbwert (jeweils von R, G und B) genommen). 4:2:0 bedeutet nun, dass die Helligkeitswerte (wie immer) in jeder Zeile und Spalte abgetastet werden, jedoch die Farbwerte nur jede 2. Zeile und in jeder 1. Zeile nur halb so oft, wie das Y (Helligkeits-) Signal.




Wie du hier sehen kannst, hat dieses Verfahren im Endeffekt zur Folge, dass die Farbwerte nicht in den "richtigen" Zeilen, sondern dazwischen liegen. Dadurch kann es u.U. zu Farbflimmern kommen.

Standart ist eigentlich eine Abtastung von 4:2:2.
Aber das sind alles Dinge, die auch schon beim Mpeg standart implementiert sind. Es gibt demnach noch andere Methodiken, die den h.264 Standart unterscheidet, wodurch eine sehr gute Komprimierung bei gleicher Qualität möglich wird. (Besonders hervorzuheben ist jedoch vor allem der 1. Punkt mit der Bewegungsvorhersage).


Ich hoffe, dass ich dir ein wenig helfen konnte.

Es haben bereits 3 registrierte Benutzer und 1 Gast diesen Beitrag als hilfreich eingestuft.

Benutzer, die diesen Beitrag hilfreich fanden:

joey23, Filmstammtisch, rick

arcfeatures

unregistriert

4

Mittwoch, 24. Oktober 2012, 17:55

Vielleicht noch als Ergänzung zu 1.:

Die Komprimierung beim h.264-Codec folgt sowohl einer örtlichen und einer zeitlichen Vorhersage.
Die örtliche Vorhersage wird bei den Intraframes (Keyframes) angewandt, was man sich wie eine JPEG-Komprimierung vorstellen kann.
Für die zeitliche Vorhersage gibt es verschiedene Frametypen, die in einer Group of Pictures (GOP) zusammengefasst werden.
Normalerweise enthält die GOP I-, P- und B-Frames. I-Frames sind Intraframes, das P steht für "predictive" und das B für "bidirectionally-predictive". Demnach erfolgt die zeitliche Vorhersage bei P-Frames nur auf vorangegangene Bilder und bei B-Frames erfolgt sie vorwärts und rückwärts, also auf vorangegangene und nachfolgende Bilder.
Der Aufbau von einer GOP kann dann beispielsweise so aussehen: I-B-B-B-P-B-B-B-P, anschließend fängt die nächste GOP dann wieder mit einem Intraframe an.

rick

Registrierter Benutzer

  • »rick« ist männlich

Beiträge: 2 507

Dabei seit: 3. November 2010

Wohnort: Hannover

Frühere Benutzernamen: rick1000

Hilfreich-Bewertungen: 615

  • Private Nachricht senden

5

Donnerstag, 25. Oktober 2012, 06:41

Die örtliche Vorhersage wird bei den Intraframes (Keyframes) angewandt, was man sich wie eine JPEG-Komprimierung vorstellen kann.

Wäre das dritte Mittel mit dem h264 komprimiert (wie auch mpeg/mpeg2).
Bildung von Macroblöcken (8x8) die in eine Frequenzdimension transformiert werden und über Quantisierungsmatrizen daraufhin verglichen werden, welche Bilddetails zu vernachlässigen sind und später wegfallen können (vergleichbar mit den nicht oder kaum hörbaren Frequenzen, die bei einer mp3 Audiodatei weggelassen werden).
Das Verfahren wird in einem Link den Freezer letztens gepostet hat, sehr gut erklärt.

Es ergibt sich also Abfolge

1) Color Subsampling (Konvertieren in einen weniger genauen Farbraum / Reduktion der Bittiefe)
2) örtliche Bildvorhersage (Ermittlung und Entfernung von weniger wichtigen Bilddetails einzelner Frames)
3) zeitliche Bildvorhersage (Entfernung von gleichbleibenden Bildinformationen zwischen mehreren Frames . Unterteilung in I-, P-,B-Frames und Festlegung der GOP Struktur, wobei die Häufigkeit mit der I-Frames auftauchen, einen großen Einfluß auf Qualität und Dateigröße haben)

Gibt es noch weitere Mittel die zur Kompression des Bildmaterials verwendet werden ?

6

Donnerstag, 25. Oktober 2012, 08:15

Ja es gibt noch ein paar Merkmale, die für die Komprimierung entscheident sind, auch wenn das für den Fragesteller sicherlich etwas zu sehr ins Detail gehen würde. Kurzum lässt sich sagen, dass gerade beim h.264 Standart bei der GoP nicht mehr nur die voherigen und folgenden P-Frames von den P- und B-Frames referenziert werden können, sondern auch auf beliebig viele weiter zurückliegende, die dann beliebig gewichtet in die Berechnung eingehen (das war beim Mpeg Standart nicht so, da war es wirklich nur das vorherige bzw. das danach wie mein Vorredner es beschrieben hat). Außerdem gibt es hier auch unterschiedliche Makroblocktypen (z.B. 8x16, 8x8..). Zur Frezquenzanalyse verwendet der h.264 Standart außerdem statt der diskreten Cosinustransformation eine abgeleitete Integer Transformation auf 4x4 Blocke an, wodurch nur noch Additionen, Subtraktionen und Verschiebeoperatoren benötigt werden.
Auch bei der Kodierung wird hier ordentlich an Daten gespart z.B. durch unterschiedliche Auslesereihenfolgen der Kooeffizienten.

Das sollte dir hoffentlich reichen. Was genau man nun alles davon einstellen kann, das weiß ich nicht 100%. Jedoch ist es gut zu wissen, was bei der Komprimierung überhaupt geschieht, da man so überhaupt weiß und einschätzen kann, wie das Ergebnis im Endeffekt aussieht und wie man evtl. Fehler verhindern kann.

LG

Es hat bereits 1 registrierter Benutzer diesen Beitrag als hilfreich eingestuft.

Benutzer, die diesen Beitrag hilfreich fanden:

rick

DanielRei

unregistriert

7

Donnerstag, 25. Oktober 2012, 11:37

Dank für die vielen guten Informationen !!!

Hey....vielen Dank für die ganzen tollen und umfangreichen Infos !!!
Ich habe mir nun alles einige Male durchgelesen und muss sagen das ich denke alles verstanden zu haben:)
Demnächst werde ich dann auch vorsichtig sein mit Aussagen wie "Für die Videoproduktion braucht man kein Mathe..." ;)

Nun stellt sich mir natürlich die Frage in wie viele Bereiche man sich auskennen sollte.....
Mein späterer Traumjob wäre so etwas wie VFX Artist......Nun bekommt man ja denke ich mal meist für sachen wie colorgrading schöne Raw Daten mit keiner Farbuntertastung....das gibt man dann später aus als z.B.
Prores 4-4-4 und alles hat geklappt.....

Das ist dann ja eher ein Kreativ Job , ähnlich wie beim Regisseur.....
Sber ich denke es macht sich in der Brange immer gut alles über gängige Fortame + + + zu wissen.....oder??


Nochmal danke für die Infos ;)

Gruß Daniel...

8

Donnerstag, 25. Oktober 2012, 15:15

Freut mich, wenn wir dir helfen konnten. Ja also es ist definitiv viiiell Mahte, wenn man denn die Hintergründe verstehen möchte - ich selbst studiere Medieninformatik und "musste" viele Dinge recht detailgenau lernen (z.B. die genauen Berechnungen bei der diskreten Cosinustransformation usw) - das muss ich denke nicht unbedingt sein, aber das Wissen über Formate, deren Eigenschaften und Vor- und Nachteile ist schon essentiell, wenn man Filme/ Fotos etc. bearbeiten möchte. Auch ein Blick in das technische, über Berechnungen etc. sind vll. nicht schlecht eben damit man einen Einbklick darüber hat, was welche Einstellung/ Komprimierungsart bewirkt und warum. Wenn man z.B. Bilder bearbeitet muss man ja auch wissen, wie das Bild aufgebaut ist und was der Unterschied zw. Vektor- und Pixelgrafiken sind, um überhaupt mit dem Medium richtig umgehen zu können, da es ja auch immer Anwenderspezifisch ist, was für Formate und Eigenschaften man für sein eigenes Projekt benötigt.

Beaverlicious

Registrierter Benutzer

Beiträge: 468

Dabei seit: 4. April 2011

Wohnort: Frankfurt/Main

Frühere Benutzernamen: Fischfilet

Hilfreich-Bewertungen: 60

  • Private Nachricht senden

9

Donnerstag, 25. Oktober 2012, 15:43

naja, jetz werden hier aber äpfel mit birnen verglichen ;-)

die einzelnen video codecs verhalten sich zueinander sicher nicht wie bitmap zu pixelgrafik :D, da is der unterschied doch wesentlich essentieller.
ich konnte bisher recht gut damit leben die hintergründe der codecs nicht zu kennen (mal davon gehört zu haben ist sicher trotzdem nicht verkehrt ;-) )
einfach h264 eingestellt und es kam nen anständiges ergebnis dabei raus, zumal das ganze ja auch ers am ende des projekts wichtig wird (rumprobieren wird nicht bestraft;-) ).
bei pixel und vektor kann ein anfänglicher fehler schon alles zerballern.

dieses ganze "zu sehr in mathematisch/technische inhalte versteiffen", geht mir ehrlich gesagt ziemlich auf den sack! in meiner lehranstalt läuft das leider genauso wie bei dir. man muss dinge lernen, die so unglaublich unessentiell sind und vernachlässigt dabei viel wichtigere dinge.

niemand interessiert es heutzutage ob eine schrift eine renaissance antiqua oder doch eine barock-antiqua ist
niemand muss aus dem stegreif sagen können das der iso newspaper farbraum kleiner ist als der iso newspaper japan
niemand muss von hand dateigrößen von tiff bilder berechnen

da frage ich mich wirklich welch großer geist im kultusministerium oder sonstwo diese inhalte vorlegt. warum beschäftigt man sich mit sowas? :sleeping:

naja, kann mich so viel aufregen wie ich das möchte, nützt ja doch nix :D

DanielRei

unregistriert

10

Donnerstag, 25. Oktober 2012, 15:52

Sehe ich ähnlich ;)

Also ich komme eigendlich aus dem Fotografie / Photoshop Bereich, deshalb sind mir die jpeg kompression, Raw Daten, 8 bzw 16 bit usw schon geläufig.....:)

Nur ich hatte schon immer die Angst mich zu sehr in die Technik zu vertiefen, da ich beispielsweise zur Fotografie eigendlich aus Kreativgründen gestoßen bin.....

Nichts destotrotz habe ich dennoch bock wirklich alles was ich am Rechner tue auch aus technischer Sicht nachvollziehen zu können......
Ich hoffe das mir eben die essentiell wirklich wichtigen Aspekte beim anstehenden Digital Film + VFX Studium beigebracht werden :) (zumindest die Ressourcen zum guten flüssigen Selbststudium...)

Gruß Daniel...

rick

Registrierter Benutzer

  • »rick« ist männlich

Beiträge: 2 507

Dabei seit: 3. November 2010

Wohnort: Hannover

Frühere Benutzernamen: rick1000

Hilfreich-Bewertungen: 615

  • Private Nachricht senden

11

Donnerstag, 25. Oktober 2012, 16:07

Ich fand Tines Beitrag über das Subsampling sehr hilfreich und ohne das jeder im Detail alles verstehen muß, kann man anhand der Grafiken eigentlich gut erkennen um was es geht und die Bezeichnungen 8 Bit 4.2.0 oder 12 Bit 4.4.4 verlieren dadurch deutlich an Kryptik. Was die hohe Mathematik hinter den Codecs betrifft, so finde ich es interessant, aber ich werde mich nicht verränken um die Berechnungen im Detail zu verstehen. Ein gewisses Hintergrundwissen finde ich immer nützlich und es hilft Dinge zu Verstehen (und damit auch zu vermeiden) wie z.B. Blockartefakte,Solarisationseffekt oder das Auftreten von Moskitorauschen. Für mich war beispielsweise, im Zuge der Recherche neu, das die Farbkomponente Rot anfälliger für Blockartefakte ist, als Blau und Grün.

Verwendete Tags

Codec, h.264, Komprimierung, mpeg 4, video

Social Bookmarks