P-Frame – Wikipedia
Die Nutzung differenzkodierter Einzelbilder (predictive-coded picture) ist ein Verfahren in der digitalen Videokompression. Es handelt sich um Einzelbilder (englisch frame), die über die Differenz zu vorhergehenden Einzelbildern beschrieben werden (eine sogenannte Delta-Kodierung), ein Typ sogenannter Inter-Bilder. Im Unterschied zu Intra-Bildern, die unabhängig dekodierbar sind, wird so ein Teil des Bildes per Referenz auf in einem anderen Einzelbild bereits vorhandene Bilddaten beschrieben, womit sich eine Reduzierung der benötigten Datenmenge ergibt, wodurch letztlich bessere Kompressionsraten erreicht werden können. Ein P-Bild besteht also teils aus Intra-Makroblöcken (eigenständige, vollständige Bildteile) und teils aus rekonstruierten Makroblöcken, die sich auf ein vorhergesagtes Bildsignal stützen. Zur Vorhersage wird das zu kodierende Video analysiert und in Objekte mit Bewegungsrichtungen und -geschwindigkeiten (Bewegungsvektoren) zerlegt, womit sich dann Bilder vorhersagen lassen. Durch die Nutzung von Bildvorhersage ergeben sich Gruppen untereinander abhängiger kodierter Bilder mit jeweils mindestens einem unabhängig dekodierbaren Bild (I-Bild) – die sogenannte Bildergruppe oder englisch Group of Pictures (GoP). Neuere Verfahren wie H.264 können den Vorhersage-Typ des Bildes auch für Teilbilder unterschiedlich wählen. So ergeben sich beim H.264-Beispiel sogenannte P-Slices auf Makroblock-Basis.
P-Bilder finden in den meisten wichtigen Video-Codecs Anwendung.
Bei der Bildvorhersage wird jedes Bild in einer Reihe von Bildern in verschiedenen Bildtypen klassifiziert:
- Intra Coded Picture (I-Frame) ist ein unabhängiges Bild, das keinen Verweis auf die anderen Bilder braucht, um decodiert zu werden. Es ist das erste Bild der Reihe.
- Predictive Coded Picture (P-Frame) verwenden bei der Codierung Informationen aus vorausgegangenen I- oder P-Frames
- Bidirectional Coded Picture (B-Frame) verwendet sowohl aus den vorangegangenen, als auch folgenden Bildern (Frames) Informationen.
Nachteile
[Bearbeiten | Quelltext bearbeiten]Bei der Dekodierung müssen die benötigten vorhergehenden Bilder aufbewahrt werden. Dadurch ergibt sich die Notwendigkeit größerer Puffer. Für die Dekodierung eines P-Bildes muss die ganze Kette aufeinander aufbauender Bilder seit dem letzten I-Bild dekodiert werden, was beim Anspringen einer beliebigen Position in einer Datei oder dem Einstieg in einen Stream Probleme bereitet beziehungsweise zu Verzögerungen führt. Oft wird daher zumindest eine Mindesthäufigkeit von I-Bildern erzwungen.