DE69419635T2 - Bewegungsvektorprozessor für Bildsignalkompression - Google Patents
Bewegungsvektorprozessor für BildsignalkompressionInfo
- Publication number
- DE69419635T2 DE69419635T2 DE69419635T DE69419635T DE69419635T2 DE 69419635 T2 DE69419635 T2 DE 69419635T2 DE 69419635 T DE69419635 T DE 69419635T DE 69419635 T DE69419635 T DE 69419635T DE 69419635 T2 DE69419635 T2 DE 69419635T2
- Authority
- DE
- Germany
- Prior art keywords
- motion vector
- motion vectors
- blocks
- block
- vectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 239000013598 vector Substances 0.000 title claims description 166
- 238000007906 compression Methods 0.000 title claims description 16
- 230000006835 compression Effects 0.000 title claims description 13
- 230000000875 corresponding effect Effects 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 14
- 230000002596 correlated effect Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 2
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Television Systems (AREA)
- Image Analysis (AREA)
Description
- Die Erfindung bezieht sich auf eine bewegungskompensierte Kompressionsschaltung zur Verarbeitung von Videodaten auf einer Block-für-Block-Basis und insbesondere zur Verarbeitung von Bewegungsvektoren, die entsprechenden Blöcken zugeordnet sind.
- Gegenwärtige Bestrebungen bei der Videosignal-Aufzeichnung und -Übertragung gehen in die Richtung, digitale Kompressionsverfahren zu verwenden. Bisher hat die internationale Organisation für Normung eine Reihe von Signal-Kompressions-Protokollen entwickelt, die als MPEG1, MPEG2, etc. bezeichnet werden. Diese Protokolle erfordern, daß das Videosignal gemäß einem bewegungskompensierten Vorhersageverfahren komprimiert wird, bei dem das Videosignal in Matrizen oder Blöcke von benachbarten Pixeln unterteilt wird und das Signal anschließend auf einer Blockbasis verarbeitet wird.
- Bei der typischen bewegungskompensierten vorhersagenden Kompression werden aufeinanderfolgende Bilder von früher komprimierten Bildern vorhergesagt. Das gegenwärtige Bild wird auf einer Pixel-für-Pixel-Basis von seinem zugeordneten vorhergesagten Bild subtrahiert, und die Differenzen oder Reste werden zur Speicherung oder Übertragung kodiert. Bei der Erzeugung der vor hergesagten Bilder werden Blöcke des gegenwärtigen Bildes mit gleich großen Blöcken des vorhergesagten Bildes verglichen, bis die engste Blockanpassung gefunden wird. Es wird eine Gruppe von Bewegungsvektoren erzeugt, die den Block des vorhergesagten Bildes anzeigen, der am nächsten dem realen Bild angepaßt ist. Die Differenzen zwischen den beiden Blöcken und den Bewegungevektoren bilden zum größeren Teil die komprimierte Information. Die Reste können jedoch eine Transformationsverarbeitung und eine veränderliche Längen- und statistische Kodierung erfahren. Für eine ausführliche Information über bewegungskompensierte vorhersagende Kompression siehe Peter A. Ruetz et al. "A High- Performance Full-Motion Video Compression Set", oder Hiroshi Fujiwara et al. "An All-ASIC Implementation of a Low Bit-Rate Video Codec" und Chaur-Heh Hsieh, et al. "VLSI Architecture for Block-Matching Motion Estimation Algorithm"; alle diese Aufsätze findet man in IEEE TRANS. ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, Bd. 2, Nr. 2, Juni 1992.
- Bei bestimmten Systemen wie dem MPEG1-System wird eine Entscheidung getroffen, ob eine Gruppe von Bewegungsvektoren kodiert wird oder nicht. Dies wird eine MC/no-MC-Entscheidung genannt.
- Der Zweck der MC/no-MC-Entscheidung besteht darin, für jeden Block von komprimierten Daten zu bestimmen, ob der oder die Bewegungsvektoren, die von der Bewegungs-Abschätzungssuche (MC) herrühren oder statt dessen (0,0) Bewegungsvektoren (no-MC) ausgewählt werden sollen. Die MC/no-MC-Entscheidung wird bei jedem Block des Bildes angewendet. Wenn das einzelne System sowohl eine Vorwärts- als auch Rückwärts-Vorhersage ausführt wie in den MPEG-Systemen, wird eine MC/no-MC-Entscheidung unabhängig für sowohl Vorwärts- als auch Rückwärts-Bewegungsvektoren getroffen.
- Der no-MC-Bewegungsvektor sollte in jenen Fällen verwendet werden, in denen der MC-Bewegungsvektor nutzlos (er trägt keine Informationen) und zum Kodieren zu teuer ist, d. h. er ist bestrebt, die Wirkung eines Schwarm-Rauschens (swarming noise) hervorzurufen, und er macht Fehler-Verschleierungsverfahren weniger wirksam. Diese Situation liegt insbesondere bei flachen Bildbereichen vor (Bereichen mit etwa gleichen Helligkeitswerten), wie beim Himmel, einer Wand usw., wo die MC- Bewegungsvektoren bestrebt sind, völlig willkürlich zu sein und das Ergebnis von willkürlichem Rauschen sind, das in den Bildern der Quelle während der Bewegungs-Abschätzungssuche vorhanden ist und nicht auf Szenenänderungen beruht.
- Typische MC/no-MC-Entscheidungs-Algorithmen beruhen auf Vorhersagefehlern. Vorhersagefehler können der MAE (mittlerer absoluter Fehler pro Pixel) oder der MSE (mittlerer quadratischer Fehler pro Pixel) zwischen dem vorhergesagten Block und dem Zielblock sein. Nominal wird eine no-MC-Entscheidung getroffen, wenn die räumlich geordneten vorhergesagten und Zielblöcke den kleinsten Vorhersagefehler aufweisen. Wenn ferner der kleinste bei einer Blockanpassungssuche erzeugte Vorhersagefehler durch den Zielblock und einen nicht geordneten Block erzeugt wird und dieser Vorhersagefehler um nur einen vorgegebenen Schwellwert kleiner ist als der Vorhersagefehler der geordneten Ziel- und Vorhersageblöcke, wird eine no-MC-Entscheidung getroffen. Der optimale Schwellwert muß experimentell für entsprechende Systeme bestimmt werden. Es wurde jedoch gefunden, daß bei Verwendung des MSE als Vorhersagefehler ein Schwellwert von 1 gute Ergebnisse ergibt.
- Wenn eine no-MC-Entscheidung für einen bestimmten Block getroffen wird, bedeutet dies eine Bewegungsvektor-Gruppe von (0,0). Diese Vektorgruppe kann als Vektor kodiert werden oder der Block von restlichen Daten kann als ein no-MC-Block ohne die Notwendigkeit, den Vektor zu enthalten, markiert werden, wodurch die Kompressionswirksamkeit verbessert wird.
- Der vorangehende MC/no-MC-Entscheidungs-Algorithmus erzeugt eine sehr störende Nebenwirkung, die auch als "schmutzige Fenster-Wirkung" bezeichnet wird. Sie sieht wie auf dem Schirm in flachen Bereichen haftender Schmutz aus (wo no-MC-Bewegungsvektoren verwendet werden), und sie kann sehr deutlich und störend sein. Die Ursache des Problems besteht darin, daß die no-MC-Bewegungsvektoren in nahezu flachen Bereichen verwendet werden, die aber tatsächlich eine Form mit sehr niedriger Intensität enthalten wie z. B. einen verschwommenen Hintergrund oder eine Wolke. Dieses Problem kann durch Senken des bei der Entscheidung verwendeten Schwellwertes gelöst werden, jedoch erscheint dann ein anderes Problem. Der durch Rauschen bewirkte Vorhersagefehler wird größer als der Schwellwert, und es werden selten no-MC-Bewegungsvektoren verwendet, was dazu führt, was als Schwarm-Rauschwirkung beschrieben werden kann.
- Die Erfindung ist auf eine Schaltung gemäß Anspruch 1 und auf ein Verfahren gemäß Anspruch 5 gerichtet, wobei ein Vorteil daraus gezogen wird, daß MC/no-MC-Entscheidungen getroffen werden, ohne daß unerwünschte "schmutzige Fenster-" oder "Schwarm- Rauschwirkungen" auftreten.
- Die vorliegende Erfindung umfaßt eine Bewegungsvektoren erzeugende Vorrichtung zur Erzeugung von Bewegungsvektoren, die die relative Bewegung von entsprechenden Blöcken von Videodaten zwischen Bildintervallen anzeigt. Diese Vorrichtung enthält eine Schaltung zur Durchführung von Blockanpassung, um die entsprechenden Bewegungsvektoren zu erzeugen, und eine Vorrichtung zur Durchführung einer MC/no-MC-Entscheidung, die beispielsweise auf Vorhersagefehlern beruht. Eine Vielzahl von Vektoren für eine entsprechende Vielzahl von benachbarten Blöcken wird gleichzeitig verfügbar gemacht. Entsprechenden Blöcken zugeordnete Bewegungsvektoren werden für die Korrelation mit Bewegungsvektoren geprüft, die benachbarten Blöcken zugeordnet sind. Bewegungsvektoren, für die keine Korrelation vorhanden ist, und für die eine MC/no-MC-Entscheidung gefällt worden ist, werden dann in Null- Wert-Bewegungsvektoren umgewandelt.
- Fig. 1 ist ein Blockschaltbild einer die vorliegende Erfindung verkörpernden Videosignal- Kompressionsvorrichtung mit einer Vorrichtung zur Erzeugung von Bewegungsvektoren.
- Fig. 2 ist ein Fließdiagramm, das zum Teil die Funktion der die Bewegungsvektoren erzeugenden Vorrichtung von Fig. 1 darstellt.
- Fig. 3 ist ein Fließdiagramm des Korrelations- Entscheidungsblocks von Fig. 2.
- Fig. 4, 5 und 6 sind Vektordiagramme, die zur Beschreibung der Erfindung nützlich sind.
- Der vorliegenden MC/no-MC-Prozessor wurde entwickelt, um die Auswahl von no-MC-Bewegungsvektoren in Situationen zu vermeiden, bei denen schmutzige Fenster-Wirkungen verursacht würden. Es wurde bei verschiedenen Szenen beobachtet, bei denen die schmutzige Fenster-Wirkung vorhanden war, daß das Bewegungsvektorenfeld sogar gut in den Bereichen korreliert war, in denen keine no-MC-Bewegungsvektoren ausgewählt wurden. Andererseits schien in den Bereichen, in denen keine no-MC-Bewegungsvektoren ausgewählt wurden und kein schmutziger Fenstereffekt sichtbar war, das Bewegungsvektorfeld sehr willkürlich. Als Folge dieser Beobachtung wurde abgeleitet, daß die Korrelation des Bewegungsvektorfeldes um jeden Datenblock eine gute Anzeige dafür war, daß die MC-Bewegungsvektoren, die in no-MC-Vektoren geändert wurden, tatsächlich bedeutsam waren, und daß in diesem Fall die no-MC- Bewegungsvektoren nicht ausgewählt werden sollten.
- Ein beispielsweises Korrelationskriterium, das zur Lieferung von günstigen Ergebnissen gefunden wurde, ist das folgende. Ein MC-Bewegungsvektor wird als korreliert betrachtet, wenn er nahezu gleich dem Bewegungsvektor wenigstens eines benachbarten Blocks ist. Benachbarte Blöcke sind diejenigen Blöcke mit Videodaten, die sich unmittelbar oberhalb, unterhalb, rechts und links von dem betrachteten Block befinden. Es gibt normalerweise vier benachbarte Blöcke mit Ausnahme jener Blöcke, die am Rand oder der Ecke des Bildes angeordnet sind, wo es nur drei oder zwei benachbarte Blöcke gibt. Unter nahezu gleich wird verstanden, daß die absoluten Unterschiede sowohl der x- als auch der y-Koordinaten der Bewegungsvektoren, ausgedrückt in Halb-Pixel- Einheiten, kleiner oder gleich einem Schwellwert sind (ein typischer Schwellwert ist 2). Wenn nach Bestimmung der relativen Werte der Vorhersagefehler der MC-Bewegungsbektor korreliert wird, wird immer der MC-Bewegungsvektor ausgewählt. Wenn der MC- Bewegungsvektor nicht korreliert ist, wird eine MC/no-MC- Entscheidung getroffen.
- Um diesen neuen MC/no-MC-Entscheidungsprozeß auszuführen, ist es notwendig, die Bewegungsvektoren von drei Reihen von Blöcken von Videodaten zu speichern, und die Bewegungsvektoren müssen für eine Reihe von Blöcken berechnet werden, bevor die MC/no-MC-Entscheidung auf der Basis der Korrelation getroffen wird. Es ist jedoch möglich, die Hardware-Ausführung zu vereinfachen, wenn eine vereinfachte Version dieses MC/no-MC- Entscheidungsprozesses verwendet wird. Bei der vereinfachten Version sind die einzigen benachbarten Blöcke, die in Betracht gezogen werden, diejenigen, die oberhalb und links von dem gegenwärtigen Block angeordnet sind, und möglicherweise der rechte Block, da dies nur eine sehr geringe zusätzliche Verzögerung herbeiführt. Eine solche vereinfachte Version erfordert, auch wenn sie nicht so wirksam ist, beträchtlich weniger Speicherung und ist ein guter Kompromiß hinsichtlich des Kosten-Nutzen- Verhältnisses.
- Fig. 4 zeigt die bevorzugte Lösung, bei der die entsprechenden Blöcke Videodaten-Blöcke darstellen, die jeweils benachbarten Bildbereichen entsprechen. Ein Teil von drei Reihen von Blöcken ist dargestellt, wobei der mit C bezeichnete Block der gegenwärtig betrachtete Block ist. Die Pfeile stellen Bewegungsvektoren für die jeweiligen Blöcke dar. Bei dem bevorzugten Ausführungsbeispiel wird der Bewegungsvektor des Blocks C mit den Bewegungsvektoren der Blöcke T, B, R und L verglichen. Dies erfordert die Speicherung der Bewegungsvektoren für wenigstens zwei Reihen plus einem Datenblock.
- Fig. 5 zeigt eine vereinfachte Lösung, die die Speicherung von Bewegungsvektoren für eine Reihe von Blöcken erfordert. Fig. 5 schlägt verschiedene Lösungen vor, die alle lebensfähig sind und annehmbare Ergebnisse erzeugen. Eine dieser Lösungen ist die Bestimmung der Korrelation zwischen dem Vektor VC und den Vektoren VL und VT. Eine andere Lösung ist die Prüfung der Korrelation zwischen dem Vektor VC und den Vektoren VT-, VT, VT+ und VL. Eine andere Lösung ist die Prüfung der Korrelation zwischen den Vektoren VC und nur VL. Die letztere Lösung erfordert im wesentlichen keine Datenspeicherung und liefert eine Verbesserung gegenüber nur der Durchführung der MC/no-MC-Entscheidung unter Verwendung der Vorhersagefehler.
- Fig. 6 zeigt teilweise das Verfahren der Vektor-Korrelation. Von jedem Vektor ist angenommen, daß er in relativen Begriffen definiert wird, die die Unterschiede der Koordinaten zwischen dem Ort des Ziels und den vorhergesagten Blöcken in x- und y- Komponentenwerten beschreiben. Eine Differenzbildungs-Schaltung bestimmt die Größe der Differenzen Δx und Δy zwischen dem Vektor VC und den benachbarten Vektoren Vi. Wenn beide absolute Differenzen Δxi und Δyi , die für einen benachbarten Vektor bestimmt werden, kleiner als ein Schwellwert sind, wird von dem Vektor VC angenommen, daß er mit dem Vektor Vi korreliert ist, und eine Änderung eines MC-Vektors in einen no-MC-Vektor wird für den Block C nicht zugelassen.
- Es sei bemerkt, daß in der vorangehenden Diskussion die Videodaten als Blöcke dargestellt worden sind und die Bewegungsvektoren entsprechenden Blöcken zugeordnet sind. In dem MPEG- Signal-Protokoll wird eine Vielzahl von Datenblöcken in Makroblöcken angeordnet, wobei ein einzelner Bewegungsvektor einem Makroblock zugeordnet wird.
- Hinsichtlich der zur Diskussion stehenden Begriffe ist bei Systemen wie beim MPEG der Begriff Makroblock von Daten mit dem Begriff Block von Daten austauschbar.
- Fig. 1 veranschaulicht eine beispielsweise Vorrichtung zur Ausführung der Erfindung. In Fig. 1 verkörpern die Elemente 10 bis 18 bekannte bewegungskompensierte vorhersagende Videosignal- Kompressionssysteme. Wenn man im Augenblick die Elemente 100 bis 102 ignoriert, wird das Videosignal am Anschluß 10 zugeführt und einem Eingang einer Subtraktionsschaltung 11 zugeführt. Ein ein vorhergesagtes Bild darstellendes Videosignal, das von der Vorhersagevorrichtung 17 geliefert wird, wird einem zweiten Eingangsanschluß der Subtraktionsschaltung 11 zugeführt, die ihrerseits Bildunterschiede oder Reste erzeugt. Die Reste werden einer diskreten Cosinus-Transformationsvorrichtung 12 zugeführt, die die Reste in Koeffizienten transformiert, die eine räumliche Frequenz darstellen. Die Koeffizienten werden durch einen Quantisierer 13 quantisiert und einem Lauflängen- und Statistik- Kodierer 19 zugeführt. Die quantisierten, lauflängen- und statistisch kodierten Daten werden einem Signalformatierer 14 zugeführt, der die kodierten Videodaten und ein Synchronsignal für ,die Speicherung oder Übertragung anordnet.
- Die quantisierten Daten von dem Element 13 werden der Kaskadenkombination aus einem inversen Quantisierer 15 und einem inversen diskreten Cosimus-Transformer 16 zugeführt, der die inversen Funktionen der Elemente 13 bzw. 12 durchführt. Das von dem inversen diskreten Cosinus-Transformer 16 gelieferte Ausgangssignal entspricht den von der Subtraktionsschaltung 11 gelieferten Resten. Diese Reste werden einer bewegungskompensierten Vorhersagevorrichtung 17 zugeführt, die normalerweise wenigstens ein Vollbild des Speichers enthält. Der Speicher enthält das zuletzt vorhergesagte Bild. Entsprechende Datenblöcke von dem Speicher in der Vorhersagevorrichtung 17 und dem inversen diskreten Cosinus-Transformer 16 werden auf einer Pixel-Basis summiert, um ein neues vorhergesagtes Bild zu erzeugen.
- Ein Bewegungsvektor-Generator 18 erzeugt Bewegungsvektoren entsprechend bekannten Block-Anpassungsverfahren. Die Bewegungsvektoren werden dem Signal-Formatierer 14 zugeführt, in dem sie mit den Blöcken von Videodaten gemultiplext werden, um einen komprimierten Datenstrom zu bilden.
- Bei der vorliegenden Erfindung werden die Bewegungsvektoren veranlaßt, sich dem weiteren Korrelationstest zu unterziehen, bevor sie dem Formatierer 14 zugeführt werden. Um diesen Korrelationstest zu bewirken, werden die Bewegungsvektoren für entsprechende Blöcke in einem Speicher 100 gespeichert. Der Vektor- Generator 18 führt eine MC/no-MC-Entscheidung auf der Basis von Vorhersagefehlern aus, aber er wandelt keine MC-Vektoren in no- MC-Vektoren um. Statt dessen erzeugt er ein Kennzeichen, das anzeigt, daß ein bestimmter MC-Vektor ein Anwärter für die Umwandlung in einen no-MC-Vektor ist. Diese Kennzeichen werden mit den zugeordneten Bewegungsvektoren im Speicher 100 gespeichert. Wenn das System so ausgebildet ist, daß Vektoren über drei Reihen von Blöcken korreliert werden, wie in Fig. 4 dargestellt, muß der Speicher 100 genügend Speicherkapazität enthalten, um die Vektoren und Kennzeichen für zwei Reihen von Blöcken zu speichern. Wenn statt dessen das System so ausgebildet ist, daß die Vektorkorrelation über zwei Reihen von Blöcken durchgeführt wird, dann muß der Speicher 100 ausreichend Speicherraum enthalten, um eine Reihe von Vektoren und zugeordneten Kennzeichen zu speichern.
- Kennzeichen für entsprechende Blöcke erhalten daher der Reihe nach Zugriff von dem Speicher 100 durch das MC/no-MC- Entscheidungselement 102. Wenn ein Kennzeichen anzeigt, daß ein Block ein Anwärter für eine MC-in-no-MC-Umwandlung ist, führt der Entscheidungsblock 102 eine Vektor-Korrelationsentscheidung aus. Wenn dann der entsprechende Anwärter-MC-Vektor dazu bestimmt wird, nicht mir irgendeinem einem benachbarten Block zugeordneten Vektor korreliert zu werden, wird der MC-Vektor in einen no-MC-Vektor umgewandelt oder transformiert.
- Fig. 2 ist ein Fließdiagramm, das die Funktionsweise des Bewegungsvektor-Generators 18 beschreibt. Der Generator wird am Beginn jedes Video-Halbbildes/Vollbildes zurückgestellt [200]. Ein Blockindex K wird auf null gesetzt [201], und das System gelangt dann zum ersten Block [202]. Ein Blockanpassungs-Prozeß wird ausgeführt [203], um Vektoren für den Block K zu erzeugen. Die Blockanpassungs-Vorhersagefehler werden geprüft [204], um zu bestimmen, ob die Vektoren für den Block K Anwärter für eine Umwandlung eines MC-Vektors in einen no-MC-Vektor sind. Wenn die Vektoren-Anwärter für eine Umwandlung sind, wird ein Kennzeichen auf 1 gesetzt [207], und wenn nicht, wird das Kennzeichen auf 0 gesetzt [206]. Die Vektoren für den Block K und das zugeordnete Kennzeichen werden dann in einem Speicher gespeichert [208]. Eine Korrelationsentscheidung wird getroffen [209], um zu bestimmen, ob die umgebenden Vektoren korreliert sind, und ob das Kennzeichen 1 oder 0 ist, und um den MC-Vektor in einen no-MC-Vektor umzuwandeln oder nicht. Der Index K wird dann fortgeschaltet [210], und der fortgeschaltete Index wird geprüft [211], um zu bestimmen, ob alle Blöcke in dem gegenwärtigen Vollbild verarbeitet worden sind. Wenn dies der Fall ist, kehrt das System zum Schritt [200] zurück, und falls nicht, zum Schritt [201].
- Fig. 3 zeigt die in dem Korrelations-Entscheidungsschritt [209] enthaltenen Verfahren. In Abhängigkeit von dem Ort eines Blockes innerhalb eines Vollbildes kann er sich in einer Position, die für eine Vektor-Korrelations-Bestimmung verantwortlich ist, befinden oder nicht. Wenn beispielsweise der gegenwärtig geprüfte Block sich in der obersten Reihe von Blöcken eines Vollbildes befindet, gibt es keine Blöcke darüber, und daher gibt es keine Vektoren, mit denen eine bequeme Korrelation stattfinden kann. Der erste Schritt [300] des Korrelationsprozesses ist daher die Bestimmung, ob der gegenwärtige Block sich innerhalb eines Vollbildbereiches befindet, für den es einen Sinn macht, eine Vektor-Korrelation durchzuführen. Im einfachsten Fall kann diese die Bestimmung sein, ob die Blockzahl groß genug ist, um ein Block der zweiten Reihe zu sein oder klein genug, um innerhalb des Vollbildes zu sein.
- Nachdem diese Bestimmung durchgeführt worden ist, erhält das dem Block K zugeordnete Kennzeichen Zugriff zum Speicher [301] und wird geprüft [302], um zu bestimmen, ob es eine 1 oder eine 0 ist. Wenn es eine 0 ist (kein Anwärter für eine MC/no-MC- Umwandlung), braucht nichts zu erfolgen, und die beim Schritt [203] bestimmten Vektoren werden für die Verwendung in dem Kompressionsprozeß weitergeleitet. Wenn andererseits das Kennzeichen eine 1 ist, wird ein Index i auf n gesetzt [303], wobei n gleich der Zahl von Blöcken in einer Reihe von Blöcken sein kann. Vektoren für die Blöcke K und K+i erhalten Zugriff zum Speicher [304]. Zwischen den Vektoren von dem Blöcken K und K+i wird ein Korrelationstest durchgeführt [305]. Wenn eine Korrelation zwischen den Vektoren besteht, werden die dem Block K zugeordneten Vektoren nicht in no-MC-Vektoren umgewandelt, und die ursprünglichen Vektoren werden für die Verwendung in dem Kompressionsprozeß weitergeleitet [311]. Wenn die Vektoren von den Blöcken K und K+i nicht korreliert sind, wird der Index i geprüft [306], um zu bestimmen, ob alle benachbarten Vektoren geprüft worden sind. Wenn dies der Fall ist, werden die Bewegungsvektoren für den Block K in no-MC-Vektoren umgewandelt [309], und diese werden für die Verwendung in dem Kompressionsprozeß weitergeleitet [310]. Wenn alle benachbarten Vektoren nicht geprüft worden sind, wird der Index i in geeigneter Weise geändert [307], um den nächst benachbarten Vektor für den Zugriff zu der Korrelationsprüfung beim Schritt [304] zu identifizieren. Es sei bemerkt, daß der Index i so geändert wird, daß eine Anpassung an Blöcke erfolgt, die an den Rändern von entsprechenden Vollbildern auftreten und die entsprechenden Blöcke identifiziert werden, für die Vektoren geprüft werden sollen, wie z. B. die Blöcke T, L, R und B, wenn der Block C in Fig. 4 betrachtet wird.
- Wenn die Bewegungsvektoren bei bestimmten Kompressionssystemen für einen besonderen Block anzeigen, daß der Zielblock, der am nächsten an den vorhergesagten Block angepaßt ist, sich mit diesem am gleichen Ort befindet, kann die Kodierung des Blocks als nicht bewegungskompensiert bezeichnet werden, und es können diesem keine Bewegungsvektoren zugeordnet werden. Dies hat die gleiche Wirkung wie das Vorsehen eines Null-Wert- Bewegungsvektors. Daher ist in den nachfolgenden Ansprüchen beabsichtigt, daß die Umwandlung von Bewegungsvektoren in Null- Wert-Bewegungsvektoren als gleichwertig zu der Änderung eines bewegungskompensierten Datenblocks in einen nicht bewegungskompensierten kodierten Block mit oder ohne Bewegungsvektoren betrachtet werden sollte.
Claims (5)
1. Videosignal-Kompressionsschaltung, die Videodaten auf einer
Block-Basis verarbeitet und Bewegungsvektoren für
entsprechende Blöcke über einen Block-Anpassungsprozeß erzeugt,
einschließlich eines Bewegungsvektor-Prozessors zur
Umwandlung nicht nullwertiger Bewegungsvektoren in nullwertige
Bewegungsvektoren, umfassend:
- Blockanpassungsmittel (18) zur Identifizierung nicht
nullwertiger Bewegungsvektoren, die Anwärter auf nullwertige
Bewegungsvektoren sind, nachfolgend als Anwärter-
Bewegungsvektoren (VC) bezeichnet; gekennzeichnet durch:
- Mittel (100, 102) zur Bestimmung, ob ein Anwärter-
Bewegungsvektor (VC) mit Bewegungsvektoren in Blöcken in der
unmittelbaren Nachbarschaft des Blocks korreliert sind, der
den Anwärter-Bewegungsvektor hat, und wenn die Korrelation
nicht festgestellt wird, der Anwärter-Bewegungsvektor in
einen nullwertigen Bewegungsvektor umgewandelt wird, und wenn
die Korrelation nicht festgestellt wird, der Anwärter-
Bewegungsvektor nicht in einen nullwertigen Bewegungsvektor
umgewandelt wird.
2.) Schaltung nach Anspruch 1, bei der der Bewegungsvektor-
Prozessor enthält:
- Mittel zur Speicherung von Bewegungsvektoren, die
entsprechenden Blöcken zugeordnet sind, und
- Mittel zum gleichzeitigen Zugriff von Bewegungsvektoren von
einer Vielzahl von Blöcken.
3. Schaltung nach Anspruch 1, bei der entsprechende
Bewegungsvektoren orthogonale Komponenten enthalten, und wobei die
Mittel zur Bestimmung, ob ein Anwärter-Bewegungsvektor (VC)
mit Bewegungsvektoren von Blöcken in der unmittelbaren
Nachbarschaft des Blocks korreliert ist, der den Anwärter-
Bewegungsvektor hat, Mittel zur Bestimmung enthalten, ob
entsprechende Größen der Unterschiede zwischen
entsprechenden orthogonalen Komponenten von Bewegungsvektoren von
benachbarten Blöcken und dem Anwärter-Bewegungsvektor beide
kleiner als ein vorgegebener Wert sind.
4. Schaltung nach Anspruch 1, bei der die Mittel zur
Bestimmung, ob ein Anwärter-Bewegungsvektor (VC) mit
Bewegungsvektoren von Blöcken in der unmittelbaren Nachbarschaft des
Blockes korreliert sind, der den Anwärter-Bewegungsvektor
hat, Mittel enthalten, um eine korrelative Bestimmung mit
Bewegungsvektoren von einer Vielzahl von Blöcken
durchzuführen, die dem Block benachbart sind, der den Anwärter-
Bewegungsvektor hat, wobei der Anwärter-Bewegungsvektor
umgewandelt wird, wenn eine Korrelation nicht in bezug auf
einen Bewegungsvektor festgestellt wird, der einem der
benachbarten Blöcke zugeordnet ist.
5. Verfahren zur Video-Signalkompression, bei dem Videodaten
auf einer Block-Basis verarbeitet werden und
Bewegungsvektore für entsprechende Blöcke unter Verwendung von
Blockanpassung erzeugt werden, und bei dem unter Verwendung der
Blockanpassung nicht nullwertige Bewegungsvektoren
identifiziert werden (18; 204), die Anwärter für die Umwandlung
in nullwertige Bewegungsvektoren, nachfolgend an Anwärter-
Bewegungsvektoren (Vc) bezeichnet, sind, gekennzeichnet
durch den folgenden Schritt:
- Bestimmen (100, 102; 209) ob ein Anwärter-Bewegungsvektor
(VC) mit Bewegungsvektoren von Blöcken in der unmittelbaren
Nachbarschaft des Blockes korreliert sind, der den Anwärter-
Bewegungsvektor hat, und wenn die Korrelation nicht
festgestellt wird, der Anwärter-Bewegungsvektor in einen
nullwertigen Bewegungsvektor umgewandelt wird, und wenn die
Korrelation festgestellt wird, der Anwärter-Bewegungsvektor nicht
in einen nullwertigen Bewegungsvektor umgewandelt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/030,968 US5508744A (en) | 1993-03-12 | 1993-03-12 | Video signal compression with removal of non-correlated motion vectors |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69419635D1 DE69419635D1 (de) | 1999-09-02 |
DE69419635T2 true DE69419635T2 (de) | 1999-12-02 |
Family
ID=21856949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69419635T Expired - Lifetime DE69419635T2 (de) | 1993-03-12 | 1994-03-11 | Bewegungsvektorprozessor für Bildsignalkompression |
Country Status (9)
Country | Link |
---|---|
US (1) | US5508744A (de) |
EP (1) | EP0615386B1 (de) |
JP (1) | JPH0750842A (de) |
KR (1) | KR100291493B1 (de) |
CN (1) | CN1054248C (de) |
CA (1) | CA2114401C (de) |
DE (1) | DE69419635T2 (de) |
ES (1) | ES2134318T3 (de) |
TW (1) | TW230862B (de) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266372B1 (en) * | 1993-03-31 | 2001-07-24 | Canon Kabushiki Kaisha | Apparatus for image reproduction using motion estimation |
JPH07135663A (ja) * | 1993-09-17 | 1995-05-23 | Oki Electric Ind Co Ltd | 動きベクトル検出方法および動きベクトル検出装置 |
FR2719397B1 (fr) * | 1994-04-27 | 1996-07-19 | Sgs Thomson Microelectronics | Dispositif d'alimentation en pixels d'une série d'opérateurs d'un circuit de compression d'images mobiles. |
JP2870415B2 (ja) * | 1994-08-22 | 1999-03-17 | 日本電気株式会社 | 領域分割方法および装置 |
US5623312A (en) * | 1994-12-22 | 1997-04-22 | Lucent Technologies Inc. | Compressed-domain bit rate reduction system |
AUPN399295A0 (en) * | 1995-07-06 | 1995-07-27 | Diginet Systems Pty. Limited | Virtual broadband transmission |
US5790207A (en) * | 1996-03-14 | 1998-08-04 | Daewoo Electronics, Co., Ltd. | Motion compensation method for use in an image encoding system |
WO1997046020A2 (en) * | 1996-05-24 | 1997-12-04 | Philips Electronics N.V. | Motion vector processing |
US5721595A (en) * | 1996-06-19 | 1998-02-24 | United Microelectronics Corporation | Motion estimation block matching process and apparatus for video image processing |
US7133455B2 (en) * | 2000-12-29 | 2006-11-07 | Intel Corporation | Providing error resilience and concealment for video data |
WO2003061284A1 (en) * | 2001-12-21 | 2003-07-24 | Polycom, Inc. | Motion wake identification and control mechanism |
US7817717B2 (en) * | 2002-06-18 | 2010-10-19 | Qualcomm Incorporated | Motion estimation techniques for video encoding |
US7742525B1 (en) * | 2002-07-14 | 2010-06-22 | Apple Inc. | Adaptive motion estimation |
US8133115B2 (en) | 2003-10-22 | 2012-03-13 | Sony Computer Entertainment America Llc | System and method for recording and displaying a graphical path in a video game |
EP1558039A1 (de) * | 2004-01-21 | 2005-07-27 | Deutsche Thomson-Brandt Gmbh | Verfahren und Vorrichtung zur Erzeugung/Auswertung von Prädiktionsinformationen in der Codierung/Decodierung eines Bildsignals |
JP2005348093A (ja) * | 2004-06-03 | 2005-12-15 | Sony Corp | 画像処理装置、そのプログラムおよびその方法 |
US7792188B2 (en) | 2004-06-27 | 2010-09-07 | Apple Inc. | Selecting encoding types and predictive modes for encoding video data |
US8111752B2 (en) * | 2004-06-27 | 2012-02-07 | Apple Inc. | Encoding mode pruning during video encoding |
US20050286777A1 (en) * | 2004-06-27 | 2005-12-29 | Roger Kumar | Encoding and decoding images |
TWI253001B (en) * | 2004-11-16 | 2006-04-11 | An Lnternet Products & Technol | Method for setting the threshold of a fast motion estimation algorithm |
JP4615508B2 (ja) * | 2006-12-27 | 2011-01-19 | シャープ株式会社 | 画像表示装置及び方法、画像処理装置及び方法 |
KR101548269B1 (ko) * | 2008-12-02 | 2015-08-31 | 삼성전자주식회사 | 블록 분할 및 결합을 통한 움직임 추정 장치 및 방법 |
US10786736B2 (en) | 2010-05-11 | 2020-09-29 | Sony Interactive Entertainment LLC | Placement of user information in a game space |
JP5387520B2 (ja) * | 2010-06-25 | 2014-01-15 | ソニー株式会社 | 情報処理装置と情報処理方法 |
JP5745693B2 (ja) | 2011-09-09 | 2015-07-08 | ケィティ、コーポレーションKt Corporation | 時間的な予測動きベクトル誘導方法及びこのような方法を用いる装置 |
US9225990B2 (en) * | 2011-11-08 | 2015-12-29 | Kt Corporation | Method and apparatus for coefficient scan based on partition mode of prediction unit |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58197983A (ja) * | 1982-05-14 | 1983-11-17 | Nec Corp | 動き補償フレ−ム間復号化装置 |
US4575756A (en) * | 1983-07-26 | 1986-03-11 | Nec Corporation | Decoder for a frame or field skipped TV signal with a representative movement vector used for individual vectors |
DE3855114D1 (de) * | 1987-05-06 | 1996-04-25 | Philips Patentverwaltung | System zur Übertragung von Videobildern |
DE3853555T2 (de) * | 1987-06-09 | 1995-08-17 | Sony Corp | Verarbeitung des Bewegungsvektors in digitalen Fernsehbildern. |
GB2231751B (en) * | 1989-04-27 | 1993-09-22 | Sony Corp | Motion dependent video signal processing |
DE69031107T2 (de) * | 1989-10-14 | 1997-11-13 | Sony Corp | Anordnung und Verfahren zum Übertragen eines Videosignals |
JP2833153B2 (ja) * | 1990-05-28 | 1998-12-09 | 松下電器産業株式会社 | 動きベクトル検出装置 |
EP0466981B1 (de) * | 1990-07-20 | 1997-02-26 | Koninklijke Philips Electronics N.V. | Vorrichtung zur Verarbeitung von Bewegungsvektoren |
GB2248361B (en) * | 1990-09-28 | 1994-06-01 | Sony Broadcast & Communication | Motion dependent video signal processing |
DE4030703A1 (de) * | 1990-09-28 | 1992-04-02 | Bosch Gmbh Robert | Verfahren zur schaetzung von bewegung in einem aufgenommenen bild |
JP2755851B2 (ja) * | 1991-05-31 | 1998-05-25 | 株式会社東芝 | 動画像符号化装置及び動画像符号化方法 |
KR0143220B1 (ko) * | 1992-04-16 | 1998-07-15 | 강진구 | 이동 벡터 추출 회로 및 방법 |
KR0152013B1 (ko) * | 1992-05-08 | 1998-10-15 | 강진구 | 가변장부호화를 고려한 움직임추정장치 |
-
1993
- 1993-03-12 US US08/030,968 patent/US5508744A/en not_active Expired - Lifetime
- 1993-06-29 TW TW082105179A patent/TW230862B/zh not_active IP Right Cessation
-
1994
- 1994-01-27 CA CA002114401A patent/CA2114401C/en not_active Expired - Fee Related
- 1994-03-09 JP JP6066780A patent/JPH0750842A/ja active Pending
- 1994-03-09 KR KR1019940004502A patent/KR100291493B1/ko not_active IP Right Cessation
- 1994-03-11 DE DE69419635T patent/DE69419635T2/de not_active Expired - Lifetime
- 1994-03-11 EP EP94301759A patent/EP0615386B1/de not_active Expired - Lifetime
- 1994-03-11 CN CN94102289A patent/CN1054248C/zh not_active Expired - Fee Related
- 1994-03-11 ES ES94301759T patent/ES2134318T3/es not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0615386A2 (de) | 1994-09-14 |
EP0615386B1 (de) | 1999-07-28 |
EP0615386A3 (de) | 1995-02-22 |
TW230862B (de) | 1994-09-21 |
CA2114401A1 (en) | 1994-09-13 |
ES2134318T3 (es) | 1999-10-01 |
KR100291493B1 (ko) | 2001-09-17 |
US5508744A (en) | 1996-04-16 |
CN1095878A (zh) | 1994-11-30 |
JPH0750842A (ja) | 1995-02-21 |
CA2114401C (en) | 2003-07-15 |
CN1054248C (zh) | 2000-07-05 |
DE69419635D1 (de) | 1999-09-02 |
KR940023247A (ko) | 1994-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69419635T2 (de) | Bewegungsvektorprozessor für Bildsignalkompression | |
DE69131438T2 (de) | Adaptive Bewegungskompensation für das digitale Fernsehen | |
DE69817460T2 (de) | Bildsequenzdekodierungsverfahren | |
DE69323156T2 (de) | Bilddatenkomprimierungs/Dekomprimierungssystem | |
DE69525009T2 (de) | Verfahren zur differentiellen Kodierung von Bewegungsvektoren mit Mittelwertprädiktion | |
DE69330620T2 (de) | Verfahren und Einrichtung zur Bildkodierung | |
DE69129595T2 (de) | Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen | |
DE69312132T2 (de) | Bildkompressionsgerät | |
DE69223560T2 (de) | Einrichtung zur Verminderung von Quantisierungsstörungen in einem Zwischenbild-Hybrid-Kodierungssystem mit Bewegungskompensation | |
DE69232063T2 (de) | Adaptive Bewegungskompensation mit mehreren Bewegungskompensatoren | |
DE69801209T2 (de) | Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer | |
DE69637335T2 (de) | Bildsignalkodierungsmethode und -vorrichtung | |
DE19506372B4 (de) | Bi-Direktionales Bewegungsschätzverfahren und ein dafür vorgesehenes Gerät | |
DE69425919T2 (de) | Adaptive Komprimierung von digitalen Videodaten | |
EP0309669B1 (de) | Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69417480T2 (de) | Bestimmung von Bewegungsvektoren in einem Videokodierer mit Bilddezimation | |
DE69620984T2 (de) | Geräuschschätzungs- und Geräuschreduzierungsgerät zur Videosignalverarbeitung | |
DE69031045T2 (de) | Einrichtung zur adaptiven Zwischenbild-Prädiktionsdekodierung eines Videosignals | |
DE19704439C2 (de) | Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien | |
DE69624669T2 (de) | Videokodierer und -dekodierersystem und -methoden | |
DE19743202B4 (de) | Verfahren zum Codieren eines Bewegungsvektors | |
DE69222082T2 (de) | Kodierung von Videosignalen | |
DE4442643B4 (de) | Verfahren zum Abschätzen der Bewegung in einem Bewegtbild | |
DE69630199T2 (de) | Verfahren und gerät zur selektiven kompression von video-codec |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |