[go: up one dir, main page]

DE69429377T2 - Halbpixelinterpolation für ein bewegungskompensiertes Digitalvideosystem - Google Patents

Halbpixelinterpolation für ein bewegungskompensiertes Digitalvideosystem

Info

Publication number
DE69429377T2
DE69429377T2 DE69429377T DE69429377T DE69429377T2 DE 69429377 T2 DE69429377 T2 DE 69429377T2 DE 69429377 T DE69429377 T DE 69429377T DE 69429377 T DE69429377 T DE 69429377T DE 69429377 T2 DE69429377 T2 DE 69429377T2
Authority
DE
Germany
Prior art keywords
pixels
video frame
pixel
block
interpolation
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
Application number
DE69429377T
Other languages
English (en)
Other versions
DE69429377D1 (de
Inventor
John Fox
Vincent Liu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arris Technology Inc
Original Assignee
General Instrument Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by General Instrument Corp filed Critical General Instrument Corp
Publication of DE69429377D1 publication Critical patent/DE69429377D1/de
Application granted granted Critical
Publication of DE69429377T2 publication Critical patent/DE69429377T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf die Komprimierung von Digitaldaten, und insbesondere auf ein Verfahren und eine Vorrichtung zur Interpolation von Pixeln in einem bewegungskompensierten Digitalvideosystem.
  • Fernsehsignale werden gemäß verschiedenen, von bestimmten Ländern angenommenen Standards herkömmlich in analoger Form übertragen. Zum Beispiel haben die Vereinigten Staaten die Standards des National Television System Committee ("NTSC") angenommen. Die meisten europäischen Länder haben entweder PAL (Phasen abwechselnde Leitung) oder SECAM Standards angenommen.
  • Die digitale Übertragung von Fernsehsignalen kann Video- und Audioservices von erheblich höherer Qualität liefern als analoge Techniken. Digitale Übertragungsschemata sind insbesondere vorteilhaft für Signale, die über ein Kabelfernsehnetzwerk oder über Satellit an Kabelfernsehmitglieder und/oder direkt an hauseigene Satellitfernsehempfänger übertragen werden. Man erwartet, daß digitale Fernsehübertragungs- und -empfängersysteme existierende analoge Systeme ersetzen werden, ebenso wie digitale Compact Discs analoge, Grammophon-Schallplatten in der Audioindustrie weitgehend ersetzt haben.
  • In jedem digitalen Fernsehsystem muß eine wesentliche Menge an digitalen Daten übertragen werden. Dies gilt insbesondere, wo hochauflösendes Fernsehen ("HDTV") bereitgestellt wird. In einem digitalen Fernsehsystem empfängt ein Teilnehmer den digitalen Datenstrom über einen Empfänger/Entwürfler, der Video- und Audiodaten an den Teilnehmer bereitstellt. Um das verfügbare Radiofrequenzspektrum am effizientesten zu nutzen, ist es vorteilhaft, die digitalen Fernsehsignale zu komprimieren, um die Menge an Daten, die übertragen werden müssen, zu minimalisieren.
  • Der Video-Teil eines Fernsehsignals umfaßt eine Sequenz von Video- "Frames", die zusammen ein bewegtes Bild bereitstellen. Bei digitalen Fernsehsystemen wird jede Linie eines Video-Frames durch eine Sequenz von Digitaldatenbits, die als "Pixel" bezeichnet werden, festgelegt. Zur Bestimmung jedes Video-Frames eines Fernsehsignals ist eine große Menge an Daten erforderlich. Zum Beispiel sind 7,4 Megahits an Daten erforderlich, um ein Video-Frame mit NTSC-Auflösung bereitzustellen. Dies setzt voraus, daß eine Anzeige von 640 Pixeln mal 480 Linien mit einem 8 Bit-Intensitätswert für jede der Grundfarben rot, grün und blau verwendet wird. Hochauflösendes Fernsehen erfordert wesentlich mehr Daten zum Bereitstellen jedes Video-Frames. Um diese Menge an Daten zu verwalten, müssen insbesondere für HDTV-Anwendungen die Daten komprimiert werden.
  • Videokompressionstechniken ermöglichen die effiziente Übertragung von digitalen Videosignalen über herkömmliche Informationskanäle. Solche Techniken verwenden Kompressionsalgorithmen, die sich die Korrelation zwischen angrenzenden Pixeln zunutze machen, um eine effizientere Darstellung der wichtigen Information in einem Videosignal abzuleiten. Die stärksten Kompressionssysteme machen sich nicht nur die räumliche Korrelation zunutze, sondern können auch Ähnlichkeiten zwischen angrenzenden Frames nutzen, um die Daten noch mehr zu verdichten. Bei solchen Systemen wird für gewöhnlich Differenzcodierung angewandt, um nur den Unterschied zwischen einem gegenwärtigen Frame und der Prädiktion des gegenwärtigen Frames zu übertragen. Die Prädiktion beruht auf Informationen, die von einem vorhergehenden Frame der selben Videosequenz hergeleitet wurden. Aufgrund der bedeutenden Menge an Frame-zu-Frame-Redundanz, die typisch bei Fernseh- Programmsignalen ist, kann wesentliche Effizienz erreicht werden.
  • Ein Beispiel eines Videokompressionssystems, das Bewegungskompensation verwendet, ist in Ninomiya und Ohtsuka, "A Motion-Compensated Interframe Coding System for Television Pictures," IEEE Transactions on Communications, Band COM-30, Nr. 1, Januar 1982 beschrieben. Der darin beschriebene Bewegungsschätzalgorithmus ist von blockanpassendem Typ. In diesem Fall wird ein Bewegungsvektor für jeden Block im gegenwärtigen Frame eines Bildes bestimmt, indem ein Block im vorhergehenden Frame identifiziert wird, der dem bestimmten Block am meisten ähnelt. Der gesamte gegenwärtige Frame kann dann an einem Dekodierer rekonstruiert werden, indem der Unterschied zwischen den sich entsprechenden Blockpaaren, zusammen mit den Bewegungsvektoren, die erforderlich sind, um die sich entsprechenden Paare zu identifizieren, übermittelt werden. Die Menge an übertragenen Daten wird oft noch weiter reduziert, indem sowohl die verschobenen Blockunterschiede, als auch die Bewegungsvektorsignale komprimiert werden. Blockanpassende Bewegungsschätzalgorithmen sind besonders wirksam, wenn sie mit blockbasierten räumlichen Komprimierungstechniken, wie der diskreten Kosinustransformation (DCT) kombiniert werden.
  • Andere Beispiele von Bewegungskompensationssystemen können in U.S. Patent Nr. 4,802,006 an linuma et al., mit dem Titel "Signal Processing Unit for Producing a Selected One of Signals Predictive of Original Signals," 4,816,906 an Kummerfeldt et al., mit dem Titel "Method for Motion- Compensated Frame-to-Frame Prediction Coding," 4,827,340 an Pirsch, mit dem Titel "Video-Signal DPCM Coder with Adaptive Prediction," 4,897,720 an Wu et al., mit dem Titel "Circuit Implementation of Block Matching Algorithm," und europäische Patent-Veröffentlichung Nr. 0 237 989 an Takenaka et al., mit dem Titel "Differential Coding Apparatus Having an Optimum Predicted Value Determining Circuit", gefunden werden. Bei solchen Systemen des bisherigen Stands der Technik wird typischerweise ein Suchbereich in einem vorhergehenden Frame durchsucht, indem ein Pixelblock aus dem gegenwärtigen Frame in der oberen, linken Ecke des Suchbereichs plaziert wird und der Fehler (z. B. mittleres Quadrat oder mittlere Absolute) in bezug auf die überlappenden Pixel im Suchbereich berechnet wird. Der Block des gegenwärtigen Frames wird dann Pixel für Pixel zum rechten Rand des Suchbereichs bewegt. Bei jedem Schritt wird der Fehler in bezug auf die überlappenden Pixel des Suchbereichs berechnet. Der Block des gegenwärtigen Frames wird dann im Suchbereich um eine Pixelreihe herunterbewegt und wiederum Pixel für Pixel aus dem linken Rand des Suchbereichs zum rechten Rand bewegt. Dieser Vorgang wiederholt sich, solange bis eine Fehlerfunktion für alle möglichen Blockpositionen im Suchbereich berechnet ist.
  • Wenn die Prädiktion eines gegenwärtigen Frame-Blocks von einem vorhergehenden Frame-Block gut ist, d. h., wenn der Prädiktions-Frame eine starke Ähnlichkeit zum zu übertragenden Frame aufweist, verbleibt nur eine kleine Menge an Restfehler zur Übertragung. Dies führt zu einer hohen Kompressionseffizienz. Wird eine schlechte Prädiktion gemacht, kann der Restfehler so groß sein, daß er sich nachteilig auf die Kompressionseffizienz auswirkt. Eine genaue Prädiktion der Frame-zu- Frame Bewegung in einer Videosequenz ist somit zum Enreichen eines hohen Kompressionsverhältnisses wesentlich.
  • In einer typischen Videosequenz kann die Szene viele Objekte enthalten, die sich bei unterschiedlicher Geschwindigkeit und Richtung unabhängig voneinander bewegen. Um Hardware Implementierung zu erleichtern und die Menge an Informationen, die benötigt werden, um jede Bewegung darzustellen, zu beschränken, wird, wie oben vermerkt, ein Video-Frame oft in rechteckige Blocks unterteilt. Man nimmt dann an, daß sich nur die Blocks mit unabhängiger Geschwindigkeit und Richtung bewegen. Um die Systemkomplexität zu reduzieren und die Geschwindigkeit zu erhöhen, kann der Bereich, der für die beste Anpassung zwischen einem gegenwärtigen Frame-Block und einem vorhergehenden Frame-Block durchsucht wird, auf die Umgebung um den Target-Block herum beschränkt werden. Diese Einschränkung im Suchbereich ist für gewöhnlich akzeptabel, da die Bewegung eines Objektes in den meisten Videosequenzen selten schnell genug ist, um eine große Verschiebung von einem Frame zum nächsten hervorzurufen. Mit einem eingeschränkten Suchbereich ist es möglich, eine erschöpfende Suche effizient durchzuführen, um die beste Anpassung zu finden. Sobald die beste Anpassung gefunden ist, wird der Prädiktions-Frame durch Zusammensetzen der am besten angepassten Blocks konstruiert. Um diese Hardware zu implementieren, wird der vorherige Frame in einem Direktzugriffspeicher gespeichert und der Prädiktions-Frame wird Block für Block aus dem Speicher generiert, indem jedes Pixel einzeln unter Verwendung des angemessenen Verschiebungsvektors für den Block gelesen wird.
  • Wenn die Objekte in einer Videosequenz sowohl senkrecht als auch waagerecht durch eine Anzahl ganzzahliger Pixel verschoben wird, erzeugt dieses Verfahren einen korrekten Prädiktions-Frame. Allerdings ergeben die Objektverschiebungen in einer typischen Videosequenz für gewöhnlich keine Anzahl ganzzahliger Pixel im Abstand. In den Fällen, bei denen die Verschiebung zwischen zwei Pixel fällt, kann ein besserer Prädiktions-Frame unter Verwendung von Werten, die aus den angrenzenden Pixeln interpoliert werden, erzeugt werden. Wenn man nur die Mittelpunkte zwischen Pixeln erwägt, gibt es drei mögliche Interpolationsmodi, d. h., waagerechte, senkrechte und diagonale. Waagerechte Interpolation besteht aus einer Entnahme des Durchschnitts zweier waagerecht angrenzender Pixel. Senkrechte Interpolation wird durch Berechnung des Durchschnitts zwischen zwei senkrecht angrenzenden Pixeln generiert. Diagonale Interpolation erfordert die Bildung des Durchschnitts von vier benachbarten Pixeln.
  • Ein Verfahren zur Implementierung der Interpolation in einem Prädiktionsschema ist das Speichern des vorhergehenden Frames in einem Direktzugriffspeicher und das Durchführen der Interpolation auf einer Pixel pro-Pixel-Basis. Um einen Interpolationswert zu berechnen ist es notwendig, für die diagonale Interpolation auf vier Pixel aus dem Speicher zuzugreifen. Für die waagerechte und senkrechte Interpolation werden zwei Pixel benötigt, um ein interpoliertes Pixel zu generieren. Somit wird bei jeder der drei Interpolationsmodi die Anzahl an interpolierten Pixeln, die generiert werden, von der Anzahl an Speicherzugriffszyklen, die benötigt werden, um die Pixel zu erhalten, die für die Interpolation notwendig sind, übertroffen. Diese Tatsache reduziert den Durchsatz des Systems bis zu einem Punkt, bei dem es unpraktisch sein kann.
  • Ein anderes Verfahren zur Implementierung der Interpolation ist das Vorausberechnen der interpolierten Werte für das gesamte Suchfenster, das auf jedem der drei Interpolationsmodi basiert. Die vorausberechneten Werte werden in drei getrennten Speichern gespeichert. Wenn der Block- Verschiebungsvektor eines der drei interpolativen Modi verwendet, wird der Prädiktions-Block durch Zugriff auf den geeigneten Speicher generiert. Die Bedingung für drei zusätzliche Speicher in einem solchen Schema ist offensichtlich im Hinblick auf die Hardware-Komplexität und -Kosten von Nachteil.
  • EP 0 517 095 A1 offenbart einen Bildsignal-Interpolationsschaltkreis mit einer Vielzahl von parallel integrierten Schaltkreisen. Die Pixeldaten werden in jedem der integrierten Schaltkreise mit vier Pixeln pro integriertem Schaltkreis gespeichert.
  • Ziel der Erfindung ist, eine neues, effizientes Verfahren zum Generieren von interpolierten Pixeln bereitzustellen.
  • Dieses Ziel wird durch ein Verfahren gemäß Anspruch 1 und weitere vorteilhafte Ausführungsformen des Verfahrens gemäß Ansprüchen 2 bis 7 erreicht.
  • Dieses Ziel wird ferner durch eine Vorrichtung gemäß Anspruch 8 und weiterer vorteilhafter Ausführungsformen gemäß Ansprüchen 9 bis 17 erreicht.
  • Ein Vorteil der Erfindung ist, ein neues Verfahren zum Generieren von interpolierten Pixeln bereitzustellen, das effizient, verhältnismäßig einfach zu implementieren und kosteneffektiv ist. Ein solches Schema erfordert keine Verwendung zusätzlicher Speicher. Außerdem ist die Anzahl an Speicherzugriffszyklen auf nicht mehr als die Anzahl an generierten, interpolierten Pixeln beschränkt. Die vorliegende Erfindung stellt ein Verfahren und eine Vorrichtung bereit, die diese und andere Vorteile besitzen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren zum Verarbeiten von vorhergehenden Framedaten in einem bewegungskompensierten Digitalvideosystem zur Interpolation von Pixeln, die im Wiederaufbauen eines gegenwärtigen Video-Frames verwendet werden, bereitgestellt. Pixeldaten aus einem vorhergehenden Video-Frame werden in Blockabschnitten angeordnet, die eine Vielzahl von N Pixeln enthalten. Die Blockabschnitte werden in einem Speicher gespeichert um die Wiedergewinnung von mindestens einem Blockabschnitt pro Speicherzugriffszyklus zu ermöglichen. Eine Vielzahl M von Blockabschnitten wird aus dem Speicher als Antwort auf einen Verschiebungsvektor, der mit einem Teil eines gegenwärtigen Video- Frames verbunden ist, wiedergewonnen. M ist kleiner als N oder von gleicher Größe. Die M Blockabschnitte werden höchsten in M Speicherzugriffszyklen wiedergewonnen. Eine Teilmenge von Pixeln wird aus einer ausgewählten Vielzahl von Blockabschnitten zur Verwendung beim Interpolieren von Pixeln des gegenwärtigen Video-Frame-Teils ausgewählt. Die Teilmenge von Pixeln wird über höchstens N Speicherzugriffszyklen verarbeitet, um N interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen.
  • N ist mindestens die höchste Anzahl von Pixeln, die notwendig ist, um ein interpoliertes Pixel unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten. Wo diagonale Interpolation erwünscht ist, muß N zum Beispiel mindestens vier sein, da diagonale Interpolation den Durchschnitt von vier Pixeln erfordert. In einer dargestellten Ausführungsform umfaßt der Schritt zur Anordnung von Pixeldaten in Blockabschnitte das gleichmäßige Aufteilen von Pixeln aus dem vorhergehenden Video-Frame in Blockabschnitte. Ein Block von sechzehn Pixeln, der vier Pixel breit und vier Pixel hoch ist, könnte, nur beispielsweise, somit in vier Blockabschnitte, die jeweils zwei Pixel hoch mal zwei Pixel breit sind, unterteilt werden.
  • Waagerechte, senkrechte und diagonale Interpolation kann unter Verwendung von bis zu vier vorhergehenden Frame-Pixeln bereitgestellt werden, um jedes interpolierte gegenwärtige Frame-Pixel zu erhalten. In diesem Fall umfaßt der Verarbeitungsschritt des erfinderischen Verfahrens die Schritte des Auswählens von vier Pixeln aus der Teilmenge von Pixeln zur Verwendung bei der Interpolation eines gegenwärtigen Frame-Pixels. Zwei von den vier ausgewählten Pixeln werden als Antwort auf ein waagerechtes oder senkrechtes Interpolationssteuerungssignal im Durchschnitt gebildet. Alle der vier ausgewählten Pixel werden als Antwort auf ein diagonales Interpolationssteuerungssignal im Durchschnitt gebildet, um ein interpoliertes Pixel zu erhalten.
  • Die Vorrichtung wird gemäß der vorliegenden Erfindung zum Interpolieren von Pixeln, die zum Wiederaufbauen eines gegenwärtigen Video-Frames aus Pixeln eines vorhergehenden Video-Frames in einem bewegungskompensierten Digitalvideosystem verwendet werden, bereitgestellt. Das Speichermittel speichert Blockabschnitte, wobei jeder eine Vielzahl N von Pixeln aus dem vorhergehenden Video-Frame enthält. Das Mittel wird zur Wiedergewinnung einer Vielzahl M von Blockabschnitten aus dem Speichermittel als Antwort auf einen Verschiebungsvektor bereitgestellt, der mit einem Teil eines gegenwärtigen Video-Frames, für den die Pixel interpoliert werden sollen, verbunden ist. M ist kleiner als N oder von gleicher Größe und die M Blockabschnitte werden höchstens in M Speicherzugriffszyklen des Speichermittels wiedergewonnen. Ein Mittel wird bereitgestellt, um eine Teilmenge von Pixeln aus der wiedergewonnenen Vielzahl von Blockabschnitten zur Verwendung beim Interpolieren von Pixeln für den gegenwärtigen Video-Frame-Teil auszuwählen. Die Teilmenge von Pixeln wird von einem Verarbeitungsmittel über höchstens N Speicherzugriffszyklen verarbeitet, um N interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen. In einer bevorzugten Ausführungsform ist N mindestens die höchste Anzahl von Pixeln, die notwendig ist, um ein interpoliertes Pixel unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten. Der gegenwärtige Video-Frame-Teil, für den die Pixel interpoliert werden sollen, umfaßt einen Pixelblock, der in Größe mit einer ganzzahligen Anzahl der Blockabschnitte übereinstimmt.
  • Das Verarbeitungsmittel kann waagerechte, senkrechte und diagonale Interpolation unter Verwendung von bis zu vier vorhergehenden Frame- Pixeln bereitstellen, um jedes gegenwärtige interpolierte Frame-Pixel zu erhalten. Ein solches Verarbeitungsmittel umfaßt ein Mittel zum Auswählen von vier Pixeln aus der Teilmenge von Pixeln zur Verwendung beim Interpolieren eines gegenwärtigen Frame-Pixels und ein Mittel zum Bilden des Durchschnitts von zwei der vier ausgewählten Pixel als Antwort auf ein waagerechtes oder ein senkrechtes Interpolationssteuerungssignal, um ein waagerecht oder senkrecht interpoliertes Pixel zu erhalten und ein Mittel zum Bilden des Durchschnitts von allen der vier ausgewählten Pixel als Antwort auf das diagonale Interpolationssteuerungssignal, um ein diagonal interpoliertes Signal zu erhalten.
  • Die Blockabschnitte können eine waagerechte Dimension K und eine senkrechte Dimension L aufweisen. In diesem Fall kann das Auswahlmittel eine Vielzahl K+1 oder Schieberegister umfassen, wobei jedes davon L+1 Stufen zum gemeinsamen Halten der Teilmenge von Pixeln aufweist. Ein Multiplexermittel, das mit ausgewählten Ausgängen der Schieberegister gekoppelt ist, stellt eine unterschiedliche Gruppe von vorhergehenden Frame-Pixeln aus den Schieberegistern für das Durchschnittsbildungsmittel jeden Speicherzugriffszyklus bereit. Jede Gruppe vorhergehender Frame-Pixel kann ein oberes, linkes Eckpixel P&sub0;, ein oberes rechtes Eckpixel P&sub1;, ein unteres rechtes Eckpixel P&sub2;, und ein unteres linkes Eckpixel P&sub3;, die ein Quadrat bilden, umfassen. In einer solchen Ausführungsform kann das Durchschnittsbildungsmittel ein erstes Mittel zum Ausgeben der durch zwei geteilten Summe von Pixel P&sub0; und Pixel P&sub1;, als Antwort auf das waagerechte Interpolationssteuerungssignal umfassen. Ein zweites Mittel gibt die durch zwei geteilte Summe von Pixel P&sub0; und Pixel P&sub3; als Antwort auf das senkrechte Interpolationssteuerungssignal aus. Ein drittes Mittel gibt die durch vier geteilte Summe von Pixeln P&sub0;, P&sub1;, P&sub2; und P&sub3; als Antwort auf das diagonale Interpolationssteuerungssignafaus. Das erste, zweite und dritte Mittel kann herkömmliche Addier-, Subtrahier- und Multiplexschaltkreise umfassen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist eine diagrammatische Darstellung, die zeigt, wie ein gegenwärtiger Frameblock aus einem bewegungskompensierten Block eines vorhergehenden Frames prädiktiert wird;
  • Fig. 2 ist eine diagrammatische Darstellung, die die waagerechte Interpolation eines Blockabschnitts zeigt;
  • Fig. 3 ist eine diagrammatische Darstellung, die die senkrechte Interpolation eines Blockabschnitts zeigt;
  • Fig. 4 ist eine diagrammatische Darstellung, die die diagonale Interpolation eines Blockabschnitts zeigt;
  • Fig. 5 ist eine diagrammatische Darstellung, die die Auswahl einer Teilmenge von Pixeln aus einer Vielzahl von Blockabschnitten zum Bereitstellen einer diagonalen Interpolation eines Blockabschnitts zeigt;
  • Fig. 6 ist ein Blockdiagramm der Vorrichtung gemäß der vorliegenden Erfindung;
  • Fig. 7 und 8 sind schematische Diagramme einer Ausführungsform eines Datenwählers, der im in Fig. 6 gezeigten Schaltkreis verwendet werden kann;
  • Fig. 9 ist eine diagrammatische Darstellung, welche die Stellen der Pixeldaten zeigt, die bei der Durchführung von Interpolationen zu unterschiedlichen Zeitpunkten innerhalb der in Fig. 8 gezeigten Schieberegister verwendet werden; und
  • Fig. 10 ist ein schematisches Diagramm einer Ausführungsform eines Durchschnittsbildungsschaltkreises, der in der in Fig. 6 gezeigten Vorrichtung verwendet werden kann.
  • BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Die vorliegende Erfindung ermöglicht die effiziente Interpolation von Pixeln für nicht-ganzzahlige Verschiebungen in einem bewegungskompensierten Digitalvideosystem. Bei der Digitalvideoverarbeitung wird jeder Video-Frame zu Reihen von Bildelementen, die als "Pixel" bezeichnet werden, digitalisiert. In einer bevorzugten Ausführungsform der vorliegenden Erfindung wird jeder Video-Frame in rechteckige Blocks, die i Pixel breit und j Pixel hoch sind, aufgeteilt. Für jeden zu übertragenden Video-Frame, der als "gegenwärtiger Frame" bezeichnet wird, gibt es einen entsprechenden "vorhergehenden Frame", der durch Kompression und Expansion des vorherigen Video-Frames hergeleitet wird. Eine Prädiktion des gegenwärtigen Video-Frames kann aus dem vorhergehenden Frame gemacht werden. Um diese Prädiktion generieren zu können, wird die Bewegung eines jeden Blocks im gegenwärtigen Frame geschätzt, indem er mit dem vorhergehenden Frame verglichen wird.
  • Die Frame-zu-Frame-Bewegung eines Blocks kann durch einen Verschiebungsvektor repräsentiert sein, der eine waagerechte Komponente und eine senkrechte Komponente umfaßt. Die waagerechten und senkrechten Komponenten sind in der Länge nicht unbedingt auf eine ganzzahlige Anzahl von Pixeln beschränkt. Das Verfahren der "Bewegungsschätzung" findet den Verschiebungsvektor im vorhergehenden Frame, der zur besten Schätzung eines Blocks im gegenwärtigen Frame führt.
  • Unter Bezugnahme auf Fig. 1 gibt es im vorhergehenden Frame 14 für jeden Block 12 eines gegenwärtigen Frames 10 einen entsprechenden Pixelblock 16, der als nichtkompensierter Block bezeichnet wird. In den Fällen, bei denen die waagerechten und senkrechten Komponenten eines Verschiebungsvektors 18 eine ganzzahlige Anzahl von Pixeln aufweisen, wird ein bewegungskompensierter Block 20 als Pixelblock festgelegt, der aus dem nichtkompensierten Block durch das Verschieben seiner waagerechten und/oder senkrechten Grenzen um die im Verschiebungsvektor festgelegte Menge hergeleitet wird.
  • In solchen Fällen, bei denen das Bewegungsschätzverfahren Verschiebungsvektoren generiert, die nicht-ganzzahlig sind, werden die bewegungskompensierten Blocks durch Interpolation erhalten. Der bewegungskompensierte Block wird insbesondere für nicht-ganzzahlige waagerechte Vektorkomponenten aus dem nichtkompensierten Block hergeleitet, indem der nichtkompensierte Block mit einem abgestumpften Verschiebungsvektor verschoben wird und der Durchschnitt eines jeden Pixels im verschobenen Block mit dem Pixel zu seiner unmittelbaren Rechten gebildet wird. Das Abstreichen des Verschiebundsvektors entfernt den nicht-ganzzahligen Teil des Vektors. Somit wird zum Beispiel in einem Fall, bei dem die waagerechte Verschiebungsvektorkomponente 5,5 ist und die senkrechte Komponente 3,0 ist, die waagerechte Komponente auf 5,0 abgestrichen und die waagerechte Interpolation durchgeführt. Diese Situation ist in Fig. 2 dargestellt.
  • Unter Bezugnahme auf Fig. 2 wird ein nichtkompensierter Block 16a von dem Verschiebungsvektor 18a zu der aus dem teilweise bewegungskompensierten Block 20a dargestellten Position (5 quer, 3 nach unten) verschoben. In Wirklichkeit ist die waagerechte Verschiebungsvektorkomponente 5,5 groß, was einen völlig bewegungskompensierten Block 22a ergeben würde. Um einen völlig bewegungskompensierten Block 22a zu erhalten, wird der teilweise bewegungskompensierte Block 20a (unter Verwendung von ganzzahligen Verschiebungsvektoren erhalten) unter Verwendung von waagerechter Interpolation interpoliert. Die Interpolation wird, wie in Fig. 2 angedeutet, durch paarweises Bilden des Durchschnitts von waagerecht angrenzenden Blocks durchgeführt. Somit wird zum Beispiel das obere, linke Pixel des bewegungskompensierten Blocks 22a durch Bilden des Durchschnitts der Pixel 21 und 23 des teilweise bewegungskompensierten Blocks 20a erhalten. Jedes der anderen Pixel des bewegungskompensierten Blocks 22a wird durch Bilden des Durchschnitts der zwei Pixel, die es in Block 20a überlappt, bestimmt.
  • Für senkrechte Verschiebungsvektorkomponenten, die nicht-ganzzahlig sind, wird der bewegungskompensierte Block auf ähnliche Weise hergeleitet, mit der Außnahme, daß das Bilden des Durchschnitts senkrecht berechnet wird. Dies ist in Fig. 3 dargestellt, wobei der nichtkompensierte Block 16b vom Bewegungsvektor 18b verschoben wird, um einen teilweise bewegungskompensierten Block 20b zu erhalten. Bewegungsvektor 18b (5, 3) wurde von dem nicht-ganzzahligen Wert (5, 3,5) abgestrichen. Um einen völlig bewegungskompensierten Block 22b zu erhalten, wird senkrechte Interpolation durchgeführt. Um zum Beispiel das obere, linke Pixel im bewegungskompensierten Block 22b zu erhalten, wird der Durchschnitt der Pixel 21 und 25 aus Block 20b gebildet. Jedes der anderen Pixel im bewegungskompensierten Block 22b wird durch Bilden des Durchschnitts des Blocks 20b, welcher das erwünschte Pixel überlappt, erhalten.
  • Wenn beide Verschiebungsvektorkomponenten nicht-ganzzahlig sind, wird ein Durchschnitt von vier Pixeln berechnet. Die vier Pixel bestehen aus den verschobenen Pixeln, ein Pixel zu seiner Rechter, ein Pixel unmittelbar unter ihm und ein Pixel, das sich in der unteren, rechten Ecke in der Gruppe aus vier Pixeln befindet. Dies ist in Fig. 4 dargestellt, wobei der nichtkompensierte Block 16c von dem abgestrichenen Bewegungsvektor 18c (5, 3) verschoben wird, um einen teilweise bewegungskompensierten Block 20c zu erhalten. Um einen völlig bewegungskompensierten Block 22c zu erhalten, wird der Durchschnitt der vier Pixel des Blocks 20c, die von jedem Pixel des Blocks 22c überlappt werden, gebildet. Somit wird zum Beispiel der Durchschnitt von Pixeln 21, 23, 25 und 27 des Blocks 20c gebildet, um das obere, linke Eckpixel des Blocks 22c zu erhalten. Die interpolierten Pixel in Block 22c entsprechen einer Verschiebung des nichtkompensierten Blocks um 5, 5 in waagerechter Richtung und 3,5 in senkrechter Richtung.
  • Die Verschiebungsvektoren können von jedem beliebigen Bewegungsschätzalgorithmus generiert werden. Mit dem Verschiebungsvektor, der bekannt ist für jeden Videoblock im gegenwärtigen Frame, können die bewegungskompensierten Blocks gemäß der vorliegenden Erfindung aus den vorhergehenden Frame- Speicherdaten wiedergewonnen und interpoliert werden insbesondere stellt die vorliegende Erfindung eine einmalige Art zur Verwaltung des vorhergehenden Frame-Speichers und des Zugriffszyklus zu diesem Speicher bereit, um ein interpoliertes Pixel für jeden Speicherzugriffszyklus bereitzustellen.
  • Gemäß der vorliegenden Erfindung wird jeder Pixelblock im vorhergehenden Frame in rechteckige Blockabschnitte von K · L Pixeln unterteilt. K repräsentiert die waagerechte Dimension des Blockabschnitts und L repräsentiert dessen senkrechte Dimension. Es besteht Freiheit in der Auswahl von K und L, vorausgesetzt, daß jeder Blockabschnitt mindestens die maximale Anzahl an Pixeln enthält, die erforderlich sind, um ein interpoliertes Pixel unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten. Im oben aufgezeigten Beispiel ist die maximale Anzahl an Pixeln, die erforderlich ist, um ein interpoliertes Pixel zu erhalten, vier. Wie in Fig. 4 dargestellt, repräsentiert dies die vier Pixel, die notwendig sind, um jedes diagonal interpolierte Pixel zu erhalten.
  • Die Auswahl von K und L ist auch durch die Bedingung erzwungen, daß eine gerade Anzahl von Blockabschnitten in jeden Block Paßt. Der vorhergehende Frame-Speicher wird so eingestellt, daß jede Speicherstelle einen Blockabschnitt speichert. Somit wird für jeden Speicherzugriffszyklus ein voller Blockabschnitt, der mindestens die Anzahl Pixel enthält, die erforderlich sind, um ein neues Pixel zu interpolieren, erhalten. Alle Pixel für einen Block werden in einer geraden Anzahl an Speicherzugriffszyklen erhalten. Ein Direktzugriffsspeicher mit einem Datenbus, der K · L · 8 Bits breit ist, wird da, wo jedes Pixel acht Bits lang ist, zum Speichern des vorhergehenden Framepixels verwendet. Da jedes Pixel acht Bits breit ist, kann jede Speicherstelle einen Pixelblockabschnitt speichern, um die bereits erwähnten Vorteile zu erreichen. Es versteht sich, daß die Anzahl der Bits, die jedes Pixel festlegen, verändert werden kann, in welchem Fall die Breite des Direktzugriffsspeichers dementsprechend verändert werden sollte.
  • In einem System, bei dem diagonale Interpolation erforderlich ist, kann der bewegungskompensierte Blockabschnitt durch Wiedergewinnung der Pixel aus vier Blockabschnitten bestimmt werden. Insbesondere, wenn angenommen wird, daß ein Blockabschnitt im gegenwärtigen Frame einen Verschiebungsvektor von (dh dv) aufweist und sich der nichtkompensierte Blockabschnitt im vorhergehenden Frame bei der Speicheradresse (uh uv) befindet. Aufgrund der Interpolation zwischen Pixeln, erfordert die Berechnung des bewegungskompensierten Blockabschnitts Pixel aus vier Blockabschnitten. Die vier Blockabschnitte befinden sich bei den Speicheradressen:
  • (MCh MCv), (MCh+1 MCv), (MCh MCv+1) und
  • (MCh+1 MCv+1)
  • wobei die Spalten- und Reihen-Adressen MCh und MCv aus folgenden Gleichungen berechnet werden:
  • MCh = Uh + ganzzahliger Abstrich von(dh/K)
  • MCv = Uv + ganzzahliger Abstrich von (dv/L).
  • Nicht jedes Pixel in den vier Blockabschnitten wird im Interpolationsverfahren benötigt. Für einen diagonal interpolierten Blockabschnitt entspricht die Anzahl an Pixeln, die benötigt werden, (K+1 mal L+1). Dies ist in Fig. 5 dargestellt, welche die diagonale Interpolation von Fig. 4 genauer beschreibt. Um diagonale Interpolation durchzuführen, wurden insbesondere vier Blockabschnitte 20c, 24, 26 und 28 aus dem vorhergehenden Frame-Speicher wiedergewonnen. Um die acht Pixel für den bewegungskompensierten Block 22c zu interpolieren, sind die 15 Pixel, die durch den schattierten Bereich 30 repräsentiert werden, notwendig. Es sei bemerkt, daß diagonale Interpolation die Verwendung von mehr Pixeln erfordert als nur waagerechte Interpolation oder senkrechte Interpolation. Für waagerechte Interpolation werden nur (K+1) mal L Pixel verwendet. Für senkrechte Interpolation sind K mal (L+1) Pixel notwendig.
  • Dadurch, daß die Blockabschnitte gespeichert werden, von denen jeder mindestens die maximale Anzahl an Pixeln enthält, die erforderlich sind, um einen neuen Pixel zu interpolieren (d. h. die vier Pixel, die für diagonale Interpolation notwendig sind), werden nur vier Speicherzugriffszyklen benötigt, um einen bewegungskompensierten Blockabschnitt mit angemessener Interpolation zu generieren. Da jeder Blockabschnitt vier oder mehr Pixel enthält, erfordert der vorhergehende Frame-Speicher nicht mehr als einen Zugriffszyklus, um ausreichend Informationen bereitzustellen, um ein neues Pixel auf fortschreitender Basis zu interpolieren. Dies bietet einen bedeutenden Vorteil gegenüber der traditionellen Speicherverwaltung, die ein Pixel pro Speicherstelle speichert. Wenn man eine Interpolation unter Verwendung eines traditionellen Speicherschemas durchführen würde, wird die Anzahl der Zugriffszyklen pro Pixel üblicherweise eins übertreffen.
  • Fig. 6 ist ein Blockdiagramm einer Hardware-Implementierung, die zur Ausübung der vorliegenden Erfindung verwendet werden kann. Der Verschiebungsvektor, der einem empfangenen Datenblock entspricht, wird in einen Adressen-Generator 42 und Datenwähler 48 über Terminal 40 eingegeben. Der Adressen-Generator streicht den Verschiebungsvektor ab und adressiert den vorhergehenden Frame- Speicher 44, um die vier Blockabschnitte, die zum Interpolieren eines bewegungskompensierten Blockabschnitts erforderlich sind, auszugeben. Der Datenwähler 48 empfängt die Blockabschnitt-Pixeldaten über den Datenbus 46 und wählt nur jene Pixel, die für die Interpolation notwendig sind, aus. Der Datenwähler 48 erzeugt vier parallele Pixelströme P&sub0;, P&sub1;, P&sub2; und P&sub3;, welche an einen Durchschnittsbildungsschaltkreis 50 weitergegeben werden, der die Interpolation durchführt Interpolationssteuerungssignale, die in Terminals 52 und 54 eingegeben werden, weisen den Durchschnittsbildunggsschaltkreis 50 an, entweder keine Interpolation, senkrechte Interpolation, waagerechte Interpolation oder diagonale Interpolation durchzuführen. Die Interpolationssteuerungssignale werden vor dem Abstreichen durch Untersuchen des ursprünglichen Verschiebungsvektors bestimmt, um zu Bestimmen, ob Halbpixel-Interpolation in entweder der waagerechten, senkrechten oder diagonalen Richtung notwendig ist. Wenn beide der waagerechten und senkrechten Verschiebungsvektorkomponenten ganzzahlig sind, ist keine Interpolation notwendig. Wenn nur die waagerechte Komponente nicht-ganzzahlig ist, ist waagerechte Interpolation notwendig. Wenn nur die senkrechte Komponente nicht- ganzzahlig ist, ist senkrechte Interpolation erforderlich. Wenn beide der waagerechten und senkrechten Komponenten nicht-ganzzahlig sind, ist diagonale Interpolation erforderlich.
  • Während jedes Taktzyklus, der hier als Speicherzugriffszyklus bezeichnet wird, befinden sich vier Pixel an den Ausgangsanschlüsson des Datenwählers 48. Diese repräsentieren die vier Eckpixel in einem diagonalen Interpolationsschema, wie z. B. die in Fig. 4 dargestellten Pixel 21, 23, 25 und 27. Genauer gesagt repräsentiert P&sub0; das obere, linke Eckpixel (z. B. Pixel 21), P&sub1; repräsentiert das obere, rechte Eckpixel (z. B. Pixel 23), P&sub2; repräsentiert das untere, linke Eckpixel (z. B. Pixel 25) und Pixel P&sub3; repräsentiert das untere, rechte Eckpixel (z. B. Pixel 27).
  • Der Datenwähler 48 wird im Sinne einer zweidimensionalen Anordnung von Schieberegistern implementiert. Seine Struktur ist in Fig. 7 und 8 dargestellt. Genauer gesagt stellt Fig. 7 ein Vorderende des Datenwählers dar, der die notwendigen Blockabschnitte aus dem vorhergehenden Frame-Speicher 44 als Antwort auf einen Verschiebungsvektor, der mit einem Teil eines gegenwärtigen Video- Frames, z. B. einem Videoblock, der gegenwärtig rekonstruiert wird, assoziiert wird, empfängt. Das Vorderende aus Fig. 7 wählt auch die Teilmenge von notwendigen Pixeln aus dem wiedergewonnenen Blockabschnitt, um einen Pixel-Blockabschnitt für den gegenwärtigen Video-Frame-Teil zu interpolieren. Solch eine Pixel-Teilmenge wird in Fig. 5 durch den schattierten Teil 30 repräsentiert.
  • Von den in Fig. 5 dargestellten vier Blockabschnitten 20c, 24, 28 und 26, können die Pixel 30, die für die Interpolation benötigt werden, ausgewählt werden, indem bestimmt wird, welche Pixelreihen und -spalten beibehalten werden sollen. Genauer gesagt werden folgende Reihen und Spalten von jedem Blockabschnitt beibehalten:
  • oberer, linker Blockabschnitt:
  • Spalte (dh Modulo K) + 1 bis zu Spalte K;
  • Reihe (dv Modulo L) + 1 bis zu Reihe L;
  • oberer, rechter Blockabschnitt:
  • Spalte 1 + bis zu Spalte (dh Modulo K) + 1;
  • Reihe (dv Modulo L) + 1 bis zu Reihe L;
  • unterer, linker Blockabschnitt:
  • Spalte (dh Modulo K) + 1 bis zu Spalte K;
  • Reihe 1 bis zu Reihe (dv Modulo L) + 1;
  • unterer, rechter Blockabschnitt:
  • Spalte 1 bis zu Spalte (dh Modulo K) + 1;
  • Reihe 1 bis zu Reihe (dv Modulo L) + 1.
  • Wie oben angedeutet, sind dh und dv jeweils die waagerechten und senkrechten Verschiebungsvektoren. In dem in Fig. 5 dargestellten Beispiel ist K 4 und L 2. Die Verschiebungsvektoren zeigen ihre Modulo- Werte folgendermaßen an:
  • (dh Moduto K) = 1 und (dv Modulo L) = 1.
  • Das Vorderende aus Fig. 7 besteht aus zwei Multiplexer-Register-Stufen. Die erste Stufe verwendet Register 45, 47, ... 49, um Reihenauswahl bereitzustellen. Die zweite Stufe verwendet Register 51, 53, ... 55, 57, um Spaltenauswahl bereitzustellen. Die Eingabe vom vorhergehenden Frame- Speicher 44 ist ein Blockabschnitt von K mal L Pixeln. Dieser Pixelblockabschnitt wird vorübergehend in Registern 45, 47, ... 49 gespeichert, welche die Reihen auswählen, die beibehalten werden sollen und positionieren die Pixel in die angemessenen Reihen, so daß sie nacheinander in die zweidimensionale Anordnung der in Fig. 8 dargestellten Schieberegister geladen werden können. Zweite Stufenregister 51, 53, ... 55, 57 wählen von der ersten Stufe nur jene Spalten aus, die beibehalten werden sollen. Die hinterblielbenen Pixel verbleiben in den Spaltenauswahlregistern 51, 53, ... 55, 57, bis alle erwünschten Pixel aus jedem der vier Blockabschnitte ausgewählt worden sind. Diese Pixel werden zusammen in den Spaltenauswahlregistern gesammelt und nacheinander in die in Fig. 8 dargestellte, zweidimensionale Schieberegister-Anordnung geladen. Insbesondere werden die ausgewählten Pixel, die im Register 51 beibehalten werden, zu dem in Fig. 8 dargestellten Register 60 ausgegeben. Die ausgewählten Pixel aus Register 53 werden zu dem Register 62 aus Fig. 8 ausgegeben. Die ausgewählten Pixel aus Register 55, werden zu dem in Fig. 8 dargestellten Register 68 ausgegeben. Ebenso werden die ausgewählten Pixel aus dem Register 57 zu dem Regster 70 aus Fig. 8 ausgegeben.
  • Jedes der Register aus Fig. 7 und Fig. 8 empfängt ein Takt-Signal (nicht gezeigt), das einem Speicherzugriffszyklus des vorhergehenden Frame-Speichers 44 entspricht. Somit wird sämtliche Wiedergewinnung, Auswahl und Interpolation von Pixeln auf einer übereinstimmenden Basis bei einer Zugriffsrate des vorhergehenden Frame-Speichers ausgeführt. Dies ermöglicht das Interpolieren eine Pixels für jeden Speicherzugriffszyklus.
  • In der zweidimensionalen Anordnung der in Fig. 8 dargestellten Schieberegister, befinden sich (K+1) Registerspalten, und jede Spalte besteht aus (L+1) Schieberegistern. Die Anordung wird zuerst initialisiert, um die (K+1) mal (L+1) Pixel, die für die diagonale Interpolation benötigt werden, zu halten. Diese Pixel werden von dem Vorderende während vier Speicherzugriffszyklen geladen, um da erzeugte Eins-zu-eins-Verhältnis zwischen Speicherzyklus und interpolierten Pixeln beizubehalten.
  • Vier Pixelströme werden vom Datenwähler erzeugt, indem die Pixeldaten in jedem der K+1 Spaltenregister aufwärts verschoben werden. Die Daten werden L mal während eines Schiebezyklus nach oben verschoben. Jeder Schiebezyklus generiert für jeden der vier Ausgangsanschlüsse L Pixel. Der Vorgang wird K mal wiederholt. Während jeder Wiederholung wählen Multiplexer 100, 102, 104 und 106 eine unterschiedliche Spalte zur Ausgabe aus. Bis der gesamte Vorgang abgeschlossen ist, hat jeder Ausgangsanschluß L mal K Pixel erzeugt. Jeder Multiplexer gibt Pixel aus, die einer der vier Ecken in einem diagonalen Interpolationsschema entsprechen.
  • Die Bedienung des Datenwählers ist diagrammatisch in Fig. 9 dargestellt. Während eines ersten Zyklus T&sub1;, enthält Register 60 ein Pixel P&sub0; in Register 72 und ein Pixel P&sub2; in Register 74. Gleichzeitig hält Register 62 Pixel P&sub1; in Register 76 und Pixel P&sub3; in Register 78. Unter Bezugnahme auf Fig. 8, ist Register 72 an Anschluß 1 von Multiplexer 100 gekoppelt. Somit gibt der Multiplexer 100 während T&sub1; ein gegenwärtiges P&sub0; zur gemeinsamen Verwendung mit einem entsprechenden P&sub1;, P&sub2; und P&sub3; aus Multiplexern 102, 104 bzw. 106 aus, um ein gegenwärtiges Pixel zu interpolieren. Pixel P&sub1; aus Register 76 wird von Multiplexer 102 während des Zyklus T, ausgegeben. Pixel P&sub2; aus Register 74 wird von Multiplexer 104 während T&sub1; ausgegeben. Pixel P&sub3; aus Register 78 wird von Multiplexer 106 während T&sub1; ausgegeben. Somit sind während T&sub1; der erste Satz von vier Pixeln, der für eine diagonale Interpolation notwendig ist, allesamt an den Anschlüssen der Multiplexer 100, 102, 104 und 106 vorhanden.
  • Während einer Periode T&sub2; werden Multiplexer 100, 102, 104 und 106 die Pixeldaten, die an ihren zweiten Eingangsanschlüssen vorhanden sind, ausgeben. Wie insbesondere aus Fig. 9 ersichtlich, wird das Pixel, das in Register 76 enthalten ist, als P&sub0; ausgegeben. Die Pixeldaten, die in Register 80 enthalten sind, werden als Pixel P&sub1; ausgegeben. Die Daten, die in Register 78 enthalten sind, werden als Pixel P&sub2; ausgegeben und die Daten, die in Register 82 vorhanden sind, werden als Pixel P&sub3; ausgegeben.
  • Während der Periode TK-1 werden die Daten, die in Registern 84, 88, 86 bzw. 90 vorhanden sind, als Pixel P&sub0;, P&sub1;, P&sub2; und P&sub3; ausgegeben. Schließlich werden während der Periode TK die Daten, die jeweils in Registern 88, 92, 90 bzw. 94 vorhanden sind, als Pixel P&sub0;, 1%, P&sub2; und P&sub3; ausgegeben.
  • Nachdem alle K Zyklen abgeschlossen worden sind, wird jedes der Schieberegister 60, 62, 68 und 70 einmal nach oben verschoben und der Vorgang wird für die nächsten K Zyklen wiederholt, um die vorhergehenden Frame-Pixel, die notwendig sind, um die nächste Reihe der gegenwärtigen Frame-Pixel für einen Blockabschnitt zu interpolieren, zu erhalten. Dieser Vorgang wird für die L+1 Reihen des gegenwärtigen Blockabschnitts fortgesetzt, wonach die Daten für den nächsten Blockabschnitt in die Register aus Fig. 8 geladen werden. Es sei bemerkt, daß die in Fig. 9 gezeigten Register 64 und 66 nicht ausdrücklich in Fig. 8 dargestellt sind. Allerdings wird Eier Fachmann auf dem Gebiet anerkennen, daß diese Register in Fig. 8 zwischen Register 62 und 68 bereitgestellt werden. Wie bereits angedeutet, befinden sich insgesamt (K+1) Spaltenregister in der Anordnung aus Fig. 8, wobei nicht alle notwendigerweise gezeigt werden.
  • Fig. 10 stellt einen Durchschnittsbildungsschaltkreis 50 aus Fig. 6 genauer dar. Der Durchschnittsbildungsschaltkreis empfängt die vier Pixelströme P&sub0;, P&sub1;, P&sub2; und P&sub3; vom Datenwähler und führt, wie vom Verschiebungsvektor verlangt, die notwendigen Interpolationen durch. Ein erstes Interpolationssteuerungssignal "A" wird am Terminal 52 eingegeben. Ein zweites Interpolationssteuerungssignal "B" wird am Terminal 54 eingegeben. Eine Legende 130 verweist auf die Maßnahme, die, abhängig vom Zustand jeden Interpolationssteuerungssignals A und B, vom Durchschnittsbildungsschaltkreis ergriffen wird. Wenn keine Interpolation erforderlich ist, wird das Pixel P&sub0; über die Multiplexer 114, 120 zum Ausgangsanschluß 132 geleitet. Wenn senkrechte Interpolation benötigt wird, berechnen Addierer 116 und Teiler 118 den Durchschnitt zwischen P&sub0; und P&sub2; zur Ausgabe am Anschluß 132. Für waagerechte Interpolation wird der Durchschnitt zwischen Po und P&sub1;, zur Ausgabe am Anschluß 132, von Addierer 110 und Teiler 112 berechnet. Schließlich wird der Durchschnitt von allen vier Pixeln im diagonalen Interpolationsmodus bereitgestellt. Der Durchschnitt von Po und P&sub1; wird speziell von Addierer 110 und Teiler 112 berechnet. Der Durchschnitt von P&sub2; und P&sub3; wird von Addierer 122 und Teiler 124 berechnet. Diese beiden Durchschnitte werden zur Ausgabe am Anschluß 132 von Addierer 116 und Teiler 118 im Durchschnitt gebildet. Die Implementierung des Durchschnittsbildungsschaltkreises unter Verwendung von den in Fig. 10 dargestellten einfachen Addierern und Multiplexern, stellen eine kostengünstige Implementierung für die Interpolationsfunktion bereit.
  • Man sollte nun anerkennen, daß die vorliegende Erfindung ein Verfahren und eine Vorrichtung zur Konstruktion eines Prädiktions-Frames mit Halbpixel-Interpolation bereitstellt. Der Prädiktions-Frame wird zur Rekonstruktion eines gegenwärtigen Video-Frames eines bewegungskompensierten Digitalvideosignals verwendet. Pixelblocks innerhalb eines Video-Frames werden in Blockabschnitte unterteilt. Eine Speicherarchitektur wird bereitgestellt, die mit der Blockabschnittaufteilung übereinstimmt. Ein Datenwählschaltkreis wählt nur jene Pixel aus, die für die Generierung eines bewegungskompensierten Blockabschnitts benötigt werden. Der Datenwählschaltkreis ordnet die Pixel in vier parallele Datenströme, die den vier Ecken in einem diagonalen Interpolationsmodus entsprechen, an. Ein Durchschnittsbildungsschaltkreis verarbeitet Pixel von einigen oder allen der vier parallelen Datenströmen, um wahlweise waagerechte, senkrechte oder diagonale Interpolation oder überhaupt keine Interpolation bereitzustellen. Die Erfindung kann mit praktisch jedem Block und/oder jeder Blockabschnittgröße verwendet wenden, so lange die Anzahl der Pixel in jedem Blockabschnitt mindestens die maximale Anzahl an Pixeln aufweist, die erforderlich ist, um ein Pixel, das eine erwünschte Interpolationsfunktion verwendet, zu interpolieren und jeder Block eine gerade Anzahl an Blockabschnitten enthält. Für die hier dargestellte Interpolationsfunktion, bei der waagerechte und senkrechte Interpolation jeweils nur zwei Pixel fordern, jedoch diagonale Interpolation vier Pixel fordert, ist die maximale Anzahl an Pixeln, die zur Interpolation eines neuen Pixels erforderlich sind, vier. Die Interpolation eines Pixels pro Speicherzugriffszyklus wird, an Stelle von einzelnen Pixeln, von jeder vorhergehenden Frame-Speicherstelle durch Speichern und Wiedergewinnen der Blockabschnitte erreicht.

Claims (17)

1. Ein Verfahren zum Verarbeiten vorhergehender Framedaten in einem bewegungskompensierten Digitalvideosystem, um Pixel, die im Wiederaufbauen eines gegenwärtigen Video-Frames (10) verwendet werden, zu interpolieren, bestehend aus den folgenden Schritten:
Anordnen von Pixeldaten aus einem vorhergehenden Video-Frame (14) in eine Vielzahl von Blockabschnitte (20c, 24, 26, 28), wobei jeder Blockabschnitt eine Vielzahl N von verschiedenen Pixeln dieses vorhergehenden Video-Frames umfaßt;
wobei jeder Blockabschnitt eine waagerechte Dimension von K Pixeln und eine senkrechte Dimension von L Pixeln aufweist,
wobei N = K · L und N ≥ 2
Abspeichern dieser Blockabschnitte in einem Speicher (44), um die Wiedergewinnung von mindestens einem Blockabschnitt pro Speicherzugriffszyklus zu ermöglichen;
Wiedergewinnen einer Vielzahl M dieser Blockabschnitte aus dem Speicher als Antwort auf einen Verschiebungsvektor (18a, 18b, 18c), der mit einem Teil (16a, 16b, 16c) eines gegenwärtigen Video- Frames verbunden ist, wobei M ≤ N und M Blockabschnitte in höchstens M Speicherzugriffszyklen wiedergewonnen werden;
Auswählen einer Teilmenge von Pixeln aus dieser ausgewählten Vielzahl von Blockabschnitten zur Verwendung bei m Interpolieren von Pixeln des vorhergehenden Video-Frames, um interpolierte Pixel für den gegenwärtigen Video-Frame bereitzustellen; und
Verarbeiten von Pixelsätzen aus der Teilmenge von Pixeln über höchstens N Speicherzugriffszyklen, um N interpolierte Pixel für den gegenwärtigen Video-Frame bereitzustellen.
2. Verfahren gemäß Anspruch 1, wobei:
N mindestens die höchste Anzahl von Pixeln ist, die notwendig ist, um ein interpoliertes Pixel unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten.
3. Verfahren gemäß Anspruch 1 oder 2, wobei:
N mindestens die höchste Anzahl von Pixeln ist, die notwendig ist, um eine Vielzahl interpolierter Pixel unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, wobei:
die Blockabschnitte angrenzend aneinander in dem vorhergehenden Video-Frame liegen.
5. Verfahren gemäß einem der Ansprüche 1 oder 2, wobei:
der vorhergehende Video-Frame eine Vielzahl von Pixelblocks umfaßt; und der Anordnungsschritt den Schritt des gleichmäßigen Aufteilens der Blocks, um Blockabschnitte zu formen, umfaßt.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, wobei eine waagerechte, senkrechte und diagonale Interpolation unter Verwendung von bis zu vier vorhergehenden Framepixeln, um jedes interpolierte, gegenwärtige Framepixel zu erhalten, bereitgestellt wird und der Verarbeitungsschritt aus den folgenden Schritten besteht:
Auswählen von vier Pixeln (P&sub0;, P&sub1;, P&sub2;, P&sub3;) aus der Teilmenge von Pixeln zur Verwendung bei der Interpolation eines Pixels eines gegenwärtigen Frame-Pixels; und
Bilden des Durchschnitts von zwei der vier ausgewählten Pixel als Antwort auf ein waagerechtes (A) oder ein senkrechtes (B) Interpolationssteuerungssignal oder Bilden des Durchschnitts von allen der vier ausgewählten Pixel als Antwort auf ein diagonales Interpolationssteuerungssignal (A, B), um ein interpoliertes Pixel zu erhalten.
7. Verfahren gemäß Anspruch 1, wobei in dem Auswählungsschritt:
eine Teilmenge von (K+1) · L Pixel aus der ausgewählten Vielzahl von Blockabschnitten ausgewählt wird, wenn die waagerechte Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen;
eine Teilmenge von K · (L+1) Pixel aus der ausgewählten Vielzahl von Blockabschnitten ausgewählt wird, wenn die senkrechte Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen; und
eine Teilmenge von (K+1) · (L+1) Pixel aus der ausgewählten Vielzahl von Blockabschnitten ausgewählt wird, wenn die diagonale Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame Teil bereitzustellen.
8. Eine Vorrichtung zum Interpolieren von Pixeln, die in dem Wiederaufbauen eines gegenwärtigen Video-Frames aus Pixeln eines vorhergehenden Video-Frames (14) in einem bewegungskompensierten Digitalvideosystem verwendet werden, bestehend aus:
einem Speichermittel (44) zum Abspeichern von Blockabschnitten (20c, 24, 26, 28), die den vorhergehenden Frame umfassen, wobei jeder Blockabschnitt eine Vielzahl N verschiedener Pixel aus dem vorhergehenden Video-Frame enthält;
wobei jeder Blockabschnitt eine waagerechte Dimension von K Pixeln und eine senkrechte Dimension von L Pixeln aufweist,
wobei N = K · L und N ≥ 2;
einem Mittel (42, 45, 47, 49, 51, 53, 55, 57) zum Wiedergewinnen einer Vielzahl M der Blockabschnitte aus dem Speichermittel als Antwort auf einen Verschiebungsvektor (18a, 18b, 18c), der mit einem Teil (16a, 16b, 16c) eines gegenwärtigen Video-Frames (10), für den Pixel interpoliert werden sollen, verbunden ist,
wobei M ≤ N und die M Blockabschnitte in höchstens M Zugriffszyklen des Speichermittels wiedergewonnen werden;
wobei M = 2, wenn waagerechte oder senkrechte Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen;
wobei M = 4, wenn die diagonale oder senkrechte Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen;
einem Mittel (48) zum Auswählen einer Teilmenge von Pixeln aus dieser wiedergewonnenen Vielzahl von Blockabschnitten zur Verwendung beim Interpolieren von Pixeln des vorhergehenden Video-Frames, um interpolierte Pixel für den gegenwärtigen Video- Frame-Teil bereitzustellen; und
einem Mittel (50) zum Verarbeiten von Pixelsätzen aus der Teilmenge von Pixeln über höchstens N Speicherzugriffszyklen, um N interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen.
9. Vorrichtung gemäß Anspruch 8, wobei:
N mindestens die höchste notwendige Anzahl von Pixeln ist, die notwendig ist, um ein interpoliertes Pixel unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten.
10. Vorrichtung gemäß Anspruch 8 oder 9, wobei:
N mindestens die höchste Anzahl von Pixeln ist, die notwendig ist, um eine Vielzahl von interpolierten Pixeln unter Verwendung eines erwünschten Interpolationsalgorithmus zu erhalten.
11. Vorrichtung gemäß einem der Ansprüche 8 bis 10, wobei:
der Teil eines gegenwärtigen Video-Frames einen Block von Pixeln, der der Größe einer ganzzahligen Anzahl der Blockabschnitte entspricht, umfaßt.
12. Vorrichtung gemäß einem der Ansprüche 8 bis 11, wobei:
die Blockabschnitte (20c, 24, 26, 28) angrenzend aneinander in dem vorhergehenden Video-Frame liegen.
13. Vorrichtung gemäß einem der Ansprüche 8 bis 12, wobei:
das Verarbeitungsmittel (50) eine waagerechte, senkrechte und diagonale Interpolation unter Verwendung von bis zu vier vorhergehenden Frame-Pixeln (P&sub0;, P&sub1;, P&sub2;, P&sub3;), um jedes interpolierte, gegenwärtige Frame-Pixel zu erhalten, bereitstellt, wobei dieses Verarbeitungsmittel folgendes umfaßt:
ein Mittel (48) zum Auswählen von vier Pixeln aus der Teilmenge von Pixeln zur Verwendung beim Interpolieren von einem gegenwärtigen Frame-Pixel;
ein Mittel (110, 112, 122, 124) zum Bilden des Durchschnitts von zwei von diesen vier ausgewählten Pixeln als Antwort auf ein waagerechtes (A) oder ein senkrechtes (B) Interpolationssteuerungssignal, um ein waagerecht oder ein senkrecht interpoliertes Pixel zu erhalten; und
ein Mittel (110, 112, 122, 124, 116, 118) zum Bilden des Durchschnitts von allen der vier Pixel als Antwort auf das Interpolationssteuerungssignal (A, B), um ein diagonal interpoliertes Pixel zu erhalten.
14. Vorrichtung gemäß Anspruch 13, wobei:
die Blockabschnitte (20c, 24, 26, 28) eine waagerechte Dimension K und eine senkrechte Dimension L aufweisen; und
das Auswahlmittel (48) folgendes umfaßt:
eine Vielzahl K+1 von Schieberegistern (45, 47, 49, 51, 53, 55, 57, 60, 62, 69, 70), wobei jedes L+1 Stufen (72, 74, 76, 78, 88, 90, 92, 94) zum gemeinsamen Halten dieser Teilmenge von Pixeln aufweist; und
ein Multiplexermittel (100, 102, 104, 106), das mit ausgewählten Ausgängen der Schieberegister zum Bereitstellen von verschiedenen Gruppen von vorhergehenden Frame-Pixeln aus den Schieberegistern zum Durchschnittsbildungsmittel bei jedem Speicherzugriffszyklus gekoppelt ist.
15. Vorrichtung gemäß Anspruch 14, wobei:
jede Gruppe der Pixel eines vorhergehenden Frames ein oberes, linkes Eckpixel P&sub0;, ein oberes rechtes Eckpixel P&sub1;, ein unteres linkes Eckpixel P&sub2;, und ein unteres rechtes Eckpixel P&sub3;, die ein Quadrat bilden, umfaßt, und das Durchschnittsbildungsmittel (110, 112, 122, 124) folgendes umfaßt: ein erstes Mittel (110, 112) zum Ausgeben der durch zwei geteilten Summe von Pixel P&sub0; und Pixel P&sub1; als Antwort auf das waagerechte Interpolationssteuerungssignal (A);
ein zweites Mittel (116, 118) zum Ausgeben der durch zwei geteilten Summe von Pixel P&sub0; und Pixel P&sub3; als Antwort auf das waagerechte Interpolationssteuerungssignal (B); und
ein drittes Mittel (116, 118) zum Ausgeben der durch vier geteilten Summe von Pixel P&sub0;, P&sub1;, P&sub2; und P&sub3; als Antwort auf das diagonale Interpolationssteuerungssignal.
16. Vorrichtung gemäß Anspruch 15, wobei:
das erste, zweite und dritte Mittel herkömmliche Addier-, Subtrahier- und Multiplexschaltkreise umfassen.
17. Vorrichtung gemäß Anspruch 8, wobei das Auswahlmittel folgendes auswählt:
eine Teilmenge von (K+1) · L Pixel aus dieser ausgewählten Vielzahl von Blockabschnitten, wenn die waagerechte Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen;
eine Teilmenge von K · (L+1) Pixel aus dieser ausgewählten Vielzahl von Blockabschnitten, wenn die senkrechte Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen; und eine Teilmenge von (K+1) · (L+1) Pixel aus dieser ausgewählten Vielzahl von Blockabschnitten, wenn eine diagonale Interpolation der Pixel des vorhergehenden Video-Frames erfordert ist, um interpolierte Pixel für den gegenwärtigen Video-Frame-Teil bereitzustellen.
DE69429377T 1993-01-27 1994-01-18 Halbpixelinterpolation für ein bewegungskompensiertes Digitalvideosystem Expired - Lifetime DE69429377T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/009,831 US5398079A (en) 1993-01-27 1993-01-27 Half-pixel interpolation for a motion compensated digital video system

Publications (2)

Publication Number Publication Date
DE69429377D1 DE69429377D1 (de) 2002-01-24
DE69429377T2 true DE69429377T2 (de) 2002-08-22

Family

ID=21739964

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69429377T Expired - Lifetime DE69429377T2 (de) 1993-01-27 1994-01-18 Halbpixelinterpolation für ein bewegungskompensiertes Digitalvideosystem

Country Status (6)

Country Link
US (1) US5398079A (de)
EP (1) EP0613304B1 (de)
JP (1) JP3509165B2 (de)
CA (1) CA2113045C (de)
DE (1) DE69429377T2 (de)
TW (1) TW234754B (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3278756B2 (ja) * 1992-09-10 2002-04-30 日本テキサス・インスツルメンツ株式会社 画像処理方法及び装置
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
JPH0799658A (ja) * 1993-08-03 1995-04-11 Sony Corp 動きベクトル検出装置
WO1995007591A1 (en) * 1993-09-08 1995-03-16 Thomson Multimedia S.A. Method and apparatus for motion estimation using block matching
US5539467A (en) * 1993-09-14 1996-07-23 Goldstar Co., Ltd. B-frame processing apparatus including a motion compensation apparatus in the unit of a half pixel for an image decoder
KR970003102B1 (ko) * 1993-09-17 1997-03-14 대우전자 주식회사 영상 복호기에서의 하프 픽셀 움직임 보상 회로
GB9321372D0 (en) * 1993-10-15 1993-12-08 Avt Communications Ltd Video signal processing
JP3031152B2 (ja) * 1993-12-24 2000-04-10 日本電気株式会社 動き予測プロセッサ及び動き予測装置
JP3606597B2 (ja) * 1994-01-21 2005-01-05 ソニー株式会社 動きベクトル検出装置
KR0151210B1 (ko) * 1994-09-23 1998-10-15 구자홍 엠펙2를 수용하는 반화소 움직임 보상조절장치
US5623311A (en) * 1994-10-28 1997-04-22 Matsushita Electric Corporation Of America MPEG video decoder having a high bandwidth memory
US5638128A (en) * 1994-11-08 1997-06-10 General Instrument Corporation Of Delaware Pixel interpolation filters for video decompression processor
US5694179A (en) * 1994-12-23 1997-12-02 Electronics And Telecommunications Research Institute Apparatus for estimating a half-pel motion in a video compression method
TW311316B (de) * 1995-01-30 1997-07-21 Hitachi Ltd
US5757670A (en) * 1995-07-28 1998-05-26 S3, Incorporated Frame reconstruction for video data compression
JPH09102954A (ja) * 1995-10-04 1997-04-15 Matsushita Electric Ind Co Ltd 1つまたは2つの予測ブロックからブロックの画素値を計算する方法
US5832120A (en) * 1995-12-22 1998-11-03 Cirrus Logic, Inc. Universal MPEG decoder with scalable picture size
KR100226684B1 (ko) * 1996-03-22 1999-10-15 전주범 반화소 움직임 추정장치
JPH1079947A (ja) * 1996-09-03 1998-03-24 Mitsubishi Electric Corp 動きベクトル検出装置
AU1941797A (en) 1997-03-17 1998-10-12 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US6289053B1 (en) * 1997-07-31 2001-09-11 Lsi Logic Corporation Architecture for decoding MPEG compliant video bitstreams meeting 2-frame and letterboxing requirements
US6128108A (en) 1997-09-03 2000-10-03 Mgi Software Corporation Method and system for compositing images
KR100251548B1 (ko) * 1997-11-01 2000-04-15 구자홍 디지털영상을위한움직임추정장치및방법
US6370192B1 (en) 1997-11-20 2002-04-09 Hitachi America, Ltd. Methods and apparatus for decoding different portions of a video image at different resolutions
US6061400A (en) * 1997-11-20 2000-05-09 Hitachi America Ltd. Methods and apparatus for detecting scene conditions likely to cause prediction errors in reduced resolution video decoders and for using the detected information
US6259734B1 (en) * 1998-04-03 2001-07-10 Matsushita Electric Industrial Co., Ltd. Image processing method, image processing apparatus, and data storage media
US6552749B1 (en) * 1999-01-29 2003-04-22 Intel Corporation Method and apparatus for video motion compensation, reduction and color formatting
JP4255553B2 (ja) * 1999-02-04 2009-04-15 パナソニック株式会社 撮像装置
US6278495B1 (en) 1999-03-12 2001-08-21 Fortel Dtv, Inc Digital comb filter for decoding composite video signals
US6707937B1 (en) * 2000-07-14 2004-03-16 Agilent Technologies, Inc. Interpolation of edge portions of a digital image
US7046299B1 (en) 2000-09-29 2006-05-16 Fortel, Dtv Digital video synchronizer with both decoded digital and undecoded analog outputs
WO2002096116A1 (en) * 2001-05-18 2002-11-28 Stmicroelectronics Asia Pacific Pte Ltd Motion estimation using packed operations
US7694224B2 (en) * 2001-05-31 2010-04-06 International Business Machines Corporation Location predicative restoration of compressed images stored on a hard disk drive with soft and hard errors
US6859494B2 (en) 2001-07-27 2005-02-22 General Instrument Corporation Methods and apparatus for sub-pixel motion estimation
CN100455022C (zh) * 2001-09-18 2009-01-21 松下电器产业株式会社 图像的编码方法和图像的译码方法
US8040949B2 (en) * 2003-01-09 2011-10-18 The Regents Of The University Of California Video encoding methods and devices
US7589788B1 (en) * 2003-02-28 2009-09-15 Intel Corporation Method and apparatus for video motion compensation, reduction and color formatting
US7327405B1 (en) 2003-04-04 2008-02-05 Qustream Corporation Systems and methods for improved video comb filtering with dynamic chroma bandwidth control
US7324596B2 (en) * 2003-07-15 2008-01-29 Lsi Logic Corporation Low complexity block size decision for variable block size motion estimation
KR100565066B1 (ko) * 2004-02-11 2006-03-30 삼성전자주식회사 중첩된 블록 기반 움직임 추정에 의한 움직임 보상 보간방법 및 그를 적용한 프레임 레이트 변환 장치
US7529423B2 (en) * 2004-03-26 2009-05-05 Intel Corporation SIMD four-pixel average instruction for imaging and video applications
KR100605105B1 (ko) * 2004-05-28 2006-07-26 삼성전자주식회사 영상 보간 장치
US8451897B2 (en) * 2006-12-04 2013-05-28 Atmel Corporation Highly parallel pipelined hardware architecture for integer and sub-pixel motion estimation
US9819841B1 (en) * 2015-04-17 2017-11-14 Altera Corporation Integrated circuits with optical flow computation circuitry
US10430919B2 (en) * 2017-05-12 2019-10-01 Google Llc Determination of per line buffer unit memory allocation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61114677A (ja) * 1984-11-09 1986-06-02 Nec Corp 動画像信号の適応予測符号化復号化方式及びその装置
DE3629472A1 (de) * 1986-08-29 1988-03-03 Licentia Gmbh Verfahren zur bewegungskompensierten bild-zu-bild-praediktionscodierung
DE3714589A1 (de) * 1987-05-01 1988-11-10 Standard Elektrik Lorenz Ag Videosignal-codierer mit dpcm und adaptiver praediktion
US4897720A (en) * 1988-03-14 1990-01-30 Bell Communications Research, Inc. Circuit implementation of block matching algorithm
JPH03252287A (ja) * 1990-02-28 1991-11-11 Victor Co Of Japan Ltd 動画像圧縮装置
GB2248361B (en) * 1990-09-28 1994-06-01 Sony Broadcast & Communication Motion dependent video signal processing
US5134475A (en) * 1990-12-11 1992-07-28 At&T Bell Laboratories Adaptive leak hdtv encoder
EP0497586A3 (en) * 1991-01-31 1994-05-18 Sony Corp Motion detection circuit
JPH04354287A (ja) * 1991-05-30 1992-12-08 Sony Corp 画像補間回路

Also Published As

Publication number Publication date
DE69429377D1 (de) 2002-01-24
JP3509165B2 (ja) 2004-03-22
EP0613304A2 (de) 1994-08-31
EP0613304B1 (de) 2001-12-12
JPH06261310A (ja) 1994-09-16
CA2113045A1 (en) 1994-07-28
EP0613304A3 (de) 1996-05-01
CA2113045C (en) 1999-08-10
TW234754B (de) 1994-11-21
US5398079A (en) 1995-03-14

Similar Documents

Publication Publication Date Title
DE69429377T2 (de) Halbpixelinterpolation für ein bewegungskompensiertes Digitalvideosystem
DE60014444T2 (de) Verfahren und vorrichtung zur bewegungsschätzung unter verwendung von nachbarmacroblöcken
DE69228715T2 (de) Verfahren und Vorrichtung zur Übertragung von komprimierten, digitalen Videosignalen mittels mehrerer Prozessoren
DE69836473T2 (de) Bewegungsschätzung und bewegungskompensierte interpolation
DE69601362T2 (de) Bewegungskompensierende filterung
DE69232623T2 (de) Verfahren zum Speichern von Videodaten und entsprechendes Fernsehsystem
DE4322343C2 (de) Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors
DE69710413T2 (de) Bewegungsschätzung
DE69801209T2 (de) Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
DE2746285C2 (de) Fernseh-Bildverarbeitungssystem
DE3854337T2 (de) Bewegungskompensierte Interpolation von digitalen Fernsehbildern.
DE69232063T2 (de) Adaptive Bewegungskompensation mit mehreren Bewegungskompensatoren
DE3854171T2 (de) Bewertung von Bewegungsvektoren in Fernsehbildern.
DE69123359T3 (de) Videobildverarbeitung
DE69130329T2 (de) System und verfahren zur codierung eines zeilensprunghalbbildes
DE69131438T2 (de) Adaptive Bewegungskompensation für das digitale Fernsehen
DE3704777C1 (de) Verfahren zum UEbertragen und zum Wiedergeben von Fernsehbildsequenzen
DE69013213T2 (de) Einrichtung zur Zwischenbild-Vorhersagekodierung eines Videosignals.
DE69218396T2 (de) Rekursiver Video Signal Prozessor
DE69131938T2 (de) Bewegungsvektorerfassungsgerät
DE3853555T2 (de) Verarbeitung des Bewegungsvektors in digitalen Fernsehbildern.
DE69530336T2 (de) Bewegungskompensation für digitale Videosignale mit Zeilensprung
DE69621901T2 (de) Einrichtung zur Vorverarbeitung eines Stromes digitaler Videodaten
DE69425847T2 (de) Rechner für die inverse diskrete Cosinus-Transformation
DE69325097T2 (de) Digitaler video-signalverarbeitungsprozessor mit einem vorprozessor der non-interlace-scan-videosignale aus interlace-scan-videosignalen erzeugt und entsprechendes dekompressions- und nachverarbeitungsvorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition