-
Die vorliegende Erfindung betrifft
das Gebiet der digitalen Bildsignalverarbeitung und insbesondere
ein Verfahren und eine Vorrichtung zum Komprimieren von Videoinformationen,
die aus mehreren bewegungsabhängigen
Prädiktionen
ausgewählt werden.
-
Videoinformationsübertragungssysteme verwenden
Videokomprimierung zur Verringerung der Menge an übertragenen
Videodaten. Dadurch kann weniger Übertragungsbandbreite, Übertragungszeit und
Speicherkapazität
benutzt werden. Eine häufig verwendete
Technik zum Komprimieren von Videoinformationen, die zum Beispiel
in einem Fernsehsignal enthalten sind, verringert redundante zeitliche Bildinformationen,
die in sukzessiven Bildern einer Bildsequenz auftreten. Redundante
zeitliche Bildinformationen sind Informationen, die statischen Bildsegmenten
zugeordnet sind, oder Bildsegmenten, die zwischen sukzessiven Bildern
lediglich eine Verschiebung erfahren. Diese Bildsegmente werden identifiziert
und so codiert, daß die
redundanten zeitlichen Bildinformationen zum großen Teil aus den übertragenen
Videodaten eliminiert sind. Die übertragenen
Videodaten werden entsprechend codiert, um eine Rekonstruktion eines
Bildes aus anderen übertragenen
Bildern und die Einfügung
dieser codierten Bildsegmente im Empfänger zu ermöglichen. Diese Technik der
Komprimierung zeitlicher Informationen erfordert, daß der Grad
an Bewegung, der für
konstituierende Blöcke
eines Bildes relativ zu anderen vorherigen oder nachfolgenden Bildern
auftritt, abgeschätzt
wird. Mit diesen Bewegungsschätzungen,
die als Bewegungsvektoren bezeichnet werden, werden die Videodaten
so codiert, daß aus
vergangenen oder zukünftigen
Bildern ein Bild prädiziert
werden kann. Dieser Vorgang wird als bewegungskompensierte Prädiktion
bezeichnet und ist wohl bekannt.
-
Ein häufig verwendeter Videokomprimierungsstandard,
der bewegungskompensierte Prädiktion
verwendet, ist der Bildcodierungsstandard MPEG (Moving Pictures
Expert Group) (ISO/IEC 13818-2, 10.5.1994). In diesem Format codierte
Videodaten bestehen aus einer zyklischen Sequenz sukzessiver Bilder
oder Einzelbilder codierter Daten. Bestimmte Bilder (I-Bilder) werden
intracodiert, d.h. nur aus Informationen innerhalb des Bildes selbst
codiert. Andere Bilder (P-Bilder) werden vorwärts prädiktiv codiert, d.h. unter
Verwendung bewegungskompensierter Prädiktion aus vergangenen I-Bildern oder P-Bildern
codiert. Die übrigen
Bilder (B-Bilder) werden
sowohl vorwärts-
als auch rückwärts prädiktiv codiert,
d.h. sie werden unter Verwendung bewegungskompensierter Prädiktion
aus vergangenen oder zukünftigen
I-Bildern oder P-Bildern codiert. P- und B-Bilder werden deshalb prädiktiv so
codiert, daß die
Bildwiedergabe aus P- oder B-Bildern aus vorherigen decodierten
I- oder P-Bildern abgeleitete Informationen erfordert. Im Gegensatz
dazu werden I-Bilder nicht prädiktiv
codiert und Bilder können
aus einzelnen I-Bildern
oder Einzelbildern reproduziert werden.
-
Es müssen viele Bewegungsvektoren
berechnet werden, um die komprimierten, prädiktiv codierten MPEG-P- und-
B-Bilder zu bilden.
Dies stellt ein Problem dar, da die Bewegungsvektorberechnung eine
zeitaufwendige und rechenintensive Aufgabe ist. Folglich ist kostspielige
und komplexe Hardware erforderlich, um die zur Erzeugung der übertragenen
komprimierten Videodaten notwendigen Bewegungsvektorberechnungen
durchzuführen.
-
Aus
US
5,412,435 ist die Bewegungsschätzung an verschiedenen Feldern,
einschließlich
Nahfeld- und Fernfeldbewegungsschätzung, bekannt. Aus dieser
Literaturstelle ist außerdem
bekannt, die Anzahl von Bewegungsvektorberechnungen zu reduzieren,
indem erst ein Bewegungsschätzungstyp
verwendet und dann das Ergebnis zur Durchführung einer Startpositionsableitung
für die
anderen Bewegungsschätzungen
verwendet wird. Die Anzahl von Bewegungsvektorberechnungen ist jedoch
immer noch relativ groß.
-
Ein offengelegtes Videosignalkomprimierungssystem
gemäß den Prinzipien
der vorliegenden Erfindung führt
auf Bewegungsvektoren basierende Prädiktionen unter Verwendung
einer verringerten Anzahl von Bewegungsvektorberechnungen durch. Das
offengelegte Videosignalkomprimierungssystem berechnet einen oder
mehrere Bewegungsvektoren und extrapoliert den Rest der erforderlichen
Bewegungsvektorwerte aus diesen anfänglichen berechneten Werten.
Extrapolierte Bewegungsvektoren werden durch zeitliches Skalieren
anfänglich
berechneter Bewegungsvektorwerte berechnet.
-
Bildrepräsentative MPEG-kompatible Videoeingangsdaten
werden in Eingangspixelblöcke
umgesetzt. Für
einen ersten Eingangspixelblock werden Kandidaten-Prädiktionsblöcke in einem
ersten Feld und zugeordnete Bewegungsvektoren durch Verwendung einer
Blockvergleichssuche bestimmt. Aus den zugeordneten Bewegungsvektoren
werden weitere Bewegungsvektoren extrapoliert und zur Identifizierung
weiterer Kandidaten-Prädiktionsblöcke in einem
zweiten Feld verwendet. Das Verfahren der Berechnung dieser Bewegungsvektoren
hängt von
der Bewegungsvektorparität
zuvor prädizierter
Pixelblöcke,
die dem ersten Eingangspixelblock benachbart sind, ab. Die Kandidaten-Prädiktionsblöcke werden miteinander
verglichen und einer der Blöcke
wird ausgewählt.
Der ausgewählte
Block wird komprimiert, um einen Ausgangsblock zu erhalten, der
zu einem Datenpaket formatiert wird, um die komprimierten Videoaungangsdaten
zu erhalten.
-
Gemäß einem Merkmal der Erfindung
wird eine Vorrichtung zur Bereitstellung komprimierter Videoausgangsblöcke an einem
Ausgangsanschluß unter
Verwendung von Bewegungsvektorextrapolation offengelegt.
-
Kurze Beschreibung der
Zeichnungen
-
Es zeigen:
-
1 die
relevanten Feldbeziehungen bei Bewegungsvektoren derselben Feldparität (SFP) und
entgegengesetzten Feldparität
(FP).
-
2 den
linken und oberen Makroblock eines Bildes, das decodiert werden
soll, wofür
alle notwendigen Bewegungsvektoren berechnet werden.
-
3 zeigt
einen Zustand, in dem der Block oberhalb (TB) eines aktuellen Makroblocks
(CM) und ein Block links (LB) eines aktuellen Makroblocks in einem
zu codierenden Bild dieselbe Feldparität aufweisen.
-
4 zeigt
den Zustand, wodurch der Block oberhalb (TB) eines aktuellen Makroblocks
und ein Block links (LB) eines aktuellen Makroblocks in einem zu
codierenden Bild gemischte Feldparität aufweisen.
-
5-6 ein Flußdiagramm gemäß der Erfindung,
das ein Verfahren zur Bestimmung der besten prädizierten Makroblöcke für die Komprimierung
unter Verwendung einer reduzierten Anzahl von Bewegungsvektorberechnungen
darstellt.
-
7 eine
in dem Flußdiagramm
von 5-6 verwendete Bewegungsvektorskalierung.
-
8 einen
Perturbationssuchprozeß,
der verwendet wird, um die geschätzten
Bewegungsvektorwerte in dem Flußdiagramm
von 5-6 zu verfeinern.
-
9 ein
Flußdiagramm
gemäß der Erfindung
zur Bestimmung des besten Einzelbild-prädizierten Makroblocks und des
zugeordneten Bewegungsvektors MV1.
-
10 eine
MPEG-kompatible Codierervorrichtung gemäß den Prinzipien der vorliegenden
Erfindung.
-
Der MPEG-Standard läßt verschiedene
Methoden zur prädiktiven
Codierung der P- und B-Bilder zu. Jede dieser Methoden erfordert
die Berechnung von Bewegungsvektoren. Das prädiktiv zu codierende Bild wird
in Blöcke
(aktuelle Blöcke)
unterteilt und die Blöcke
werden blockweise unter Verwendung der berechneten Bewegungsvektoren
prädiziert.
Im MPEG-Standard
werden die Blöcke
als Makroblöcke bezeichnet
und weisen eine ausgewiesene Größe von 16 × 16 Bildelementen
(Pixel) auf. Für
jeden gerade prädizierten
Makroblock können
mehrere Kandidaten-Prädiktionsmakroblöcke gebildet
werden, indem zum Beispiel eine auf Einzelbildern basierende, eine
auf Feldern basierende und eine „Doppelprim"-Codierung verwendet wird. Aus diesen
zu komprimierenden und übertragenden
Kandidaten-Prädiktionsmakroblöcken wird
die beste Prädiktion
für einen
bestimmten aktuellen Makroblock (CM) ausgewählt.
-
Der Abschnitt 7.6.3.3 und die Tabellen
7–9, 7–10 des
MPEG-Standards definieren 5 verschiedene Bewegungsvektoren, die
berechnet werden können,
um die Kandidaten-P-Bildmakroblockprädiktionen
zu bilden, und 10 verschiedene Bewegungsvektoren für die Kandidaten-B-Bild-Makroblockprädiktionen
(MPEG-Bildcodierungsstandard, IS/IEC 13818-2, 10.5.1994). Bei der
B-Bildprädiktion
werden die 5 P-Bildprädiktionsbewegungsvektoren
nicht nur in der Vorwärtsprädiktionsrichtung
angewandt, sondern auch in der Rückwärtsprädiktionsrichtung.
Die Prinzipien der Erfindung, die beschrieben werden sollen, gelten
für die
10 B-Bildbewegungsvektoren und
der Einfachheit halber wird nur P-Bildprädiktion beschrieben.
-
Die 5 P-Bildbewegungsvektoren werden nachfolgend
identifiziert. Die Feldbeziehungen der Feldbewegungsvektoren MV2-MV5
sind in 1 dargestellt.
Die Bewegungsvektoren MV2 und MV3 weisen die gleiche Feldparität (SFP)
auf, da sie Vektoren zwischen demselben Feld verschiedener Einzelbilder
sind, und jeder Vektor wird als ein Gleichfeldparitätsbewegungsvektor
(SFPMV) bezeichnet. Die Bewegungsvektoren MV4 und MV5 weisen entgegengesetzte
Feldparität
(FP) auf, da sie Vektoren zwischen verschiedenen Feldern verschiedener
Einzelbilder sind, wie in 1 dargestellt,
und jeder Vektor wird als ein Gegenfeldparitätsbewegungsvektor (FPMV) bezeichnet.
-
MV1 |
Einzelbildbewegungsvektor
aus dem gerade zu dem gespeicherten Bild codierten Bild. |
MV2 |
Bewegungsvektor
aus Feld 1 (f1) des gerade codierten Bildes zu Feld 1 (f1) des gespeicherten Bildes
(ein SFPMV). |
MV3 |
Bewegungsvektor
aus Feld 2 (f2) des gerade codierten Bildes zu Feld 2 (f2) des gespeicherten Bildes
(ein SFPMV). |
MV4 |
Bewegungsvektor
aus Feld 2 (f2) des gerade codierten Bildes zu Feld 1 (f1) des gespeicherten Bildes
(ein FPMV). |
MV5 |
Bewegungsvektor
aus Feld 1 (f1) des gerade codierten Bildes zu Feld 2 (f2) des gespeicherten Bildes
(ein FPMV). |
-
5-6 zeigen ein Verfahren gemäß der Erfindung
zur Erzeugung eines besten prädizierten
Makroblocks für
jeden aktuellen Makroblock eines Einzelbildes. Dies geschieht durch
Verwendung einer reduzierten Anzahl von Berechnungen, um die erforderlichen
Bewegungsvektoren zu erhalten, und gestattet folglich die Verwendung
einfacherer, weniger kostspieliger Hardwareimplementierungen. Der
erhaltene Vorteil ist bei bezüglich
Kosten und Größe eingeschränkten Videocodierungsanwendungen,
wie zum Beispiel Videokameras, von besonderem Wert. Genauer gesagt
erfolgt bei dem Verfahren von 5-6 eine Verringerung der Anzahl
von Berechnungen bei der Identifizierung der Kandidaten-Prädiktionsmakroblöcke und
bei . der Erhaltung ihrer zugeordneten Bewegungsvektoren MV1–MV5 und
der MSE-Werte (Mean
Squared Error). Ein MSE-Wert eines Kandidaten-Prädiktionsblocks ist der berechnete mittlere
quadratische Fehler zwischen den Pixelwerten des Kandidaten-Prädiktionsblocks
und den entsprechenden Pixelwerten des aktuellen Makroblocks, den
er prädiziert.
bwohl das Verfahren von 5-6 im Kontext eines MPEG-Codierungssystems beschrieben
wird, gelten die Prinzipien der Erfindung auch für andere Videokomprimierungssysteme.
-
Als Übersicht werden im Schritt 15 von 5 nach dem Start im Schritt 10 die
besten Prädiktionsblöcke und
die zugeordneten Bewegungsvektoren MV1–MV5 für den oberen und linken Bildmakroblock bestimmt.
In den Schritten 23–70 werden
dann die beiden besten Feldprädiktionsblöcke und
die zugeordneten Feldbewegungsvektoren für die übrigen aktuellen Makroblöcke für Feld 1
und Feld 2 des codierten Einzelbildes bestimmt. Dies geschieht mit
einer reduzierten Anzahl von Berechnungen unter Verwendung eines
Verfahrens gemäß der Erfindung.
Im Schritt 80 werden auch die Einzelbild-Prädiktionsmakroblöcke und
der zugeordnete Einzelbildbewegungsvektor MV1 für die übrigen aktuellen Makroblöcke des
Bildes bestimmt. Dies geschieht unter Verwendung eines Verfahrens
gemäß der Erfindung,
bei dem eine reduzierte Anzahl von Berechnungen auftritt. Als letztes
werden im Schritt 85 die Einzelbild- und Feld-Prädiktionsmakroblöcke miteinander
verglichen und der beste Prädiktionsblock
für jeden
der übrigen
Bildmakroblöcke
auf der Basis des MSE wird entsprechend den Übertragungssystemdatenratenbegrenzungen
ausgewählt.
Die gewählten
besten Prädiktionsmakroblöcke, die
entweder Feld- oder Einzelbild-Prädiktionsmakroblöcke sein
können,
sind die Makroblöcke,
die letztendlich komprimiert und übertragen werden.
-
Unter ausführlicher Bezugnahme auf 5-6 werden die aktuellen Makroblöcke des
prädizierten
Einzelbildes in Schritt 15 von 5 nach dem Start in Schritt 10 eingegeben.
Im Schritt 15 wird für jeden
aktuellen Makroblock in einem vorbestimmten „Referenzbereich" des Einzelbildes
der beste Prädiktionsmakroblock
bestimmt. Bei der bevorzugten Ausführungsform werden die aktuellen
Makroblöcke
in dem Referenzbereich, der aus dem oberen und linken Rand des Einzelbildes
besteht (siehe 2), bestimmt.
Jeder beste Prädiktionsmakroblock
wird durch Ausführen
einer vollen „Blockvergleichssuche" erhalten. Eine solche
volle „Blockvergleichssuche" ist ein bekanntes
Verfahren zum Identifizieren eines Suchmakroblocks in einem gespeicherten
Bild, der die „beste Übereinstimmung" mit einem aktuellen Makroblock
ist. Der „am
besten übereinstimmende" Suchmakroblock wird
als der Prädiktionsmakroblock für den entsprechenden
aktuellen Makroblock gewählt.
-
Bei der Durchführung der Blockvergleichssuche
wird der aktuelle Makroblock in einer Region eines prädizierten
Bildes mit allen Suchmakroblöcken verglichen.
Die Makroblöcke
werden verglichen, indem der MSE zwischen jedem Suchmakroblock und dem
aktuellen Makroblock als eine Anzeige der Korrelation zwischen den
beiden Makroblöcken
berechnet wird. Der „am
besten übereinstimmende
Block" mit dem niedrigsten
MSE-Wert wird als der Prädiktionsmakroblock
ausgewählt.
Als Alternative zu dem MSE können
auch andere Vergleichskriterien, wie zum Beispiel mittlerer absoluter
Fehler (MAE) bei einer Blockvergleichssuche verwendet werden, oder auch
eine andere Art von Auswahlprozeß als Maß der Korrelation.
-
Im Schritt 15 werden unter
Verwendung des Blockvergleichssuchprozesses die Bewegungsvektoren
MV1– MV5
der aktuellen Makroblöcke
des oberen und linken Rands bestimmt. Die Bewegungsvektoren MV1–MV5 für jeden
aktuellen Makroblock werden durch die Vektorverschiebungen zwischen
dem aktuellen und dem entsprechenden Prädiktionsmakroblock, der durch
den Suchprozeß identifiziert
wird, gegeben. Der beschriebene Blockvergleichssuchprozeß ist bekannt
und kann unter Verwendung handelsüblicher integrierter Schaltungen
zur Bewegungsschätzung,
wie zum Beispiel des Bausteins STI3220 von SGS-Thomson, implementiert
werden.
-
Die besten Prädiktionsmakroblöcke und
die zugeordneten Bewegungsvektoren für jeden der verbleibenden aktuellen
Makroblöcke
des Bildes werden dann bestimmt. Schritt 15 liefert, daß die aktuellen Makroblöcke der
Reihe nach genommen werden, und zwar von der oberen linken Ecke
bis zur unteren rechten Ecke von Feld 1 des prädizierten
Einzelbildes, gefolgt durch Feld 2 dieses Einzelbildes.
Dadurch wird sichergestellt, daß die
beste Prädiktion
für den
Block oberhalb (TB) und den Block links (LB) des aktuellen Makroblocks
bereits bestimmt wurden. Die aktuellen Makroblöcke können als Alternative in jeder beliebigen
Reihenfolge genommen werden, die diese Anforderung erfüllt.
-
Die Bestimmung der Feld-Prädiktionsmakroblöcke unter
Verwendung einer reduzierten Anzahl von Berechnungen gemäß der Erfindung
beginnt im Schritt 20. Schritt 20 liefert, daß eine Blockvergleichssuche
durchgeführt wird,
und die Bewegungsvektoren MV2-MV5 werden durch Ausführen des
entsprechenden Flußdiagrammweges,
der zwischen den Schritten 23 und 70 liegt, berechnet.
Die Ausführung des
Schritts 23, gefolgt durch den entsprechenden Flußdiagrammweg,
wird zuerst für
Feld 1 und dann für
Feld 2 des aktuellen Makroblocks durchgeführt.
-
Im Schritt 23 von 5 werden die Bewegungsvektorfeldparität der besten
Prädiktionsmakroblöcke LB sowie
TB des aktuellen Makroblocks in dem aktuellen Feld (CF) untersucht.
Wenn zum Beispiel der TB und der beste Prädiktionsmakroblock von TB beide
in Feld 1 (f1) oder Feld 2 (f2) ihrer jeweiligen Bilder liegen,
ist TB ein Makroblock mit Gleichfeldparität (SFP) mit einem Gleichfeldparitätsbewegungsvektor
(SFPMV). Ähnlich
ist, wenn LB und der beste Prädiktionsmakroblock
von LB in verschiedenen Feldern ihrer jeweiligen Bilder liegen,
LB von entgegengesetzter Feldparität (FP) mit einem Gegenfeldparitätsbewegungsvektor
(FPMV). 3 zeigt den
Zustand, in dem sowohl TB als auch LB SFP sind, d.h. beide dieselbe
Feldparität
wie der aktuelle Makroblock aufweisen. 4 zeigt den Zustand, in dem TB ein SFP-Makroblock
und LB ein FP-Makroblock ist, d.h. TB und LB weisen gemischte Feldparität auf und
besitzen Mischfeldparitätsbewegungsvektoren
(MFPMV). Abhängig
von der TB- und LB-Paritätsbestimmung
von Schritt 23 besitzen TB und LB deshalb entweder beide
einen Gleichfeldparitätsbewegungsvektor
(SFPMV), beide Gegenfeldparitätsbewegungsvektoren
(FPMV) oder sie besitzen Mischfeldparitätsbewegungsvektoren (MFPMV). Wenn
TB und LB den SFPMV-Typ aufweisen, werden die Schritte 25, 30, 32, 35 und 37 durchgeführt. Ähnlich werden,
wenn TB und LB den FPMV-Typ aufweisen, die Schritte 45, 50, 52, 55 und 57 durchgeführt. Wenn
TB und LB den MFPMV-Typ aufweisen, werden die Schritte 65 und 70 durchgeführt. Im Schritt 70 werden
abhängig
von der Bewegungsvektorfeldparität
des TB- und des LB- Makroblocks
mit dem niedrigsten MSE-Wert entweder die Wegprozesse von SFPMV
(Schritte 25–37)
oder FPMV (Schritte 45–57)
durchgeführt.
-
Das Flußdiagramm von 5-6 teilt
sich nach Schritt 23 in 3 Wege für die Schritte 25–70 auf. Der
erste Weg (Schritte 25–37)
wird ausgeführt, wenn
die besten Prädiktionsmakroblöcke TB und
LB beide den SFPMV-Typ aufweisen. Dann ist die Bedingung des Schritts 25 erfüllt und
die Flußdiagrammausführung wird
mit Schritt 30 fortgesetzt. Im Schritt 30 wird
eine Blockvergleichssuche durchgeführt, wie zuvor beschrieben
und bekannt ist, um einen am besten übereinstimmenden Makroblock
in einem gespeicherten Bild für
den aktuellen Makroblock in dem aktuellen Feld auf der Basis des
mittleren quadratischen Fehlers (MSE) zu identifizieren. Diese Suche
wird in demselben relativen Feld (f1 und f2) des gespeicherten Bildes
wie dem des aktuellen Makroblockfeldes in dem prädizierten Einzelbild durchgeführt. Dann
wird aus der Vektorverschiebung zwischen dem aktuellen Makroblock
und dem am besten übereinstimmenden
Makroblock in dem gespeicherten Bild der Gleichfeldparitätsbewegungsvektor (SFPMV)
berechnet.
-
Im Schritt 32 wird der Skalenfaktor
K ausgewählt,
um die im Schritt 35 durchgeführte Schätzung eines Bewegungsvektors
zu optimieren. Im Schritt 32 wird ein Skalenfaktor K ausgewählt, der
den berechneten Gleichfeldparitätsbewegungsvektor
(SFPMV) von Schritt 30 linear skaliert, um eine Schätzung des Gegenfeldparitätsbewegungsvektors
(FPMV) zu erhalten. Der SFPMV wird auf der Basis der Differenz der
vergangenen Zeit zwischen dem aktuellen und dem Prädiktionsmakroblock,
die dem SFPMV zugeordnet sind, und der vergangenen Zeit zwischen
dem aktuellen und prädizierten
Makroblock, der dem geschätzten
FPMV zugeordnet ist, linear skaliert. Zum Beispiel zeigt
-
7 die
Bestimmung von K-Werten für
die Schätzung
des FPMV in zwei Fällen.
Im Fall 1 wird für
einen berechneten SFPMV 1 zwischen Makroblockmittelpunkten
A (Einzelbild 2, Feld 1) und B (Einzelbild 1,
Feld 1) ein K-Wert von 0,5 berechnet, und der FPMV 1 zwischen
den Makroblockmittelpunkten A und B1 (Einzelbild 1, Feld 2)
wird als 0,5 * SFPMV 1 geschätzt. Der Grund dafür besteht
darin, daß in
einer Approximation bis zur ersten rdnung die Zeit zwischen A und
B1 (T) das 0,5-fache
der Zeit zwischen A und B (2T) beträgt. Ähnlich wird im Fall 2 für den SFPMV 2 zwischen
den Makroblockmittelpunkten C (Einzelbild 2, Feld 2)
und D (Einzelbild 1, Feld 2) ein K-Wert von 1,5
berechnet, und der FPMV 2 zwischen den Makroblockmittelpunkten
C und D1 (Einzelbild 2, Feld 2) wird als 1,5 *
SFPMV 2 geschätzt.
Der Grund dafür
besteht darin, daß in
einer Approximation bis zur ersten rdnung die Zeit zwischen C und
D1 (3T) das 1,5-fache der Zeit zwischen C und D (2T) beträgt. T ist
in diesen Beispielen der Zeitraum zwischen sukzessiven Feldern.
Eine ähnliche
Zeitskalierungs-Bewegungsvektorschätzung wird bei der Prädiktion
des Typs „Doppelprim" angewandt (Abschnitt
7.6.3.6 des MPEG-Bildcodierungsstandards, ISO/IEC 13818-2, 10.5.1994).
-
Obwohl bei der bevorzugten Ausführungsform
eine Linearskalierung erster rdnung verwendet wird, können auch
alternative Skalierungsmethoden verwendet werden. Die zuvor besprochene
Skalierungsmethode kann ohne weiteres erweitert werden, um zum Beispiel
eine Bewegungsvektorschätzung zwischen
nicht sukzessiven Bildern bzw. Bildern, die um variable Zeiträume auseinanderliegen,
abzudecken. Die Skalierung kann auch eine vertikale Verschiebung
zwischen den Zeilen von Feldern verschiedener Parität, so wie
sie bei der MPEG„Doppelprim"-Prädiktion
verwendet wird, kompensieren. bwohl die Erfindung im Kontext von
Bildern beschrieben wird, die aus zwei verschachtelten Feldern zusammengesetzt
sind, können
die Prinzipien der Erfindung und des Bewegungsvektorschätzprozesses auch
auf Bildsequenzen angewandt werden, die aus nichtverschachtelten
(Progressiv-Scan-)Bildsequenzen zusammengesetzt sind. In solchen
Sequenzen kann jedes Bild in der Sequenz als ein Einzelbild betrachtet
werden.
-
Im Schritt 35 (5-6) wird der im Schritt 32 bestimmte
K-Wert mit dem im Schritt 30 erhaltenen SFPMV multipliziert,
um einen geschätzten
FPMV zu erhalten, wie in den obigen Fällen 1 und 2 exemplifiziert
wird. Ein Feld-Prädiktionsmakroblock
wird in dem gespeicherten Bild unter Verwendung dieses anfänglichen
geschätzten
FPMV identifiziert. Der anfängliche
geschätzte
FPMV wird im Schritt 35 durch Perturbieren des (FPMV-)Bewegungsvektors
in einer Region um die identifizierte Makroblockmitte weiter optimiert,
um zusätzliche
lokale Prädiktionsmakroblöcke zu finden.
Der beste Feld-Prädiktionsmakroblock
und der optimale geschätzte
FPMV können dann
durch Berechnen der zugeordneten MSE-Werte dieser lokalen Prädiktionsblöcke identifiziert
werden. Der lokale Makroblock mit dem niedrigsten MSE wird als der
optimale lokale Makroblock ausgewählt, und sein zugeordneter
FPMV wird als der optimale FPMV-Wert ausgewählt.
-
8 zeigt
die Perturbation des anfänglichen
geschätzten
FPMV um das Mittenpixel (W) des zugeordneten anfänglichen identifizierten Makroblocks.
Die perturbierte FPMV-Suche wird für die acht Makroblöcke mit
den acht als „Z" markierten Pixeln
als Mittelpunkte durchgeführt.
Die Suchregion um W kann vergrößert oder
verkleinert werden, um je nach Fall den Berechnungseinschränkungen
des Systems zu genügen.
Die Entscheidung, eine Perturbationssuche durchzuführen, kann
abhängig
von einem Schätzqualitätskriterium,
wie zum Beispiel des Betrags des FPMV-MSE-Werts, durchgeführt werden.
Die Größe der Perturbationssuchregion
kann ähnlich
abhängig
von einem solchen Qualitätskriterium
variiert werden. Der beste Prädiktionsmakroblock für den aktuellen
Makroblock in dem aktuellen Feld wird als der identifizierte SFPMV- oder FPMV-Makroblock
mit dem niedrigsten MSE-Wert im Schritt 37 des Flußdiagramms
(6) ausgewählt.
-
Der zweite Weg des Flußdiagramms
von 5-6 nach Schritt 23, einschließlich der
Schritte 45–57,
wird ausgeführt,
wenn die besten Prädiktionsmakroblöcke TB und
LB beide vom FPMV-Typ sind. Wenn die Bedingung des Schritts 45 erfüllt ist,
werden die Schritte 50–57 ausgeführt. Die
Schritte 45–57 sind
den Schritten 25–37 äquivalent,
mit der Ausnahme, daß im
Schritt 50 der FPMV berechnet wird. Dies geschieht durch
Durchführen
einer Blockvergleichssuche, um einen am besten übereinstimmenden Makroblock
in dem Feld des gespeicherten Bildes zu identifizieren, das dem
Feld gegenüberliegt,
in dem sich der aktuelle Makroblock befindet. Dann wird im Schritt 52 ein
Skalenfaktor K bestimmt, um die im Schritt 55 durchgeführte Schätzung des
SFPMV aus dem FPMV zu optimieren. Der Skalenfaktor K wird durch
das im Schritt 32 beschriebene Verfahren als lineare Skalierung
auf der Basis der vergangenen Zeitdifferenz zwischen dem FPMV- und
SFPMV-aktuell- und
-Prädiktionsmakroblock
bestimmt. Im Schritt 55 werden ein optimierter Feld-Prädiktionsmakroblock
in dem gespeicherten Bild und eine zugeordnete optimierte SFPMV-Schätzung und
der MSE-Wert unter Verwendung des in Verbindung mit Schritt 35 beschriebenen
Perturbationssuchverfahrens bestimmt. Im Schritt 57 wird
der beste Prädiktionsmakroblock
für den
aktuellen Makroblock in dem aktuellen Feld als der identifizierte
SFPMV- oder FPMV-Makroblock mit dem niedrigsten MSE-Wert ausgewählt.
-
Der dritte Wert des Flußdiagramms
von 5-6 nach Schritt 23, einschließlich der
Schritte 65 und 70, wird ausgeführt, wenn
die besten Prädiktionsmakroblöcke TB und
LB vom MFPMV-Typ sind. Wenn die Bedingung des Schritts 65 erfüllt ist,
wird Schritt 70 ausgeführt.
Im Schritt 70 werden die MSE-Werte der besten Prädiktionsmakroblöcke TB und
LB verglichen. Der Feldparitätstyp
(entweder SFPMV oder FPMV) des besten Prädiktionsmakroblocks TB oder
LB mit dem niedrigsten MSE-Wert wird dann bestimmt. Wenn der TB-
oder LB-Makroblock
mit dem niedrigsten MSE-Wert ein SFPMV-Typ ist, wird der SFPMV-Weg
(Schritte 30–37)
ausgeführt.
Wenn der TB- oder LB-Makroblock mit dem niedrigsten MSE-Wert ein
FPMV-Typ ist, wird der FPMV-Weg (Schritte 50–57)
ausgeführt.
Wenn zum Beispiel beim Vergleichen der MSE-Werte der besten Prädiktionsblöcke TB und
LB der LB-Prädiktionsmakroblock
den niedrigeren MSE-Wert aufweist und ein FPMV-Typ ist, wird der
OFPMV-Weg ausgeführt.
-
Der in den Schritten 23–70 dargelegte
Feldprädiktionsprozeß wird für das nächste Feld
des gerade prädizierten
Einzelbildes wiederholt. Dadurch wird ein bester Prädiktionsmakroblock
und ein zugeordneter Bewegungsvektor für jeden Makroblock sowohl vom
Feld 1 als auch Feld 2 des gerade prädizierten
Einzelbildes erzeugt.
-
Im Schritt 80 werden der
Einzelbild-Prädiktionsmakroblock
und der zugeordnete Einzelbildbewegungsvektor MV1 für die verbleibenden
aktuellen Makroblöcke
bestimmt. Dies geschieht unter Verwendung eines Verfahrens, das
in dem Flußdiagramm
von 9 dargelegt ist,
bei dem eine reduzierte Anzahl von Berechnungen gemäß der Erfindung
auftritt.
-
Im Schritt 105 von 9 nach dem Start im Schritt 100 wird
der SFPMV von Feld 1 des gerade codierten Einzelbildes
(SFPMV-fl), der in den Schritten 37 oder 57 (6) bestimmt wurde, für die Einzelbildprädiktion
verwendet. Im Schritt 105 wird dieser SFPMV-f1-Bewegungsvektor
als Einzelbildbewegungsvektor MV1 verwendet, um Einzelbild-Prädiktionsmakroblöcke in dem
gespeicherten Bild für
den gerade prädizierten
aktuellen Makroblock zu identifizieren. Im Schritt 110 wird
eine lokale Suche im Feld 1 des gespeicherten Bildes um
den durch den Vektor SFPMV-fl identifizierten Einzelbild-Prädiktionsmakroblock
herum durchgeführt.
Dies geschieht, um die anfängliche
SFPMV-fl-Prädiktion
zu optimieren. Die lokale Suche wird genauso wie zuvor für die Perturbationssuche
der Schritte 35 und 55 (5) beschrieben durchgeführt. Das
heißt,
die MSE-Werte der acht Makroblöcke
mit Mittenpixeln, die das Mittenpixel des durch SFPMV-fl identifizierten
Makroblocks umgeben, werden berechnet (Schritt 110, 9). Im Schritt 115 werden
die acht Makroblock-MSE-Werte verglichen, und der Makroblock mit
dem niedrigsten MSE-Wert wird als ein erster Einzelbild-Prädiktionsmakroblock
ausgewählt. Ähnlich werden
im Schritt 120 die MSE-Werte der acht Makroblöcke mit
Mittenpixeln, die das Mittenpixel des durch SFPMV-fl identifizierten
Makroblocks im Feld 2 des gespeicherten Bildes umgeben,
berechnet. Im Schritt 125 werden diese acht Makroblock-MSE-Werte
verglichen und der Makroblock mit dem niedrigsten MSE-Wert wird als
ein zweiter Einzelbild-Prädiktionsmakroblock
ausgewählt.
Der erste oder der zweite Einzelbild-Prädiktionsmakroblock
mit dem niedrigsten MSE wird als ein Einzelbild-Prädiktionsmakroblock
(MV1-f1) ausge wählt,
und sein zugeordneter Bewegungsvektor wird als ein MV1-f1-Bewegungsvektor
ausgewählt (Schritt 125).
-
Die Schritte 105–125 werden
in den Schritten 130–150 im
wesentlichen wiederholt, um einen Einzelbild-Prädiktionsmakroblock
für Feld 2 (MV1-f2) und
einen zugeordneten Bewegungsvektor (MV1-f2) zu bestimmen. Im Schritt
130 wird der zuvor bestimmte SFPMV-f2- Bewegungsvektor (Schritt 37 oder 57 von 6) als ein Einzelbild-Bewegungsvektor
MV1 verwendet, um Einzelbild-Prädiktionsmakroblöcke in dem
gespeicherten Bild für
den gerade prädizierten
aktuellen Makroblock zu identifizieren. Im Schritt 135 wird
eine lokale Suche in dem Feld 1 des gespeicherten Feldes
um den durch den Vektor SFPMV-f2 identifizierten Einzelbild-Prädiktionsmakroblock
herum durchgeführt.
Die MSE-Werte der acht Makroblöcke
mit Mittenpixeln, die das Mittenpixel des durch SFPMV-f2 indentifizierten
Makroblocks umgeben, werden im Schritt 135 berechnet. Diese acht
Makroblock-MSE-Werte werden verglichen und der Makroblock mit dem
niedrigsten MSE-Wert wird im Schritt 140 als ein dritter
Einzelbild-Prädiktionsmakroblock
ausgewählt.
Die MSE-Werte der acht Makroblöcke
mit Mittenpixeln, die das Mittenpixel des durch SFPMV-f2 identifizierten
Makroblocks im Feld 2 des gespeicherten Bildes umgeben,
werden ebenfalls im Schritt 145 berechnet. Diese acht Makroblock-MSE-Werte
werden verglichen, und der Makroblock mit dem niedrigsten MSE-Wert
wird im Schritt 150 als ein vierter Einzelbild-Prädiktionsmakroblock ausgewählt. Zusätzlich wird
der dritte oder der vierte Einzelbild-Prädiktionsmakroblock
mit dem niedrigsten MSE als ein Einzelbild-Prädiktionsmakroblock (MV1-f2)
ausgewählt,
und sein zugeordneter Bewegungsvektor wird als der MV1-f2-Bewegungsvektor ausgewählt (Schritt 150).
Dann wird im Schritt 155 entweder der MV1-fl- oder der
MV1-f2-Makroblock mit
dem niedrigsten kombinierten Feld-1- und Feld-2-MSE-Wert als der
beste Einzelbild-Prädiktionsmakroblock
ausgewählt.
Der zugeordnete MV1-fl- oder MV1-f2-Vektor ist der zugeordnete MV1-Einzelbild-Prädiktionsbewegungsvektor.
Das Einzelbild-Prädiktionsflußdiagramm
von 9 ist nun abgeschlossen
und endet (Schritt 160).
-
Beim Abschluß des Flußdiagramms von 9 (Schritt 80 von 6) wird die Ausführung mit dem
Schritt 85 von
-
6 wieder
aufgenommen. Im Schritt 85 werden der beste Einzelbild-
und der beste Feld-Prädiktionsmakroblock
für den
aktuellen Makroblock auf der Basis des MSE verglichen. Wenn die
Auswahlentscheidung nicht durch Datenratensteueranforderungen eingeschränkt wird,
dann wird entweder der beste Einzelbild- oder der beste Feld-Prädiktionsmakroblock
mit dem niedrigsten kombinierten Feld-1- und Feld-2-MSE-Wert zur Übertragung
ausgewählt. Wenn
Datenratensteueranforderungen jedoch angeben, daß eine weitere Datenkomprimierung
notwendig ist, wird der beste Prädiktionsmakroblock,
der der zulässigen
Datenratengrenze entspricht, zur Übertragung ausgewählt. Zum
Beispiel können
stärker
komprimierte Einzelbild-Prädiktionsmakroblöcke anstelle von
Feld-Prädiktionsmakroblöcken übertragen
werden, wenn eine höhere
Komprimierung verlangt wird. Nach der Auswahl des Makroblocks zur Übertragung im
Schritt 85 ist die Bestimmung der besten Prädiktionsmakroblöcke für die Komprimierung
abgeschlossen und endet (Schritt 95).
-
bwohl 5-6 ein Verfahren zur Auswahl des
besten Prädiktionsmakroblocks
aus Kandidaten-Feld- oder -Einzelbild-Prädiktionsmakroblöcken offenlegen,
können
andere Arten von Prädiktion
verwendet werden, um weitere Kandidatenblöcke zu liefern. Zum Beispiel
kann man „Doppelprim"-Prädiktion verwenden,
um zusätzliche
Kandidatenmakroblöcke entweder
kurz vor oder nach der Einzelbildprädiktion des Schritts 80 (6) zu liefern. Im Schritt 85 wird dann
der beste Prädiktionsblock
aus Einzelbild-, Feld- und Doppelprim-Prädiktionskandidaten
anstelle der Feld- und Einzelbild-Kandidaten der vorherigen Beschreibung
ausgewählt.
Außerdem
ist die Erfindung nicht auf die in 5-6 abgebildete Schrittausführungsreihenfolge
beschränkt.
Es kann jede beliebige Reihenfolge verwendet werden, die für jeden
aktuellen Makroblock einen besten Prädiktionsmakroblock erzeugt.
-
10 zeigt
eine MPEG-kompatible Kompressorvorrichtung, die sich für die Verwendung
der Prinzipien der vorliegenden Erfindung eignet. Das Verfahren
von 5-6 wird durch den Bewegungsschätzer 85 in
Kombination mit der Prädiktionseinheit 95 implementiert.
Kurz gefaßt
wird ein digitales Videosignal in Form von Pixelluminanzwerten auf
bekannte Weise durch einen Umsetzer 57 in zu codierende
aktuelle Makroblöcke
umgesetzt. Die aktuellen Makroblöcke
werden in dem Datenkompressor 60 eingegeben. Das System
von 10 arbeitet in einer bekannten
Umgebung, in der die Versorgung mit aktuellen Makroblöcken aus
der Einheit 57 gesteuert wird, z.B. durch einen gesteuerten
Puffer in der Einheit 57. Dies geschieht, um den Abschluß eines
Makroblockprädiktionszyklus
und die Herstellung eines komprimierten Ausgangsblocks für jeden
aktuellen Makroblock zu ermöglichen.
Der Kompressor 60 führt
Feld- und Einzelbild-Makroblockprädiktionen an jedem aktuellen
Makroblock durch und speichert die resultierenden Makroblockprädiktionen
in dekromprimierter Form in dem Speicher 91 der Prädiktionseinheit 95.
Diese Prädiktionen
sind die „Kandidaten"-Prädiktionen,
aus denen eine beste Makroblockprädiktion für den aktuellen Makroblock
ausgewählt werden
kann. Der Selektor 97 in der Prädiktionseinheit 95 wählt den
besten Prädiktionsmakroblock
zur Übertragung
aus den in dem Speicher 91 gespeicherten Feld- und Einzelbild-Kandidatenprädiktionen.
Der beste Prädiktionsmakroblock
wird dann durch den Subtrahierer 65 von dem von ihm vorhergesagten
entsprechenden aktuellen Makroblock subtrahiert. Der resultierende
Rest aus dem Subtrahierer 65 wird durch die Einheit 70 komprimiert,
um Ausgangsdaten zur weiteren Verarbeitung zur Übertragung zu liefern. Dieser
Prozeß wird
für jeden
aktuellen Makroblock wiederholt.
-
Im Rahmen einer ausführlicheren
Beschreibung der Funktionsweise der Codierervorrichtung von 10 wird die Funktionsweise
des Kompressors 60 nur für I- und P-Bild-Makroblöcke betrachtet. Die Prinzipien
der Funktionsweise der Vorrichtung von 10 werden ohne weiteres an die B-Bild-Makroblockfunktionsweise
angepaßt.
Unter der Annahme, daß die
I-Bild-Prädiktion
eine Prädiktion
auf Einzelbildbasis ist, wird zu Anfang ein I-Einzelbild-Makroblock
unverändert
durch den Subtrahierer 65 an die Codierungseinheit 70 weitergeleitet.
Die Einheit 70 führt
eine diskrete Kosinustransformation (DCT) an Blöcken von 8 × 8 Pixeln durch, um auf bekannte Weise
DCT-Koeffizienten zu erzeugen. Die Koeffizienten werden dann in
der Einheit 70 quantisiert. Die Kombination von DCT und
Quantisierung in der Einheit 70 führt dazu, daß viele
der DCT-Frequenzkoeffizienten Null sind. Die Einheit 70 führt dann
eine Lauflängen-
und statistische Codierung der Koeffizienten durch, um lange Läufe von
Nullen zu erzeugen, um die produzierten Ausgangsdaten zu minimieren. Folglich
komprimiert die Einheit 70 den I-Einzelbild-Makroblock durch Eliminieren
räumlicher
Redundanz in den Eingangsmakroblockdaten. Der Prozeß wird für jeden
aktuellen Makroblock wiederholt. Die resultierende Reihe komprimierter
I-Einzelbild-Makroblöcke wird
durch den Formatierer 100 verarbeitet, der die komprimierten
Makroblöcke
aus der Einheit 70 zu Datenpaketen formt, die Kopfteile
enthalten, die Identifikation und andere Information enthalten.
-
Der komprimierte I-Einzelbild-Makroblock aus
der Einheit 70 wird auch dem Dekompressor 75 zugeführt, der
die Umkehrung der durch die Einheit 70 durchgeführten DCT-
und Quantisierungsfunktionen durchführt. Die Ausgabe der Einheit 75 ist
eine Reproduktion der I-Einzelbild-Makroblockeingabe
für den
Kompressor 60. Der dekomprimierte I-Einzelbild-Makroblock
wird dann unverändert
durch den Addierer 80 weitergeleitet und zur prädiktiven
Komprimierung nachfolgender P-Einzelbild-Makroblöcke in dem
Speicher 90 gespeichert. Der oben beschriebene I-Einzelbild-Makroblock-Komprimierungsprozeß wird wiederholt,
bis ein volles I-Einzelbild
von Makroblöcken
in dem Speicher 90 gespeichert ist.
-
Für
eine P-Einzelbild-Prädiktion
wird der gerade prädizierte
aktuelle Makroblock des Eingangs-P-Einzelbildes an einen Bewegungsschätzer 85 angelegt.
Die Einheit 85 bestimmt die Feld- und Einzelbild-Bewegungsvektoren
für den
aktuellen Makroblock unter Verwendung des Verfahrens von 5-6. Zu diesem Zweck wird die Feldparität der TB-
und LB-Makroblöcke,
d. h., ob sie vom SFPMV- oder vom FPMV-Typ sind, zusammen mit den
TB- und LB-Makroblock-MSE-Werten (der Klarheit halber nicht gezeigt)
in der Einheit 85 von 10 gespeichert.
Dieselben Informationen werden auch für die Makroblöcke des
linken und oberen Rands des gerade codierten Einzelbildes gespeichert.
Es ist minimal zusätzlicher
Speicher erforderlich, da der MSE-Wert und die Feldparität bequem
in vier (oder weniger) acht-Bit-Byte
pro Makroblock gespeichert werden können. Der erforderliche Speicher
kann minimiert werden, indem die Reihenfolge optimiert wird, in
der die aktuellen Makroblöcke
prädiziert
werden.
-
Das Flußdiagramm von 5-6 bis
zum Schritt 80 wird durch die Einheit 85 (10) ausgeführt, um
Bewegungsvektoren für
zwei Feld-Prädiktions-
und einen Einzelbild-Prädiktionsmakroblock
für den
aktuellen Makroblock zu erhalten. Um das Flußdiagramm von 5-6 auszuführen, verwendet die Einheit 85 die
gespeicherten TB- und LB-Informationen. Zusätzlich greift die Einheit 85 auf
die Makroblöcke
des gespeicherten Einzelbildes in dem Speicher 90 zu, um
die erforderlichen Blockvergleichssuchen durchzuführen.
-
Die Einheit 85 bestimmt
die K-Werte (Schritte 32 und 52 von 5) aus der bekannten zeitlichen Beziehung
zwischen dem aktuellen Makroblock und den gespeicherten Makroblöcken in
dem Speicher 90 von 10.
Die berechneten K-Werte werden dann von der Einheit 85 zur
Durchführung
der erforderlichen Bewegungsschätzung
der Schritte 35 und 55 von 5 wie zuvor beschrieben verwendet. Die übrigen Flußdiagrammschritte
werden wie zuvor in Verbindung mit 5-6 beschrieben unter Verwendung dieser
Techniken ausgeführt,
um die Bewegungsvektoren für
zwei Feld-Prädiktions-
und einen Einzelbild-Prädiktionsmakroblock
zu produzieren.
-
Die Bewegungsvektoren der beiden Feld-Prädiktionsmakroblöcke und
des Einzelbild-Prädiktionsmakroblocks,
die durch die Einheit 85 (10)
nach Abschluß der
Ausführung
des Flußdiagrammschritts 80 (5-6) produziert werden, werden von dem
Extrahierer 93 in der Prädiktionseinheit 95 verwendet.
Der Extrahierer 93 extrahiert mit diesen Bewegungsvektoren
die beiden Feld-Prädiktionsmakroblöcke und
den Einzelbild-Prädiktionsmakroblock
aus dem in dem Speicher 90 gespeicherten Einzelbild. Diese
Feld- und Einzelbild-Prädiktionsmakroblöcke sind
diejenigen, die dem aktuellen Makroblock am nächsten identisch sind, und
werden durch den Extrahierer 93 als Kandidaten-Prädiktionsmakroblöcke in dem
Speicher 91 gespeichert. Diese Ausführungsform kann ohne weiteres
erweitert werden, um andere Prädiktionen
zu umfassen, wie zum Beispiel „Doppelprim"-Prädiktionen,
wie zuvor beschrieben. In einem solchen Fall würde der Speicher 91 zusätzlich „Doppelprim"-Prädiktions-Kandidatenmakroblöcke enthalten.
-
Der Selektor 97 (10) führt den Schritt 85 des
Flußdiagramms
von 5-6 aus und wählt eine der Kandidatenprädiktionen
als die beste Makroblockprädiktion
aus. Der Selektor 97 wählt
den besten Feld- oder Einzelbild-Prädiktionsmakroblock zur Komprimierung
auf der Basis des MSE-Werts, entsprechend der zulässigen Übertragungsdatenratengrenze.
Der Subtrahierer 65 subtrahiert pixelweise die beste Prädiktionsmakroblockausgabe
durch den Selektor 97 aus dem Eingangs-Aktuell-P-Einzelbild-Makroblock,
der komprimiert werden soll. Die aus dem Subtrahierer 65 ausgegebenen
Differenzen oder Reste werden dann durch die Einheit 70 komprimiert
und ähnlich
wie die I-Einzelbild-Makroblockdaten verarbeitet. Der resultierende
komprimierte P-Einzelbild-Makroblock
wird durch den Formatierer 100 verarbeitet, der die Reihe
komprimierter Makroblöcke
aus der Einheit 70 zu Datenpaketen formt, die Identifikationskopfteile
enthalten.
-
Die Komprimierungs-P-Einzelbild-Makroblock-Reste
aus der Einheit 70 werden durch die Einheit 75 wie
bei den I-Einzelbild-Makroblöcken
dekomprimiert, bevor sie an den Addierer 80 angelegt werden.
Gleichzeitig wird der beste Prädiktionsmakroblock,
der durch den Subtrahierer 65 von dem gerade prädizierten
Makroblock subtrahiert wurde, zu den dekomprimierten Makroblockresten
zurückaddiert.
Dies geschieht dadurch, daß der
Selektor 97 die besten Prädiktionsmakroblockwerte an
einen zweiten Eingang des Addierers 80 anlegt, der die
Daten pixelweise addiert, um den Makroblock wiederherzustellen.
Dieser wiederhergestellte P-Einzelbild-Makroblock bildet einen Teil des rekonstruierten Bildes
und wird für
prädiktive
Komprimierung nachfolgender P-Einzelbild-Makroblöcke in dem
Speicher 90 gespeichert. Der Prozeß wird für jeden aktuellen Makroblock
wiederholt.
-
Die Vorrichtung von 10 kann auf andere Weise implementiert
werden. Zum Beispiel kann das Verfahren von 5-6 zur
Bestimmung der besten Prädiktionsmakroblöcke zur
Komprimierung in einer einzigen Entscheidungssteuereinheit implementiert werden,
wie zum Beispiel in einem Mikroprozessor mit einer Schnittstelle
zu dem Kompressor 60, statt zwischen den Funktionseinheiten 85 und 95,
wie in der bevorzugten Ausführungsform
gezeigt, verteilt zu sein. Außerdem
sind andere bekannte Konfigurationen des Kompressors 60 und
Weisen zur Implementierung der Funktionen des Kompressors 60 bekannt. Zum
Beispiel kann durch Verwendung eines Mehrfachparallelprädiktionsverfahrens
als Alternative für ein
serielles Prädiktionsverfahren
eine Prädiktion
für einen
aktuellen Makroblock erzielt werden.