Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Zweiter Teil: Funktionsprinzipien eines Video-Codecs

Jedes Raster- bild lĂ€sst sich als zweidimensionale Matrixdarstellen. Wenn es um Farben geht, kann das Konzept weiterentwickelt werden, indem man das Bild als dreidimensionale Matrixbetrachtet, in der zusĂ€tzliche Dimensionen zur Speicherung von Daten fĂŒr jede der Farben verwendet werden.

Wenn wir die endgĂŒltige Farbe als Kombination der sogenannten PrimĂ€rfarben (rot, grĂŒn und blau) betrachten, definieren wir in unserer dreidimensionalen Matrix drei Ebenen: die erste fĂŒr die rote Farbe, die zweite fĂŒr die grĂŒne und die letzte fĂŒr die blaue.
Wie funktioniert ein Video-Codec? Teil 1: Grundlagen
Jeden Punkt in dieser Matrix nennen wir ein Pixel (Bildelement). Jedes Pixel enthĂ€lt Informationen zur IntensitĂ€t (normalerweise in Form eines Zahlenwerts) jeder Farbe. Zum Beispiel, ein rotes Pixel bedeutet, dass es 0 grĂŒn und 0 blau sowie maximal rot enthĂ€lt. Ein pinkfarbenes Pixel kann durch die Kombination der drei Farben gebildet werden. Mit einem Zahlenbereich von 0 bis 255 wird ein pinkfarbenes Pixel definiert als Rot = 255, GrĂŒn = 192 und Blau = 203.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Der Artikel wurde unterstĂŒtzt von der Firma EDISON.

Wir entwickeln Anwendungen fĂŒr VideoĂŒberwachung und Streaming, außerdem befassen wir uns mit der Videoaufzeichnung im Operationssaal.

Alternative Methoden zur Kodierung von Farbabbildungen

Um die Farben darzustellen, aus denen das Bild besteht, gibt es zahlreiche andere Modelle. Beispielsweise kann eine indizierte Palette verwendet werden, die nur ein Byte zur Darstellung jedes Pixels benötigt, anstelle der drei, die fĂŒr das RGB-Modell erforderlich sind. In einem solchen Modell kann eine 2D-Matrix anstelle einer 3D-Matrix zur Darstellung jeder Farbe verwendet werden. Das spart Speicher, bietet jedoch eine geringere Farbpalette.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

RGB

Sehen Sie sich beispielsweise das Bild unten an. Das erste Bild ist vollstĂ€ndig eingefĂ€rbt. Die anderen sind die roten, grĂŒnen und blauen FlĂ€chen (die IntensitĂ€t der entsprechenden Farben ist in Graustufen dargestellt).

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wir sehen, dass die Rottöne im Original an den gleichen Stellen erscheinen, an denen die hellsten Teile des zweiten Gesichts sichtbar sind. WĂ€hrend der Beitrag des blauen Farbtons hauptsĂ€chlich nur in den Augen von Mario (dem letzten Gesicht) und in Elementen seiner Kleidung zu erkennen ist. Beachten Sie, wo alle drei FarbflĂ€chen den geringsten Beitrag leisten (die dunkelsten Teile der Bilder) – das sind die Schnurrhaare von Mario.

Um die IntensitĂ€t jeder Farbe zu speichern, werden eine bestimmte Anzahl von Bits benötigt – dieser Wert wird als Farbtiefebezeichnet. Angenommen, es werden 8 Bit (von 0 bis 255) fĂŒr eine FarbflĂ€che verwendet. Dann ergibt sich eine Farbtiefe von 24 Bit (8 Bit * 3 FlĂ€chen R/G/B).

Ein weiteres Merkmal eines Bildes ist das Auflösungsvermögen, das die Anzahl der Pixel in einer Dimension darstellt. HĂ€ufig wird es als Breite × Höheangegeben, wie im folgenden Bildbeispiel 4 auf 4.
Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Ein weiteres Merkmal, das wir beim Arbeiten mit Bildern/Videos berĂŒcksichtigen mĂŒssen, ist das SeitenverhĂ€ltnis, das die ĂŒbliche proportionale Beziehung zwischen der Breite und der Höhe des Bildes oder Pixels beschreibt.

Wenn von einem Film oder Bild in einem Format von 16 zu 9 die Rede ist, bezieht man sich normalerweise auf das SeitenverhĂ€ltnis des Displays (DAR — von Display-SeitenverhĂ€ltnis). Manchmal kann es jedoch unterschiedliche Formen einzelner Pixel geben — in diesem Fall sprechen wir von PixelverhĂ€ltnis (PAR — von Pixel-SeitenverhĂ€ltnis).

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

FĂŒr die Hausfrau zur Notiz: DVD entspricht DAR 4 zu 3

Obwohl die tatsĂ€chliche Auflösung einer DVD 704×480 betrĂ€gt, behĂ€lt sie dennoch das SeitenverhĂ€ltnis 4:3 bei, da PAR 10:11 entspricht (704×10 / 480×11).

Und schließlich können wir definieren Video als eine Abfolge von n Bildern ĂŒber einen Zeitraum von Zeit, das als zusĂ€tzliche Dimension angesehen werden kann. Und n dann — ist die Bildfrequenz oder die Anzahl der Bilder pro Sekunde (FPS — von Frames pro Sekunde).

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Die Anzahl an Bits pro Sekunde, die erforderlich ist, um Video anzuzeigen, ist dessen Datenrate — Bitrate.

Bitrate = Breite * Höhe * Farbtiefe * Bilder pro Sekunde

Zum Beispiel benötigt ein Video mit 30 Bildern pro Sekunde, 24 Bit pro Pixel und einer Auflösung von 480×240 82.944.000 Bits pro Sekunde oder 82,944 Mbit/s (30x480x240x24) — aber das gilt, wenn keine Komprimierungsmethoden verwendet werden.

Wenn die Datenrate fast konstantist, wird sie genannt konstante Datenrate (CBR — von konstante Bitrate). Sie kann jedoch auch variieren, in diesem Fall spricht man von variabler Bitrate (VBR — von variable Bitrate).

Dieses Diagramm zeigt eine eingeschrÀnkte VBR, bei der nicht zu viele Bits in einem völlig dunklen Bild verbraucht werden.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

UrsprĂŒnglich entwickelten Ingenieure eine Methode zur Verdopplung der wahrgenommenen Bildwiederholfrequenz von Video-Displays, ohne zusĂ€tzliche Bandbreite zu verwenden. Diese Methode ist bekannt als Interlaced video; sie sendet hauptsĂ€chlich die halbe Anzeige im ersten „Frame“ und die andere HĂ€lfte im nĂ€chsten „Frame“.

Derzeit erfolgt die Visualisierung von Szenen hauptsĂ€chlich mit Hilfe von progressiver Scanning-Technologie. Dies ist eine Methode zur Anzeige, Speicherung oder Übertragung von Bewegungsbildern, bei der alle Zeilen jedes Frames nacheinander gezeichnet werden.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Nun, wir wissen jetzt, wie ein Bild digital dargestellt wird, wie seine Farben aufgebaut sind und wie viele Bits pro Sekunde wir benötigen, um Video bei konstanter (CBR) oder variabler (VBR) Bitrate anzuzeigen. Wir sind uns des festgelegten Auflösungsformats bei einer bestimmten Bildwiederholfrequenz bewusst und haben uns mit vielen anderen Begriffen vertraut gemacht, wie etwa interlaced Video, PAR und einigen anderen.

Entfernung von Redundanzen

Es ist bekannt, dass unkomprimiertes Video nicht praxisgerecht ist. Eine Stunde Video in 720p mit 30 Bildern pro Sekunde wĂŒrde 278 GB beanspruchen. Dieses Ergebnis erhalten wir, indem wir 1280 x 720 x 24 x 30 x 3600 multiplizieren (Breite, Höhe, Bits pro Pixel, FPS und Zeit in Sekunden).

Nutzung verlustfreie Kompressionsalgorithmen, wie DEFLATE (verwendet in PKZIP, Gzip und PNG), werden nicht ausreichend Bandbreite reduzieren. Daher mĂŒssen wir nach anderen Methoden zur Videokompression suchen.

DafĂŒr können wir die Eigenschaften unseres Sehens nutzen. Wir nehmen Helligkeit besser wahr als Farben. Ein Video ist eine Abfolge von Bildern, die ĂŒber die Zeit wiederholt werden. Die Unterschiede zwischen benachbarten Frames einer Szene sind gering. Außerdem enthĂ€lt jedes Bild viele Bereiche, die die gleiche (oder Ă€hnliche) Farbe nutzen.

Farbe, Helligkeit und unsere Augen

Unsere Augen sind empfindlicher gegenĂŒber Helligkeit als gegenĂŒber Farbe. Sie können dies selbst ĂŒberprĂŒfen, indem Sie sich dieses Bild ansehen.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wenn Sie nicht erkennen, dass die Farben der Quadrate in der linken HĂ€lfte des Bildes A und B tatsĂ€chlich identisch sind, ist das normal. Unser Gehirn lenkt unsere Aufmerksamkeit stĂ€rker auf Licht und Schatten als auf Farbe. Auf der rechten Seite gibt es eine Verbindung zwischen den markierten Quadraten, die die gleiche Farbe haben – deshalb kann unser Gehirn leicht erkennen, dass es tatsĂ€chlich die gleiche Farbe ist.

Lassen Sie uns (vereinfacht) anschauen, wie unsere Augen funktionieren. Das Auge ist ein komplexes Organ, das aus vielen Teilen besteht. Allerdings interessieren uns vor allem die Zapfen und StÀbchen. Das Auge enthÀlt etwa 120 Millionen StÀbchen und 6 Millionen Zapfen.

Betrachten wir die Wahrnehmung von Farbe und Helligkeit als separate Funktionen bestimmter Teile des Auges (in Wirklichkeit ist das etwas komplexer, aber wir vereinfachen es). StĂ€bchenzellen sind hauptsĂ€chlich fĂŒr die Helligkeit verantwortlich, wĂ€hrend Zapfenzellen fĂŒr die Farbe zustĂ€ndig sind. Zapfen werden je nach dem enthaltenen Pigment in drei Typen unterteilt: S-Zapfen (blau), M-Zapfen (grĂŒn) und L-Zapfen (rot).

Da wir viel mehr StĂ€bchen (Helligkeit) als Zapfen (Farbe) haben, können wir schlussfolgern, dass wir besser in der Lage sind, ÜbergĂ€nge zwischen Dunkelheit und Licht zu unterscheiden als Farben.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Funktionen der Kontrastempfindlichkeit

Forschende der experimentellen Psychologie und vieler anderer Bereiche haben zahlreiche Theorien ĂŒber das menschliche Sehen entwickelt. Eine davon nennt sich Funktionen der KontrastempfindlichkeitSie beziehen sich auf rĂ€umliche und zeitliche Beleuchtung. Kurz gesagt, es geht darum, wie viele VerĂ€nderungen erforderlich sind, bevor der Beobachter diese bemerkt. Beachten Sie die Mehrzahl des Wortes „Funktion“. Das liegt daran, dass wir die Empfindlichkeit gegenĂŒber Kontrastfunktionen nicht nur fĂŒr Schwarz-Weiß-Bilder, sondern auch fĂŒr Farbige messen können. Die Ergebnisse dieser Experimente zeigen, dass unsere Augen in den meisten FĂ€llen empfindlicher auf Helligkeit reagieren als auf Farbe.

Da bekannt ist, dass wir empfindlicher auf die Helligkeit eines Bildes reagieren, könnte man versuchen, diese Tatsache zu nutzen.

Farbmodell

Wir haben bereits ein wenig verstanden, wie man mit Farb Bildern unter Verwendung des RGB-Schemas arbeitet. Es gibt auch andere Modelle. Es gibt ein Modell, das Helligkeit von Farbdaten trennt, und es ist bekannt als YCbCr. Übrigens gibt es auch andere Modelle, die eine Ă€hnliche Trennung vornehmen, aber wir werden nur dieses betrachten.

In diesem Farbmodell Y — dies ist die Darstellung der Helligkeit, und es werden zwei FarbkanĂ€le verwendet: Cb (intensives Blau) und Cr (sattes Rot). YCbCr kann aus RGB gewonnen werden, ebenso ist eine Umwandlung in die entgegengesetzte Richtung möglich. Mit diesem Modell können wir Farbbilder erstellen, wie unten dargestellt:

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Umwandlung zwischen YCbCr und RGB

Einige könnten einwenden: Wie ist es möglich, alle Farben zu erhalten, wenn GrĂŒn nicht verwendet wird?

Um diese Frage zu beantworten, wandeln wir RGB in YCbCr um. Wir verwenden die Koeffizienten, die im Standard festgelegt sind BT.601, der von einer Abteilung empfohlen wurde ITU-R. Diese Abteilung definiert die Standards im digitalen Video. Zum Beispiel: Was ist 4K? Was sollten die Bildfrequenz, die Auflösung und das Farbmodell sein?

Zuerst berechnen wir die Helligkeit. Wir verwenden die von der ITU vorgeschlagenen Konstanten und ersetzen die RGB-Werte.

Y = 0.299R + 0.587G + 0.114B

Nachdem wir die Helligkeit erhalten haben, trennen wir die blaue und rote Farbe:

Cb = 0.564(B — Y)

Cr = 0.713(R — Y)

Und wir können auch zurĂŒckwandeln und sogar GrĂŒn mit YCbCr erhalten:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y — 0.344Cb — 0.714Cr

In der Regel verwenden Displays (Monitore, Fernseher, Bildschirme usw.) ausschließlich das RGB-Modell. Aber dieses Modell kann unterschiedlich organisiert sein:

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Farbunterabtastung

Bei der Darstellung von Bildern durch eine Kombination aus Helligkeit und Farbigkeit können wir die höhere Empfindlichkeit des menschlichen Sehens fĂŒr Helligkeit im Vergleich zu Farbigkeit nutzen, indem wir selektiv Informationen entfernen. Die Farbunterabtastung ist eine Methode zur Bildkodierung, die eine niedrigere Auflösung fĂŒr Farbigkeit als fĂŒr Helligkeit verwendet.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wie weit darf die Auflösung der Farbigkeit reduziert werden?! Es gibt bereits einige Schemen, die beschreiben, wie man die Auflösung und das ZusammenfĂŒhren behandelt (Endfarbe = Y + Cb + Cr).

Diese Schemen sind bekannt als Unterabtastungssysteme und werden in einem VerhĂ€ltnis von 3 zu 1 ausgedrĂŒckt - a:x:y, das die Anzahl der Abtastungen der Helligkeits- und Farbdifferenzsignale festlegt.

a - die Referenz-Horizontalabtastung (in der Regel gleich 4)
x - die Anzahl der Abtastungen der Farbigkeit in der ersten Zeile der Pixel (die horizontale Auflösung im VerhÀltnis zu a)
y - die Anzahl der Änderungen der Abtastungen der Farbigkeit zwischen der ersten und zweiten Zeile der Pixel.

Eine Ausnahme bilden 4:1:0, die eine Abtastung der Farbigkeit in jedem Block mit einer Auflösung von 4 auf 4 ermöglicht.

Allgemeine Schemen, die in modernen Codecs verwendet werden:

  • 4:4:4 (ohne Subsampling)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 – Beispiel einer ZusammenfĂŒhrung

Hier ist ein zusammengefĂŒgter Bildausschnitt unter Verwendung von YCbCr 4:2:0. Beachten Sie, dass wir nur 12 Bit pro Pixel verwenden.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

So sieht dasselbe Bild aus, kodiert mit den gĂ€ngigsten Arten von Farbsampling. Die oberste Reihe zeigt den finalen YCbCr, die untere Reihe zeigt die Farbauflösung. Sehr ansehnliche Ergebnisse, wenn man die geringen QualitĂ€tsverluste berĂŒcksichtigt.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Erinnern Sie sich, dass wir 278 GB Speicherplatz fĂŒr eine einstĂŒndige Video-Datei in 720p und 30 Bildern pro Sekunde berechnet haben? Bei Verwendung von YCbCr 4:2:0 wird diese GrĂ¶ĂŸe halbiert – auf 139 GB. Bis zu einem akzeptablen Ergebnis ist es trotzdem noch ein weiter Weg.

Sie können das YCbCr-Histogramm selbst mit FFmpeg erstellen. In diesem Bild ĂŒberwiegt Blau ĂŒber Rot, was auf dem Histogramm deutlich sichtbar ist.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

FarbsĂ€ttigung, Helligkeit, Farbton – VideoĂŒbersicht

Ich empfehle, dieses großartige Video anzusehen. Es erklĂ€rt, was Helligkeit ist und bringt alle Punkte klar auf den Tisch. – Zur Helligkeit und Farbe.

Video abspielen

Arten von Frames

Lass uns weitermachen. Wir versuchen, die Zeitredundanz zu beseitigen. Zuerst definieren wir jedoch einige grundlegende Begriffe. Angenommen, wir haben einen Film mit 30 Bildern pro Sekunde. Hier sind die ersten 4 Bilder:

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen Wie funktioniert ein Video-Codec? Teil 1: Grundlagen Wie funktioniert ein Video-Codec? Teil 1: Grundlagen Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wir können viele Wiederholungen in den Bildern sehen: Zum Beispiel der blaue Hintergrund, der sich von Bild zu Bild nicht Àndert. Um dieses Problem zu lösen, können wir sie abstrakt in drei Arten von Bildern klassifizieren.

I-Frame (IIntro Frame)

Der I-Frame (Referenzbild, SchlĂŒsselbild, internes Bild) ist autonom. UnabhĂ€ngig davon, was visualisiert werden soll, ist der I-Frame im Grunde ein statisches Foto. Das erste Bild ist normalerweise ein I-Frame, jedoch werden wir regelmĂ€ĂŸig I-Frames auch unter den nicht ganz vorderen Bildern beobachten.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

P-Frame (PPredicted Frame)

Ein P-Frame (prĂ€diktiver Frame) nutzt den Vorteil, dass das aktuelle Bild fast immer unter Verwendung des vorherigen Bildes wiedergegeben werden kann. Zum Beispiel besteht im zweiten Bild die einzige Änderung im vorwĂ€rtsbewegenden Ball. Wir können Frame 2 einfach erhalten, indem wir Frame 1 leicht anpassen und nur die Unterschiede zwischen diesen Frames verwenden. Um Frame 2 zu erstellen, beziehen wir uns auf das vorhergehende Frame 1.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen ← Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Ein B-Frame (Bi-prÀdiktiver Frame)

Was ist mit Verweisen auf nicht nur vergangene, sondern auch zukĂŒnftige Frames, um eine noch bessere Kompression zu erreichen?! Das ist im Wesentlichen ein B-Frame (bidirektionaler Frame).

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen ← Wie funktioniert ein Video-Codec? Teil 1: Grundlagen → Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Zwischenausgabe

Diese Frame-Typen werden verwendet, um die bestmögliche Kompression zu gewĂ€hrleisten. Wir werden uns im nĂ€chsten Abschnitt ansehen, wie das funktioniert. Vorab ist zu erwĂ€hnen, dass der „teuerste“ in Bezug auf den Speicherverbrauch der I-Frame ist, wĂ€hrend der P-Frame deutlich gĂŒnstiger ist, und der B-Frame die kosteneffizienteste Option fĂŒr Videos darstellt.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Zeitliche Redundanz (interframe Vorhersage)

Lassen Sie uns ĂŒberlegen, welche Möglichkeiten wir haben, um zeitliche Wiederholungen zu minimieren. Diese Art der Redundanz werden wir mit Methoden der gegenseitigen Prognose lösen.

Wir streben an, so wenige Bits wie möglich zu verwenden, um die Sequenz der Frames 0 und 1 zu codieren.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wir können Subtraktion, indem wir einfach Frame 1 von Frame 0 abziehen. Wir erhalten Frame 1, nutzen jedoch nur die Differenz zu dem vorherigen Frame und codieren faktisch nur den verbleibenden Rest.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Aber was, wenn ich Ihnen sage, dass es eine noch bessere Methode gibt, die noch weniger Bits benötigt?! Lassen Sie uns zunÀchst Frame 0 in ein klares Gitter aus Blöcken unterteilen. Danach versuchen wir, Blöcke aus Frame 0 mit Frame 1 abzugleichen. Anders gesagt, wir bewerten die Bewegung zwischen den Frames.

Aus Wikipedia — Blockbasierte Bewegungscompensation

Die blockbasierte Bewegungscompensation teilt den aktuellen Frame in nicht ĂŒberlappende Blöcke, und der Bewegungsvektor zeigt den Ursprung der Blöcke an (ein weit verbreitetes MissverstĂ€ndnis ist, dass der vorherige Ein Frame wird in nicht ĂŒberlappende Blöcke unterteilt, und die Bewegungsvektoren zeigen an, wohin diese Blöcke verschoben werden. TatsĂ€chlich wird jedoch nicht der vorherige Frame analysiert, sondern der nĂ€chste. Es wird ermittelt, woher die Blöcke kommen, nicht wohin sie gehen. Normalerweise sind die ursprĂŒnglichen Blöcke im Ausgangsframe ĂŒberlappt. Einige Video-Komprimierungsalgorithmen setzen den aktuellen Frame sogar aus Teilen mehrerer zuvor ĂŒbertragener Frames zusammen.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Im Bewertungsprozess sehen wir, dass sich die Kugel von (x=0, y=25) auf (x=6, y=26) bewegt hat, die Werte x und y definieren den Bewegungsvektor. Ein weiterer Schritt, den wir unternehmen können, um Bits zu sparen, besteht darin, nur die Differenz der Bewegungsvektoren zwischen der letzten Position des Blocks und der prognostizierten zu kodieren. Daher wird der endgĂŒltige Bewegungsvektor (x=6-0=6, y=26-25=1) sein.

In einer realen Situation wÀre diese Kugel in n Blöcke unterteilt, aber das Àndert nichts am Wesentlichen.

Die Objekte im Bild bewegen sich in drei Dimensionen, sodass die Kugel beim Bewegen visuell kleiner (oder grĂ¶ĂŸer, wenn sie sich auf den Betrachter zubewegt) erscheinen kann. Es ist normal, dass es keine perfekte Übereinstimmung zwischen den Blöcken gibt. Hier ist eine kombinierte Ansicht unserer SchĂ€tzung und des tatsĂ€chlichen Bildes.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Aber wir sehen, dass, wenn wir die BewegungseinschÀtzung anwenden, die Daten zur Kodierung deutlich weniger sind als bei der Verwendung einer einfacheren Methode, die die Delta zwischen den Frames berechnet.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

So wird die tatsÀchliche Bewegungskompensation aussehen.

Diese Methode wird sofort auf alle Blöcke angewendet. Oft wird unser hypothetischer beweglicher Ball in mehrere Blöcke unterteilt.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Sie können diese Konzepte selbst erkunden, indem Sie Jupyter.

Um die Bewegungsvektoren zu sehen, können Sie ein Video mit einer externen Vorhersage mithilfe von ffmpeg.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Außerdem können Sie auf Intel Video Pro Analyzer (dies ist kostenpflichtig, aber es gibt eine kostenlose Testversion, die nur auf die ersten zehn Frames beschrĂ€nkt ist).

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

RĂ€umliche Redundanz (interne Vorhersage)

Wenn man jeden Frame im Video analysiert, wird man viele miteinander verbundene Bereiche entdecken.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Lassen Sie uns dieses Beispiel durchgehen. Diese Szene besteht hauptsĂ€chlich aus Blau- und Weißtönen.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Das ist ein I-Frame. Wir können die vorherigen Frames zur Vorhersage nicht heranziehen, aber wir können ihn komprimieren. Lassen Sie uns die Markierung des roten Blocks kodieren. Wenn wir uns die Nachbarn ansehen, stellen wir fest, dass es um ihn herum einige Farbtrends gibt.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wir nehmen an, dass die Farben im Frame vertikal verteilt sind. Das bedeutet, dass die Farben der unbekannten Pixel Werte ihrer Nachbarn enthalten werden.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Diese Vorhersage kann sich als falsch herausstellen. Aus diesem Grund ist es notwendig, diese Methode (interne Vorhersage) anzuwenden und dann die tatsĂ€chlichen Werte abzuziehen. Dies gibt uns einen Restblock, der zu einer viel kompakteren Matrix im Vergleich zum Original fĂŒhrt.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Wenn Sie mit internen Vorhersagen ĂŒben möchten, können Sie mit ffmpeg ein Video mit Macroblox und ihren Vorhersagen erstellen. Um die Bedeutung jeder Farbe des Blocks zu verstehen, mĂŒssen Sie die ffmpeg-Dokumentation konsultieren.

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Oder Sie können den Intel Video Pro Analyzer verwenden (wie ich oben erwÀhnt habe, gibt es in der kostenlosen Testversion eine EinschrÀnkung von 10 Frames, aber das sollte anfangs ausreichen).

Wie funktioniert ein Video-Codec? Teil 1: Grundlagen

Zweiter Teil: Funktionsprinzipien eines Video-Codecs

Quelle: habr.com

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster