I-Frame, P-Frame, B-Frame der Videokodierung

1. Prinzipien der Videoübertragung
     Video nutzt das Prinzip der Persistenz des Sehvermögens des menschlichen Auges, um dem menschlichen Auge durch die Wiedergabe einer Reihe von Bildern das Gefühl einer Bewegung zu vermitteln. Durch die einfache Übertragung von Videobildern ist das Videovolumen sehr groß, was für vorhandene Netzwerke und Speicher nicht akzeptabel ist. Um die Videoübertragung und -speicherung zu erleichtern, stellen die Leute fest, dass Videos viele wiederholte Informationen enthalten. Wenn die wiederholten Informationen auf der Sendeseite entfernt und auf der Empfangsseite wiederhergestellt werden, wird die Dateigröße der Videodaten erheblich reduziert Es gibt den H.264-Videokomprimierungsstandard.

      Im H.264-Komprimierungsstandard werden I-Frames, P-Frames und B-Frames zur Darstellung übertragener Videobilder verwendet. Bei der Videokomprimierung stellt jedes Bild ein Standbild dar. Bei der eigentlichen Videokomprimierungskodierung werden verschiedene Algorithmen eingesetzt, um die Datenkapazität zu reduzieren, wobei IPB-Frame der am häufigsten verwendete Algorithmus ist.
     
2. Prädiktive Codierung

       Die prädiktive Codierung wird in prädiktive Codierung innerhalb von Frames und Interframes unterteilt

       1. Prädiktive Intra-Frame-Codierung

         ICH

         Ein I-Frame wird auch als Intra-Frame-codierter Frame bezeichnet, der auch als komprimierter Vollbild-codierter Frame bezeichnet wird. Es ist ein unabhängiger Frame mit allen Informationen und kann unabhängig decodiert werden, ohne auf andere Bilder zu verweisen. Es kann einfach als a verstanden werden statische Bildoberfläche. Der erste Frame in einer Videosequenz ist immer ein I-Frame, da es sich um einen Keyframe handelt. Der I-Frame ist normalerweise der erste Frame jeder GOP (eine von MPEG verwendete Videokomprimierungstechnologie), der mäßig komprimiert und als Referenzpunkt für den Direktzugriff verwendet wird, der als statisches Bild betrachtet werden kann.

        2. Prädiktive Codierung zwischen Frames

         (1) P-Frame
        Der P-Frame wird auch als Inter-Frame-Predictive-Coding-Frame oder Forward-Predictive-Coding-Frame bezeichnet und muss sich zum Codieren auf den vorherigen I-Frame beziehen. Zeigt den Unterschied zwischen dem aktuellen Frame und dem vorherigen Frame an (der vorherige Frame kann ein I-Frame oder ein P-Frame sein). Bei der Dekodierung ist es notwendig, die in diesem Frame definierte Differenz mit dem zuvor zwischengespeicherten Bild zu überlagern, um das endgültige Bild zu erzeugen. Im Vergleich zu I-Frames belegen P-Frames normalerweise weniger Datenbits. Der Nachteil besteht jedoch darin, dass P-Frames aufgrund ihrer komplexen Abhängigkeiten von vorherigen P- und I-Referenzframes sehr empfindlich gegenüber Übertragungsfehlern sind. Normalerweise werden die zeitredundanten Informationen des vorherigen codierten Frames in der Bildsequenz vollständig entfernt, um das codierte Bild mit dem Übertragungsdatenvolumen zu komprimieren, was auch als prädiktiver Frame bezeichnet wird.

         (2) B-Frame
        Ein B-Frame wird auch als bidirektionaler prädiktiver Codierungsrahmen bezeichnet, der auch als bidirektionaler prädiktiver Interpolationscodierungsrahmen bezeichnet wird. Das heißt, der B-Frame zeichnet die Differenz zwischen dem aktuellen Frame und dem vorherigen und nachfolgenden Frame auf. Das heißt, um das B-Bild zu dekodieren, muss nicht nur das vorherige zwischengespeicherte Bild abgerufen werden, sondern auch das dekodierte Bild, und das endgültige Bild kann durch Überlagern der Vorder- und Rückseitenbilder mit den aktuellen Bilddaten erhalten werden. B-Frames haben eine hohe Komprimierungsrate, erfordern jedoch eine hohe Decodierungsleistung. Berücksichtigt man sowohl die codierten Frames vor der Quellbildsequenz als auch die Zeitredundanzinformationen zwischen den codierten Frames hinter der Quellbildsequenz, um das codierte Bild des Übertragungsdatenvolumens zu komprimieren, wird dies auch als bidirektionaler prädiktiver Frame bezeichnet.
         3. Verstehen Sie I-, P- und B-Frames aus der Perspektive der Dekodierung

         I-Frame: Es kann durch den Videodekomprimierungsalgorithmus in ein einzelnes vollständiges Videobild dekomprimiert werden. Das I-Frame entfernt also die redundanten Informationen des Videoframes in der räumlichen Dimension.

        P-Frame: Sie müssen sich auf den vorherigen I-Frame oder P-Frame beziehen, um ihn in ein vollständiges Videobild zu dekodieren.

        B-Frame: Um ein vollständiges Videobild zu generieren, muss auf den vorherigen I-Frame oder P-Frame und einen nachfolgenden P-Frame verwiesen werden, sodass der P-Frame und der B-Frame die redundanten Informationen des Videoframes in der Zeitdimension entfernen.

       4. Zusammenfassung:
       Der I-Frame muss nur den aktuellen Frame berücksichtigen, der P-Frame zeichnet den Unterschied zum vorherigen Frame auf, der B-Frame zeichnet den Unterschied zwischen dem vorherigen Frame und dem nächsten Frame auf, wodurch mehr Platz gespart und das Video erstellt werden kann Die Datei ist kleiner, aber relativ gesehen ist die Dekodierung problematisch. Da beim Dekodieren nicht nur das zuvor zwischengespeicherte Bild verwendet werden muss, sondern auch das nächste I- oder P-Bild bekannt sein muss, kann es bei Playern, die die B-Frame-Dekodierung nicht unterstützen, leicht stecken bleiben.

Guess you like

Origin blog.csdn.net/github_27263697/article/details/124715085