Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Der zweite Teil: So funktioniert der Videocodec

Beliebiges Raster Bild kann im Formular dargestellt werden zweidimensionale Matrix. Wenn es um Farben geht, kann die Idee durch die Betrachtung eines Bildes entwickelt werden dreidimensionale Matrix, in dem zusätzliche Dimensionen verwendet werden, um Daten für jede der Farben zu speichern.

Wenn wir die endgültige Farbe als eine Kombination der sogenannten betrachten. Primärfarben (Rot, Grün und Blau) definieren wir in unserer dreidimensionalen Matrix drei Ebenen: die erste für Rot, die zweite für Grün und die letzte für Blau.
Wie funktioniert ein Videocodec? Teil 1: Grundlagen
Wir nennen jeden Punkt in dieser Matrix ein Pixel (Bildelement). Jedes Pixel enthält Informationen über die Intensität (normalerweise als numerischer Wert) jeder Farbe. Zum Beispiel, rotes Pixel bedeutet, dass es 0 Grün, 0 Blau und maximal Rot enthält. Rosa Pixel kann durch eine Kombination von drei Farben gebildet werden. Unter Verwendung eines Zahlenbereichs von 0 bis 255 wird ein rosa Pixel definiert als Rot = 255, Grün = 192 и Blau = 203.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Dieser Artikel wurde mit Unterstützung von EDISON veröffentlicht.

Wir entwickeln Anwendungen für Videoüberwachung, Videostreaming, und wir sind verlobt Videoaufzeichnung im Operationssaal.

Alternative Möglichkeiten zum Kodieren eines Farbbildes

Es gibt viele andere Modelle zur Darstellung der Farben, aus denen ein Bild besteht. Sie können beispielsweise eine indizierte Palette verwenden, die nur ein Byte zur Darstellung jedes Pixels benötigt, anstelle der drei, die bei Verwendung des RGB-Modells erforderlich sind. In einem solchen Modell ist es möglich, zur Darstellung jeder Farbe eine 2D-Matrix anstelle einer 3D-Matrix zu verwenden. Dies spart Speicherplatz, ergibt aber einen kleineren Farbraum.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

RGB

Schauen Sie sich zum Beispiel dieses Bild unten an. Das erste Gesicht ist komplett bemalt. Die anderen sind die Ebenen Rot, Grün und Blau (die Intensitäten der entsprechenden Farben werden in Graustufen angezeigt).

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wir sehen, dass sich die Rottöne im Original an denselben Stellen befinden, an denen die hellsten Teile des zweiten Gesichts beobachtet werden. Während Blues Beitrag hauptsächlich nur in Marios Augen (letztes Gesicht) und Elementen seiner Kleidung zu sehen ist. Beachten Sie, wo alle drei Farbebenen am wenigsten beitragen (die dunkelsten Teile der Bilder) – Marios Schnurrbart.

Um die Intensität jeder Farbe zu speichern, ist eine bestimmte Anzahl von Bits erforderlich – diese Menge wird aufgerufen Bittiefe. Nehmen wir an, pro Farbebene werden 8 Bit verbraucht (basierend auf einem Wert von 0 bis 255). Dann haben wir eine Farbtiefe von 24 Bit (8 Bit * 3 R/G/B-Ebenen).

Eine weitere Eigenschaft eines Bildes ist разрешение, das ist die Anzahl der Pixel in einer Dimension. Wird oft als bezeichnet Breite × Höhe, wie im 4 x 4-Beispielbild unten.
Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Eine weitere Eigenschaft, mit der wir uns bei der Arbeit mit Bildern/Videos befassen, ist Seitenverhältnis, beschreibt die normale proportionale Beziehung zwischen der Breite und Höhe eines Bildes oder Pixels.

Wenn sie sagen, dass ein bestimmter Film oder ein bestimmtes Bild 16 x 9 groß ist, meinen sie das normalerweise Seitenverhältnis der Anzeige (ABER - von Seitenverhältnis anzeigen). Allerdings kann es manchmal zu unterschiedlichen Formen einzelner Pixel kommen – in diesem Fall handelt es sich um unterschiedliche Formen Pixelverhältnis (PAR - von Pixel-Seitenverhältnis).

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Hinweis an die Gastgeberin: DVD Streichhölzer DAR 4 bis 3

Obwohl die tatsächliche DVD-Auflösung 704 x 480 beträgt, wird dennoch ein Seitenverhältnis von 4:3 beibehalten, da der PAR 10:11 (704 x 10 / 480 x 11) beträgt.

Und schließlich können wir bestimmen Video wie eine Folge von n Rahmen für den Zeitraum Zeit, was als zusätzliche Dimension betrachtet werden kann. A n ist dann die Bildrate oder die Anzahl der Bilder pro Sekunde (FPS - von Bilder pro Sekunde).

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Die Anzahl der Bits pro Sekunde, die zum Anzeigen eines Videos erforderlich sind, ist seine Übertragungsgeschwindigkeit - Bitrate.

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

Beispielsweise würde ein Video mit 30 fps, 24 bps und 480 x 240 82,944,000 bps oder 82,944 Mbit/s (30 x 480 x 240 x 24) erfordern – allerdings nur, wenn keine Komprimierungsmethode verwendet wird.

Wenn die Übertragungsgeschwindigkeit nahezu konstant, dann heißt es konstante Übertragungsgeschwindigkeit (CBR - von Konstante Bit-Rate). Es kann aber auch variieren, in diesem Fall heißt es Variable Baudrate (VBR - von Variable Bitrate).

Diese Grafik zeigt eine begrenzte VBR, bei der bei einem vollständig dunklen Frame nicht zu viele Bits verschwendet werden.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Ingenieure entwickelten zunächst eine Methode, um die wahrgenommene Bildrate einer Videoanzeige zu verdoppeln, ohne zusätzliche Bandbreite zu verbrauchen. Diese Methode ist bekannt als Interlaced-Video; Grundsätzlich wird die Hälfte des Bildschirms im ersten „Frame“ und die andere Hälfte im nächsten „Frame“ gesendet.

Derzeit werden Szenen hauptsächlich mit gerendert fortschrittliche Scantechnologien. Es handelt sich um eine Methode zum Anzeigen, Speichern oder Übertragen bewegter Bilder, bei der alle Zeilen jedes Einzelbilds nacheinander gezeichnet werden.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Also! Jetzt wissen wir, wie ein Bild digital dargestellt wird, wie seine Farben angeordnet sind, wie viele Bits pro Sekunde wir für die Videowiedergabe aufwenden, ob die Bitrate konstant (CBR) oder variabel (VBR) ist. Wir kennen eine bestimmte Auflösung bei einer bestimmten Bildrate und sind mit vielen anderen Begriffen vertraut, wie z. B. Interlaced-Video, PAR und einigen anderen.

Redundanz beseitigen

Es ist bekannt, dass Videos ohne Komprimierung nicht normal verwendet werden können. Ein einstündiges Video mit 720p-Auflösung und 30 Bildern pro Sekunde würde 278 GB beanspruchen. Auf diesen Wert kommen wir durch Multiplikation von 1280 x 720 x 24 x 30 x 3600 (Breite, Höhe, Bits pro Pixel, FPS und Zeit in Sekunden).

Verwenden verlustfreie Komprimierungsalgorithmen, wie DEFLATE (verwendet in PKZIP, Gzip und PNG), reduziert die erforderliche Bandbreite nicht ausreichend. Wir müssen nach anderen Möglichkeiten suchen, Videos zu komprimieren.

Dazu können Sie die Merkmale unserer Vision nutzen. Wir können Helligkeit besser unterscheiden als Farbe. Ein Video ist eine Reihe aufeinanderfolgender Bilder, die sich im Laufe der Zeit wiederholen. Es gibt kleine Unterschiede zwischen benachbarten Bildern derselben Szene. Darüber hinaus enthält jeder Rahmen viele Bereiche mit derselben (oder einer ähnlichen) Farbe.

Farbe, Helligkeit und unsere Augen

Unsere Augen reagieren empfindlicher auf Helligkeit als auf Farben. Davon können Sie sich selbst überzeugen, indem Sie sich dieses Bild ansehen.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wenn Sie das nicht sehen, sehen Sie in der linken Bildhälfte die Farben der Quadrate A и B eigentlich gleich sind, dann ist das normal. Unser Gehirn zwingt uns, mehr auf Licht und Schatten als auf Farbe zu achten. Auf der rechten Seite zwischen den markierten Quadraten befindet sich ein Pullover derselben Farbe – so können wir (d. h. unser Gehirn) leicht feststellen, dass sie tatsächlich dieselbe Farbe haben.

Schauen wir uns (vereinfacht) an, wie unsere Augen funktionieren. Das Auge ist ein komplexes Organ, das aus vielen Teilen besteht. Am meisten interessieren uns jedoch 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 (tatsächlich ist alles etwas komplizierter, aber wir werden es vereinfachen). Stäbchenzellen sind hauptsächlich für die Helligkeit verantwortlich, während Zapfenzellen für die Farbe verantwortlich sind. Je nachdem, welches Pigment sie enthalten, werden Zapfen in drei Typen eingeteilt: 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 daraus schließen, dass wir Übergänge zwischen Dunkel und Hell besser unterscheiden können als Farben.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Kontrastempfindlichkeitsfunktionen

Forscher in der experimentellen Psychologie und vielen anderen Bereichen haben viele Theorien über das menschliche Sehen entwickelt. Und einer von ihnen heißt Kontrastempfindlichkeitsfunktionen. Sie beziehen sich auf räumliche und zeitliche Beleuchtung. Kurz gesagt geht es darum, wie viele Änderungen erforderlich sind, bevor ein Beobachter sie bemerkt. Beachten Sie den Plural des Wortes „Funktion“. Dies liegt daran, dass wir Kontrastempfindlichkeitsfunktionen nicht nur für Schwarzweißbilder, sondern auch für Farbbilder messen können. Die Ergebnisse dieser Experimente zeigen, dass unsere Augen in den meisten Fällen empfindlicher auf Helligkeit als auf Farbe reagieren.

Da wir wissen, dass wir empfindlicher auf die Bildhelligkeit reagieren, können wir versuchen, diese Tatsache zu nutzen.

Farbmodell

Wir haben ein wenig herausgefunden, wie man mit Farbbildern mithilfe des RGB-Schemas arbeitet. Es gibt auch andere Modelle. Es gibt ein Modell, das die Luminanz von der Farbsättigung trennt. Es heißt YCbCr. Es gibt übrigens auch andere Modelle, die eine ähnliche Einteilung vornehmen, aber wir betrachten nur dieses.

In diesem Farbmodell Y ist eine Darstellung der Helligkeit und verwendet außerdem zwei Farbkanäle: Cb (sattes Blau) und Cr (sattes Rot). YCbCr kann von RGB abgeleitet werden, und die umgekehrte Konvertierung ist ebenfalls möglich. Mit diesem Modell können wir Vollfarbbilder erstellen, wie wir unten sehen:

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Konvertieren Sie zwischen YCbCr und RGB

Jemand wird einwenden: Wie ist es möglich, alle Farben zu erhalten, wenn Grün nicht verwendet wird?

Um diese Frage zu beantworten, konvertieren wir RGB in YCbCr. Verwenden wir die in der Norm übernommenen Koeffizienten BT.601, was von der Einheit empfohlen wurde ITU-R. Diese Abteilung setzt die Standards für digitales Video. Zum Beispiel: Was ist 4K? Was sollten Bildrate, Auflösung und Farbmodell sein?

Berechnen wir zunächst die Helligkeit. Lassen Sie uns die von der ITU vorgeschlagenen Konstanten verwenden und die RGB-Werte ersetzen.

Y = 0.299R + 0.587G + 0.114B

Nachdem wir die Helligkeit ermittelt haben, trennen wir die Farben Blau und Rot:

Cb = 0.564 (B - Y)

Cr = 0.713 (R - Y)

Und wir können mit YCbCr auch zurückkonvertieren und sogar grün werden:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Normalerweise verwenden Displays (Monitore, Fernseher, Bildschirme usw.) nur das RGB-Modell. Dieses Modell kann jedoch auf unterschiedliche Weise organisiert werden:

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Farbunterabtastung

Wenn ein Bild als Kombination aus Luminanz und Chrominanz dargestellt wird, können wir die größere Empfindlichkeit des menschlichen Sehsystems gegenüber Luminanz als gegenüber Chrominanz ausnutzen, indem wir gezielt Informationen entfernen. Bei der Chroma-Unterabtastung handelt es sich um eine Methode zur Kodierung von Bildern mit einer geringeren Auflösung für Chroma als für Luminanz.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wie stark darf die Farbauflösung reduziert werden?! Es stellt sich heraus, dass es bereits einige Diagramme gibt, die den Umgang mit Auflösung und Zusammenführung beschreiben (resultierende Farbe = Y + Cb + Cr).

Diese Schemata sind bekannt als Downsampling-Systeme und werden als 3-faches Verhältnis ausgedrückt - a:x:y, das die Anzahl der Abtastwerte von Luminanz- und Farbdifferenzsignalen bestimmt.

a — horizontaler Probenahmestandard (normalerweise gleich 4)
x — Anzahl der Chroma-Samples in der ersten Pixelreihe (horizontale Auflösung relativ zu a)
y – die Anzahl der Änderungen in den Chroma-Samples zwischen der ersten und zweiten Pixelreihe.

Die Ausnahme ist 4:1:0, wodurch in jedem 4x4-Luminanzauflösungsblock ein Chroma-Sample bereitgestellt wird.

Gängige Schemata, die in modernen Codecs verwendet werden:

  • 4:4:4 (kein Downsampling)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 – Fusionsbeispiel

Hier ist ein zusammengeführtes Bild mit YCbCr 4:2:0. Beachten Sie, dass wir nur 12 Bit pro Pixel ausgeben.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

So sieht dasselbe Bild aus, codiert mit den wichtigsten Arten der Farbunterabtastung. Die erste Zeile ist das endgültige YCbCr, die untere Zeile zeigt die Chroma-Auflösung. Sehr gute Ergebnisse, wenn man den leichten Qualitätsverlust bedenkt.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Erinnern Sie sich, als wir 278 GB Speicherplatz zum Speichern einer einstündigen Videodatei mit 720p-Auflösung und 30 Bildern pro Sekunde gezählt haben? Wenn wir YCbCr 4:2:0 verwenden, wird diese Größe um die Hälfte reduziert – 139 GB. Bisher ist es noch weit von einem akzeptablen Ergebnis entfernt.

Sie können das YCbCr-Histogramm selbst mit FFmpeg erhalten. In diesem Bild dominiert Blau gegenüber Rot, was im Histogramm selbst deutlich sichtbar ist.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Farbe, Helligkeit, Farbraum – Videobewertung

Wir empfehlen, dieses tolle Video anzuschauen. Es erklärt, was Helligkeit ist, und im Allgemeinen sind alle Punkte gepunktet ё über Helligkeit und Farbe.

Rahmentypen

Lass uns weitermachen. Versuchen wir, die Zeitredundanz zu beseitigen. Aber lassen Sie uns zunächst einige grundlegende Begriffe definieren. Nehmen wir an, wir haben einen Film mit 30 Bildern pro Sekunde, hier sind die ersten 4 Bilder:

Wie funktioniert ein Videocodec? Teil 1: Grundlagen Wie funktioniert ein Videocodec? Teil 1: Grundlagen Wie funktioniert ein Videocodec? Teil 1: Grundlagen Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wir können viele Wiederholungen in den Frames erkennen: zum Beispiel einen blauen Hintergrund, der sich von Frame zu Frame nicht ändert. Um dieses Problem zu lösen, können wir sie abstrakt in drei Arten von Frames klassifizieren.

I-Frame (Intro-Rahmen)

I-Frame (Referenzrahmen, Schlüsselrahmen, Innenrahmen) ist in sich geschlossen. Unabhängig davon, was Sie visualisieren möchten, ist ein I-Frame im Wesentlichen ein statisches Foto. Das erste Bild ist normalerweise ein I-Bild, aber wir werden regelmäßig I-Bilde beobachten, auch wenn es sich nicht um die ersten Bilder handelt.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

P-Rahmen (Predigierter Rahmen)

P-Frame (Predictive Frame) macht sich die Tatsache zunutze, dass fast immer das aktuelle Bild unter Verwendung des vorherigen Frames reproduziert werden kann. Beispielsweise besteht im zweiten Bild die einzige Änderung darin, dass sich der Ball vorwärts bewegt. Wir können Frame 2 erhalten, indem wir einfach Frame 1 leicht modifizieren und nur die Differenz zwischen diesen Frames verwenden. Um Frame 2 zu konstruieren, beziehen wir uns auf den vorherigen Frame 1.

Wie funktioniert ein Videocodec? Teil 1: GrundlagenWie funktioniert ein Videocodec? Teil 1: Grundlagen

B-Rahmen (Bi-predictive Frame)

Wie wäre es mit Links nicht nur zu vergangenen, sondern auch zu zukünftigen Frames, um eine noch bessere Komprimierung zu ermöglichen?! Dabei handelt es sich grundsätzlich um einen B-Frame (bidirektionaler Frame).

Wie funktioniert ein Videocodec? Teil 1: GrundlagenWie funktioniert ein Videocodec? Teil 1: GrundlagenWie funktioniert ein Videocodec? Teil 1: Grundlagen

Zwischenabhebung

Diese Frame-Typen werden verwendet, um eine bestmögliche Komprimierung zu gewährleisten. Wir werden uns im nächsten Abschnitt ansehen, wie das geschieht. Beachten wir vorerst, dass der I-Frame der „teuerste“ in Bezug auf den Speicherverbrauch ist, der P-Frame deutlich günstiger, aber die rentabelste Option für Videos ist der B-Frame.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Zeitliche Redundanz (Inter-Frame-Vorhersage)

Schauen wir uns an, welche Optionen wir haben, um Wiederholungen im Laufe der Zeit zu minimieren. Wir können diese Art von Redundanz mithilfe von Kreuzvorhersagemethoden lösen.

Wir werden versuchen, so wenig Bits wie möglich für die Codierung einer Folge von Frames 0 und 1 aufzuwenden.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wir können produzieren Subtraktion, subtrahieren wir einfach Frame 1 von Frame 0. Wir erhalten Frame 1, verwenden nur die Differenz zwischen ihm und dem vorherigen Frame, tatsächlich codieren wir nur den resultierenden Rest.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Aber was wäre, wenn ich Ihnen sagen würde, dass es eine noch bessere Methode gibt, die noch weniger Bits verwendet?! Teilen wir zunächst Frame 0 in ein klares Raster aus Blöcken auf. Und dann versuchen wir, die Blöcke von Frame 0 mit Frame 1 abzugleichen. Mit anderen Worten, wir schätzen die Bewegung zwischen Frames.

Aus Wikipedia - Blockbewegungskompensation

Die Blockbewegungskompensation unterteilt den aktuellen Frame in nicht überlappende Blöcke und der Bewegungskompensationsvektor gibt den Ursprung der Blöcke an (ein häufiges Missverständnis ist das). vorheriges Der Frame ist in nicht überlappende Blöcke unterteilt, und Bewegungskompensationsvektoren geben an, wohin diese Blöcke gehen. Tatsächlich ist es jedoch umgekehrt: Es wird nicht der vorherige Frame analysiert, sondern der nächste; es ist nicht klar, wohin sich die Blöcke bewegen, sondern woher sie kommen. Typischerweise überlappen sich die Quellblöcke im Quellrahmen. Einige Videokomprimierungsalgorithmen setzen den aktuellen Frame nicht nur aus Teilen eines, sondern mehrerer zuvor übertragener Frames zusammen.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Während des Bewertungsprozesses sehen wir, dass sich der Ball von (x= 0, y=25) bis (x= 6, y=26), Werte x и y Bestimmen Sie den Bewegungsvektor. Ein weiterer Schritt, den wir tun können, um Bits zu erhalten, besteht darin, nur die Differenz der Bewegungsvektoren zwischen der letzten Blockposition und der vorhergesagten zu kodieren, sodass der endgültige Bewegungsvektor (x=6-0=6, y=26-25=1) ist ).

In einer realen Situation würde dieser Ball aufgeteilt werden n blockiert, aber das ändert nichts am Kern der Sache.

Objekte im Rahmen bewegen sich in drei Dimensionen. Wenn sich der Ball bewegt, kann er optisch kleiner werden (oder größer, wenn er sich auf den Betrachter zubewegt). Es ist normal, dass es keine perfekte Übereinstimmung zwischen Blöcken gibt. Hier ist eine kombinierte Ansicht unserer Schätzung und des tatsächlichen Bildes.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wir sehen jedoch, dass bei Verwendung der Bewegungsschätzung deutlich weniger Daten für die Codierung anfallen als bei Verwendung einer einfacheren Methode zur Berechnung des Deltas zwischen Bildern.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wie eine echte Bewegungskompensation aussehen würde

Diese Technik wird auf alle Blöcke gleichzeitig angewendet. Oftmals wird unser bedingt bewegter Ball in mehrere Blöcke gleichzeitig unterteilt.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Mithilfe dieser Konzepte können Sie sich selbst ein Bild machen Jupiter.

Um Bewegungsvektoren anzuzeigen, können Sie mit ein externes Vorhersagevideo erstellen ffmpeg.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Sie können auch verwenden Intel Video Pro-Analysator (Es ist kostenpflichtig, aber es gibt eine kostenlose Testversion, die auf die ersten zehn Frames beschränkt ist.)

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Räumliche Redundanz (interne Prognose)

Wenn wir jeden Frame in einem Video analysieren, werden wir viele miteinander verbundene Bereiche finden.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Gehen wir dieses Beispiel durch. Diese Szene besteht hauptsächlich aus blauen und weißen Farben.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Dies ist ein I-Frame. Wir können frühere Frames nicht für die Vorhersage verwenden, aber wir können sie komprimieren. Lassen Sie uns die Auswahl des roten Blocks kodieren. Wenn wir uns seine Nachbarn ansehen, stellen wir fest, dass es in seiner Umgebung einige Farbtrends gibt.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wir gehen davon aus, dass sich die Farben vertikal im Rahmen ausbreiten. Das bedeutet, dass die Farbe der unbekannten Pixel die Werte ihrer Nachbarn enthält.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Eine solche Prognose könnte sich als falsch erweisen. Aus diesem Grund müssen Sie diese Methode (interne Prognose) anwenden und dann die tatsächlichen Werte subtrahieren. Dadurch erhalten wir einen Restblock, der im Vergleich zum Original zu einer viel stärker komprimierten Matrix führt.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Wenn Sie mit internen Vorhersagen üben möchten, können Sie mit ffmpeg ein Video von Makroblöcken und ihren Vorhersagen erstellen. Um die Bedeutung jeder Blockfarbe zu verstehen, müssen Sie die ffmpeg-Dokumentation lesen.

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Oder Sie nutzen den Intel Video Pro Analyzer (wie ich oben erwähnt habe, ist die kostenlose Testversion auf die ersten 10 Bilder beschränkt, das wird Ihnen aber zunächst ausreichen).

Wie funktioniert ein Videocodec? Teil 1: Grundlagen

Der zweite Teil: So funktioniert der Videocodec

Source: habr.com

Kommentar hinzufügen