DE69723550T2 - Kodierung und dekodierung von grafischen symbolen - Google Patents

Kodierung und dekodierung von grafischen symbolen Download PDF

Info

Publication number
DE69723550T2
DE69723550T2 DE69723550T DE69723550T DE69723550T2 DE 69723550 T2 DE69723550 T2 DE 69723550T2 DE 69723550 T DE69723550 T DE 69723550T DE 69723550 T DE69723550 T DE 69723550T DE 69723550 T2 DE69723550 T2 DE 69723550T2
Authority
DE
Germany
Prior art keywords
pixel
pixels
objects
video sequence
block
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
DE69723550T
Other languages
English (en)
Other versions
DE69723550D1 (de
Inventor
Wei-Ge Chen
Ming-Chieh Lee
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69723550D1 publication Critical patent/DE69723550D1/de
Publication of DE69723550T2 publication Critical patent/DE69723550T2/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/649Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • 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/537Motion estimation other than block-based
    • 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/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zum Komprimieren digitaler Videosignale, insbesondere ein objekt-basiertes digitales Videokodierungsverfahren mit Fehlerrückkoppelung zur Steigerung der Genauigkeit.
  • Videospielfilmanzeigen basierend auf analogen Videosignalen sind seit langem in Form von Fernsehern verfügbar. Mit jüngsten Verbesserungen bei den Computerverarbeitungsfähigkeiten und bei der Erschwinglichkeit sind Videospielfilmanzeigen basierend auf digitalen Videosignalen breiter verfügbar geworden. Digitale Videosysteme können bedeutende Verbesserungen gegenüber herkömmlichen analogen Videosystemen beim Erzeugen, Verändern, Übertragen, Speichern und Abspielen von Videofilmsequenzen bieten.
  • Digitale Videoanzeigen umfassen große Anzahlen von Abbildungsrahmen, die nacheinander mit Frequenzen zwischen 30 und 75 Hz abgespielt oder verarbeitet werden. Jeder Abbildungsrahmen ist noch eine Abbildung, welche aus einer Anordnung von Pixeln gebildet ist, die der Anzeigeauflösung des bestimmten Systems entsprechen. Beispielsweise weisen VHS-basierte Systeme Anzeigeauflösungen von 320 × 480 Pixeln, NTSC-basierte Systeme Anzeigeauflösungen von 720 × 486 Pixeln und in der Entwicklung befindliche Hochauflösungsfernsehsysteme (HDTV) Anzeigeauflösungen von 1360 × 1024 Pixeln auf.
  • Die Menge von rohen Digitalinformationen, die in einer Videosequenz umfaßt sind, ist gewaltig. Die Speicherung und Übertragung von diesen Mengen von Videoinformation ist mit einer gewöhnlichen Personalcomputerausrüstung unausführbar. Mit Bezug auf ein digitalisiertes Formular mit einem relativ niedrig aufgelösten VHS-Abbildungsformat mit einer 320 × 480 Pixelauflösung würde ein Film mit einer Gesamtlänge von zwei Stunden Dauer mit 100 Gigabytes digitaler Videoinformationen korrespondieren. Zum Vergleich weisen herkömmliche optische Compaktdisks Kapazitäten von etwa 0,6 Gigabytes, magnetische Harddisks Kapazitäten von 1–2 Gigabytes und in der Entwicklung befindliche optische Compaktdisks Kapazitäten von bis zu 8 Gigabytes auf.
  • Als Reaktion auf die Begrenzungen beim Speichern oder Übertragen solch gewaltiger Mengen von digitaler Videoinformation sind verschiedene Videokompressionsstandards oder Verfahren etabliert worden, einschließlich MPEG-1, MPEG-2 und H.26X. Diese herkömmlichen Videokompressionstechniken nutzen Ähnlichkeiten zwischen aufeinanderfolgenden Abbildungsrahmen, die als zeitliche oder Zwischenrahmenkorrelation bezeichnet werden, um eine Zwischenrahmenkompression zu schaffen, bei der pixelbasierte Repräsentationen von Abbildungsrahmen in Bewegungsrepräsentationen konvertiert werden. Zusätzlich nutzen herkömmliche Videokompressionstechniken Ähnlichkeiten innerhalb eines Abbildungsrahmens, die als räumliche oder Innerrahmenkorrelation bezeichnet werden, um eine Innerrahmenkompression zu schaffen, bei der die Bewegungsrepräsentation innerhalb eines Abbildungsrahmens weiter komprimiert wird. Die Innerrahmenkompression basiert auf herkömmlichen Verfahren zur Kompression von unbewegten Bildern, zum Beispiel auf einer diskreten Cosinustransformation (DCT).
  • Obwohl sich der MPEG-1, der MPEG-2 und der H.26X Videokompressionsstandard in bestimmten Ausführungen unterscheiden, sind sie in einer Anzahl von Hinsichten ähnlich. Die folgende Beschreibung des MPEG-2-Kompressionsstandards ist allgemein auf die anderen anwendbar.
  • Der MPEG-2-Standard liefert eine Zwischenrahmenkompression und eine Innerrahmenkompression, die auf quadratischen Blöcken oder Anordnungen von Pixeln in den Videoabbildungen basiert. Eine Videoabbildung wird in Blöcke mit Abmessungen von 16 × 16 Pixeln überführt. Für jeden Transformationsblock TN in einem Abbildungsrahmen N wird eine Suche über die Abbildung eines unmittelbar vorausgehenden Abbildungsrahmens N – 1 oder auch eines nächsten nachfolgenden Videorahmens N + 1 (das heißt bidirektional) ausgeführt, um den ähnlichsten entsprechenden Transformationsblock TN+1 oder TN–1 zu identifizieren.
  • Idealerweise und mit Bezug auf eine Suche des nächsten, darauffolgenden Abbildungsrahmens sind die Pixel in den Transformationsblöcken TN und TN+1 identisch, sogar wenn die Transformationsblöcke verschiedene Stellungen in ihren entsprechenden Abbildungsrahmen aufweisen. Unter diesen Umständen ist die Pixelinformation in dem Transformationsblock TN+1 redundant gegenüber der Pixelinformation in dem Transformationsblock TN. Eine Kompression wird mittels des Ersetzens der Pixelinformation in dem Transformationsblock TN+1 durch die Positionsverschiebung zwischen den Transformationsblöcken TN und TN+1 erreicht. Bei diesem vereinfachten Beispiel ist ein einzelner Verschiebungsvektor (ΔX, ΔY) anstelle der Videoinformation vorgesehen, die mit 256 Pixeln in dem Transformationsblock TN+1 verknüpft ist.
  • Häufig ist die Videoinformation (d. h. sind die Pixel) in den entsprechenden Transformationsblöcken TN und TN+1 nicht identisch. Der Unterschied zwischen ihnen wird als ein Transfor mationsblockfehler E bezeichnet, der oft erheblich ist. Obwohl er mittels eines herkömmlichen Kompressionsverfahrens, zum Beispiel einer diskreten Cosinustransformationskodierung (DCT) komprimiert wird, ist der Transformationsblockfehler E schwerfällig und begrenzt das Ausmaß (das Verhältnis) und die Genauigkeit mit der Videosignale komprimiert werden können.
  • Große Transformationsblockfehler E ergeben sich bei blockbasierten Videokompressionsverfahren aus mehreren Gründen. Die blockbasierte Bewegungsschätzung repräsentiert nur Verschiebungsbewegung zwischen aufeinanderfolgenden Abbildungsrahmen. Die einzigen Änderungen zwischen entsprechenden Transformationsblöcken TN und TN–1, die dargestellt werden können, sind Änderungen der relativen Positionen der Transformationsblöcke. Ein Nachteil einer solchen Repräsentation ist, daß die Videospielfilmsequenzen häufig andere komplexe Bewegungen als Verschiebungen umfassen, zum Beispiel Drehungen, Vergrößerungen und Scherungen. Die Verkörperung solch komplexer Bewegungen mit einfachen Verschiebungsannäherungen führt zu erheblichen Fehlern.
  • Ein anderer Aspekt von Videoanzeigen ist, daß sie typischerweise viele Abbildungsmerkmale oder Objekte umfassen, die sich ändern oder relativ zueinander bewegen. Objekte können bestimmte Zeichen, Artikel oder Landschaft innerhalb einer Videoanzeige sein. Mit Bezug auf eine Szene in einem Spielfilm könnte jeder der Charaktere (d. h. jeder der Schauspieler) und jeder Artikel (d. h. jede Requisite) in der Szene ein verschiedenes Objekt sein.
  • Die relative Bewegung zwischen den Objekten in einer Videosequenz ist eine andere Quelle für erhebliche Transformationsblockfehler E bei herkömmlichen Videokompressionsverfahren. Aufgrund der regelmäßigen Anordnung und Größe der Transformationsblöcke, umfassen viele von ihnen Abschnitte von verschiedenen Objekten. Eine relative Bewegung zwischen den Objekten in aufeinanderfolgenden Abbildungsrahmen kann zu einer extrem niedrigen Korrelation (d. h. zu hohen Transformationsfehlern E) zwischen korrespondierenden Transformationsblöcken führen. Ähnlich führt das Erscheinen von Abschnitten des Objekts in aufeinanderfolgenden Abbildungsrahmen (zum Beispiel, wenn sich ein Charakter umdreht) auch zu hohen Transformationsfehlern E.
  • Gewöhnliche Videokompressionsverfahren scheinen von Natur aus aufgrund der Größe der Transformationsfehler E begrenzt zu sein. Mit einer zunehmenden Nachfrage nach digitalen Videoanzeigefähigkeiten werden verbesserte digitale Videokompressionsverfahren benötigt.
  • Das US-Patent Nr. 5,420,638 von Riglet et al. beschreibt das Kodieren von Abbildungen, die aus mindestens einem sich bewegenden Muster gegenüber einem festen oder quasi festen Hintergrund bestehen, einschließlich einer Kodierung von Zonen von Interesse in einer Abbildung.
  • Kurze Beschreibung der Erfindung
  • Nach einem Aspekt schafft die Erfindung ein Verfahren zum Kodieren von Objekten für eine Videosequenz, wobei die Videosequenz mehrere Rahmen umfaßt, die Objekte ein oder mehrere allgemeine Objekte umfassen und das eine oder die mehreren allgemeinen Objekte jeweils mit Hilfe einer Rahmen-zu-Rahmen-Bewegungsschätzung und einer Erzeugung eines Fehlersignals kodiert werden, gekennzeichnet durch:
    Kennzeichnen eines schemendefinierten Objekts von dem einen oder den mehren allgemeinen Objekten in der Videosequenz, wobei das schemendefinierte Objekt ein Schema und Trajektorieninforrriationen für das schemendefinierte Objekt in den mehreren Rahmen der Videosequenz umfaßt, um eine zusammengesetzte Bitmap für das Schema zu erzeugen; und Kodieren des schemendefinierten Objekts.
  • Nach einem anderen Aspekt der Erfindung wird ein Verfahren zum Dekodieren von Objekten einer Videosequenz geschaffen, wobei die Videosequenz mehrere Rahmen umfaßt und die Objekte ein oder mehrere allgemeine Objekte umfassen und das eine oder die mehreren allgemeinen Objekte jeweils mit Hilfe einer Kompensation der Rahmen-zu-Rahmen-Bewegung und einer Fehlersignalanpassung dekodiert werden, gekennzeichnet durch:
    Dekodieren eines schemendefinierten Objekts der Videosequenz, wobei das schemendefinierte Objekt ausgelassene Pixel in einem oder mehreren Rahmen der Videosequenz aufweist, wobei das schemendefinierte Objekt ein Schema und Trajektorieninformationen umfaßt, wobei eine zusammengesetzte Bitmap für das Schema Pixelinformationen für das schemendefinierte Objekt durch die Videosequenz hindurch umfaßt, wodurch die verdeckten Pixel in der zusammengesetzten Bitmap repräsentiert werden.
  • Manchmal ist das gesamte Abbild oder die gesamte Objektinformation, die sich auf eines oder mehrere der Objekte in der Videosequenz bezieht, verfügbar oder bekannt, wenn das Objekt erstmals in der Videosequenz erscheint. Diese Objekte sind komplett durch die Videosequenz hindurch von Ihrem ursprünglichen Erscheinen an mit Hilfe mindestens eines "Schemas" und einer oder mehrerer Trajektorien definiert. Das Schema umfaßt alle Abbildungscharakteristika eines Objekts durch die Videosequenz hindurch und die Trajektorien brechen das Schema um oder transformieren das Schema, um das Objekt in jedem Rahmen der Videosequenz zu repräsentieren. Bei einigen Anwendungen werden die Objekte mit Hilfe von Beleuchtungs- oder Transparentfaktoren, die auch als die ursprüngliche Erscheinung des Objekts in der Videosequenz bekannt sind, weiter definiert oder modifiziert. Ein Objekt, das vollständig von dem Zeitpunkt seines Erscheinens in der Videosequenz mit Hilfe mindestens eines Schemas und einer Trajektorie oder mehrerer Trajektorien definiert ist, wird als ein schemendefiniertes Objekt bezeichnet.
  • Typischerweise sind viele gemäß der Erfindung verarbeitete Objekte dahingehend allgemein, daß sie Merkmale oder Komponenten aufweisen, die am Beginn der Videosequenz nicht definiert sind. Viele Aspekte dieser Erfindung erlauben die Identifizierung und effiziente Kodierung und Dekodierung von solchen allgemeinen Objekten mit ursprünglich undefinierten Merkmalen und Bestandteilen. Ein anderer Aspekt dieser Erfindung ist jedoch ein Wiedererkennen, daß schemendefinierte Objekte in gemischten Videosequenzen mit sowohl schemendefinierten Objekten als auch allgemeinen Objekten eine vereinfachte Verarbeitung nutzen können, die die Bitratenvoraussetzungen und die Effizienz für ein Speichern und Übertragen der komprimierten Videodateninformationen verbessert.
  • Schemendefinierte Objekte benötigen Aspekte dieser Erfindung, die speziell auf ein Steigern der Genauigkeit eines Repräsentierens allgemeiner Objekte (d. h. Objekten mit ursprünglich undefinierten Merkmalen und Bestandteilen) gerichtet sind, nicht. In Übereinstimmung mit der Erfindung verwenden daher schemendefinierte Objekte ein vereinfachtes Kodieren und Dekodieren von komprimierten Videoinformationen.
  • Im Betrieb werden Schemeninformationen für ein schemendefiniertes Objekt zwischen aufeinanderfolgenden Abbildungsrahmen gemäß Trajektorien- oder Transformationsinformationen transformiert oder "umgebrochen". Bei manchen Anwendungen, zum Beispiel einem Abhalten einer Videokonferenz, könnte ein Hintergrund als ein Objekt verarbeitet werden, das vollständig mit Hilfe seines ursprünglichen Schemas definiert ist und sich durch die Videosequenz hindurch nicht ändert. Bei diesem Typ von Anwendung wäre die Trajektorieninformation eine Einheitsinformation, um anzuzeigen, daß es bei dem Objekt durch die Videosequenzen hindurch keine Änderungen gibt. Bei anderen Anwendungen könnten die schemendefinierten Objekte Trajektorien in der Form von mehrdimensionalen affinen Trans formationen oder im Fall von computererzeugten Grafiken perspektivischen Transformationen nutzen.
  • Das Schema und die Trajektorien können eine vollständige Definition des Objekts durch die Videosequenz hindurch liefern, dessen Definition inhärent fehlerfrei ist und minimale Bitratenanforderungen aufweist. Solch ein schemenerzeugtes Objekt wird eher in Übereinstimmung mit vereinfachten Verfahren als der allgemeinen Objektverarbeitung kodiert und dekodiert, wie sie für allgemeine Objekte verwendet wird, um die Charakteristiken der Fehlereinheit auszubeuten und die Bitrate und die Verarbeitungsvoraussetzungen zum Verarbeiten der Objektinformationen zu verringern. Das schemenerzeugte Objekt wird in Übereinstimmung mit den vereinfachten Verfahren kodiert und dekodiert, obwohl es von allgemeinen Objekten begleitet ist, die mit Hilfe der allgemeinen Objektverarbeitung dieser Erfindung verarbeitet werden. Solch eine vereinfachte Verarbeitung eines Objekts verringert die Bitrate, die benötigt wird, um das Objekt durch die Videosequenz hindurch zu repräsentieren, und vereinfacht das Dekodieren der komprimierten Informationen, indem die Bewegungsschätzung und die Fehlersignalerzeugung beseitigt wird, die für allgemeine Objekte benötigt wird.
  • Es ergibt sich, daß eine solche vereinfachte Dekodierung in Kombination mit einer allgemeineren objektbasierten Kodierung der Erfindung verwendet werden kann, so daß sowohl schemendefinierte als auch allgemeine Objekte zusammen verarbeitet werden können. Darüber hinaus werden die Schemen- und die Umbrechinformationen vorzugsweise jeweils kodiert (z. B. Wavelet-kodiert), um die Übertragung und die Speichereffizienz weiter zu steigern.
  • Die vorangehenden und andere Merkmale und Vorteile der bevorzugten Ausführungsform der Erfindung werden leichter anhand der folgenden detaillierten Beschreibung deutlich, die mit Bezug auf die begleitenden Zeichnungen folgt.
  • 1 ein Blockdiagramm eines Computersystems, das verwendet werden kann, um ein Verfahren und eine Vorrichtung auszuführen, die die Erfindung verkörpern;
  • 2A und 2B vereinfachte Darstellungen eines Anzeigeschirms einer Videoanzeigevorrichtung, die zwei aufeinanderfolgende Abbildungsrahmen zeigt, die mit einem Videosignal korrespondieren;
  • 3A ein verallgemeinertes funktionelles Blockdiagramm eines Videokompressionskodierverfahrens zum Komprimieren digitalisierter Videosignale, die die Anzeigebewegung in einer Videosequenz von mehreren Abbildungsrahmen repräsentieren;
  • 3B ein funktionelles Blockdiagramm eines Hauptkodierverfahrens gemäß der Erfindung;
  • 4 ein funktionelles Blockdiagramm eines Objektsegmentierungsverfahrens zum Segmentieren ausgewählter Objekte aus einem Abbildungsrahmen einer Videosequenz;
  • 5A eine vereinfachte Darstellung eines Anzeigeschirms der Videoanzeigevorrichtung nach 2A;
  • 5B eine vergrößerte Darstellung eines Abschnitts des Anzeigeschirms nach 5A;
  • 6A eine funktionelles Blockdiagramm eines Polygonabgleichverfahrens zum Bestimmen eines Bewegungsvektors für einander entsprechende Paare von Pixeln korrespondierender Objekte aufeinanderfolgender Abbildungsrahmen;
  • 7A und 7B vereinfachte Darstellungen eines Anzeigeschirms, der zwei aufeinanderfolgende Abbildungsrahmen mit zwei korrespondierenden Objekten zeigt;
  • 8A ein funktionelles Blockdiagramm eines alternativen Pixelblockkorrelationsverfahrens;
  • 9A eine schematische Darstellung eines ersten Pixelblocks, der zum Identifizieren korrespondierender Pixel in verschiedenen Abbildungsrahmen verwendet wird;
  • 9B eine schematische Darstellung einer Anordnung von Pixeln, die mit einer Suchfläche in einem vorherigen Abbildungsrahmen korrespondieren, wo die korrespondierenden Pixel gesucht werden;
  • 9C9G schematische Darstellungen des ersten Pixelblocks, der über die Pixelanordnung nach 9B abgetastet wird, um die korrespondierenden Pixel zu identifizieren;
  • 10A eine schematische Darstellung eines zweiten Pixelblocks, der zum Identifizieren korrespondierender Pixel in verschiedenen Abbildungsrahmen verwendet wird;
  • 10B10F schematische Darstellungen des zweiten Pixelblocks, der über die Pixelanordnung nach 9B abgetastet wird, um die korrespondierenden Pixel zu identifizieren;
  • 11A eine schematische Darstellung eines dritten Pixelblocks, der zum Identifizieren korrespondierender Pixel in verschiedenen Abbildungsrahmen verwendet wird;
  • 11B11F schematische Darstellung des dritten Pixelblocks , der über die Pixelanordnung nach 9B abgetastet wird;
  • 12 ein funktionelles Blockdiagramm eines mehrdimensionalen Transformationsverfahrens, das das Erzeugen einer Abbildung zwischen Objekten in dem ersten und in dem zweiten darauffolgenden Abbildungsrahmen und das Quantisieren der Abbildung zum Übertragen oder Speichern umfaßt;
  • 13 eine vereinfachte Darstellung eines Anzeigeschirms, der den Abbildungsrahmen nach 7B für Zwecke einer Darstellung des mehrdimensionalen Transformationsverfahrens nach 12 zeigt;
  • 14 eine vergrößerte vereinfachte Darstellung, die drei ausgewählte Pixel eines Transformationsblocks zeigt, die bei der Quantisierung von affinen Transformationskoeffizienten verwendet werden, die mittels des Verfahrens nach 12 bestimmt worden sind;
  • 15 ein funktionelles Blockdiagramm eines Transformationsblockoptimierungsverfahrens, das bei einer alternativen Ausführungsform des mehrdimensionalen Transformationsverfahrens nach 12 verwendet wird;
  • 16 eine vereinfachte unvollständige Darstellung eines Anzeigeschirms, der einen Abbildungsrahmen nach 7B für Zwecke der Darstellung des Transformationsblockoptimierungsverfahrens nach 15 zeigt;
  • 17A und 17B ein funktionelles Blockdiagramm eines Vorkompressionsextrapolationsverfahrens zum Extrapolieren von Abbildungsmerkmalen beliebiger Gestaltung auf eine vordefinierte Gestaltung, um eine Komprimierung zu erleichtern;
  • 18A18D Darstellungen eines Anzeigeschirms, auf dem ein einfaches Objekt dargestellt ist, um verschiedene Aspekte des Extrapolationsverfahrens nach 14 zu zeigen;
  • 19A und 19B funktionelle Blockdiagramme eines Kodierverfahrens bzw. eines Dekodierverfahrens, welche ein Laplace-Pyramidenkodierverfahren gemäß der Erfindung anwenden;
  • 20A20D vereinfachte Darstellungen der Farbbestandteilwerte eines beliebigen Satzes oder einer Anordnung von Pixeln, die gemäß des Kodierverfahrens nach 19A verarbeitet werden;
  • 21 ein funktionelles Blockdiagramm eines Bewegungsvektorkodierverfahrens gemäß der Erfindung;
  • 22 ein funktionelles Blockdiagramm eines alternativen quantisierten Objektkodier-Dekodierverfahrens;
  • 23A ein verallgemeinertes funktionelles Blockdiagramm eines Videokompressionsdekodierverfahrens, das an das Kodierverfahren nach 3 angepaßt ist;
  • 23B ein funktionelles Diagramm eines Hauptobjektdekodierverfahrens gemäß der Erfindung;
  • 24A eine diagrammartige Darstellung eines gewöhnlichen Kettencodeformats;
  • 24B eine vereinfachte Darstellung einer beispielhaften Kontur zum Bearbeiten mit dem Kettencodeformat nach 24A;
  • 25A ein funktionelles Blockdiagramm eines Kettencodeverfahrens der Erfindung;
  • 25B eine diagrammartige Darstellung eines Kettencodeformats der Erfindung;
  • 25C eine diagrammartige Darstellung einer Spezialfall-Kettencodemodifikation, die bei dem Verfahren nach 25A verwendet wird;
  • 26 ein funktionelles Blockdiagramm eines Schemenerzeugungs- oder eines Schemenkodierverfahrens;
  • 27A und 27B entsprechende erste und zweite Objekte, die mittels Bitmaps definiert sind und ein Gitter aus Dreiecken zeigen, die den Objekten in Übereinstimmung mit dem Verfahren nach 26 überlagert sind;
  • 28 ein funktionelles Blockdiagramm eines Schemendekodierverfahrens, welches mit dem Kodierverfahren nach 26 korrespondiert.
  • 29 ein funktionelles Blockdiagramm eines vereinfachten Dekodierverfahrens für vollständig definierte Objekte.
  • 1 zeigt, daß eine Betriebsumgebung für die bevorzugte Ausführungsform der Erfindung entweder ein Allzweckcomputersystem oder ein spezieller Typ eines Computersystems 20 ist, das mindestens eine Hochgeschwindigkeitszentraleinheit (CPU 22) in Verbindung mit einem Speichersystem 24, einer Eingabevorrichtung 26 und einer Ausgabevorrichtung 28 umfaßt. Diese Elemente sind mittels einer Busstruktur 30 miteinander verbunden.
  • Die dargestellte CPU 22 weist ein gewöhnliches Design auf und umfaßt ein Rechenwerk (arithmetic-logic unit ALU) 32 zum Durchführen von Berechnungen, ein Sammelregister 34 zum kurzzeitigen Speichern von Daten und Anweisungen und eine Steuereinheit 36 zum Steuern des Betriebs des Systems 20. Die CPU 22 kann ein Prozessor sein, der irgendeine Architektur aus einer Vielzahl von Architekturen umfaßt, einschließlich einer Alpha-Architektur von Digital, einer MIPS-Architektur von MIPS Technology, NEC, IDT, Siemens oder anderen, einer x86-Architektur von Intel oder anderen, einschließlich Cyrix, AMD, Nexgen und der PowerPc-Architektur von IBM und Motorola.
  • Das Speichersystem 24 umfaßt einen Hauptspeicher 38 und einen Sekundärspeicher 40. Der dargestellte Hauptspeicher 38 nimmt die Form von 16 Megabytes eines Halbleiter-Lese-Schreib-Speichers (RAM) an. Der Sekundärspeicher 40 weist die Form eines Langzeitspeichers, zum Beispiel eines Nurlesespeichers (ROM), einer optischen oder magnetischen Disk, eines Flash-Speichers oder eines Bands auf. Für den Fachmann ergibt sich, daß das Speichersystem 24 viele andere alternative Komponenten umfassen kann.
  • Die Eingabe- und Ausgabevorrichtungen 26, 28 sind ebenso bekannt. Die Eingabevorrichtung 26 kann eine Tastatur, eine Maus, einen physikalischen Meßfühler (z. B. ein Mikrofon) usw. umfassen. Die Ausgabevorrichtung 28 kann eine Anzeige, einen Drucker, einen Signalgeber (z. B. einen Lautsprecher) usw. umfassen. Einige Vorrichtungen, wie eine Netzwerkschnittstelle oder ein Modem, können als Eingabe- und/oder Ausgabevorrichtung verwendet werden.
  • Wie Fachleuten bekannt ist, umfaßt das Computersystem 20 ferner ein Betriebssystem und mindestens ein Anwendungsprogramm. Das Betriebssystem ist der Satz von Software, der den Betrieb des Computersystems und die Zuweisung der Ressourcen steuert. Das Anwendungsprogramm ist der Satz von Software, der eine von dem Nutzer gewünschte Ausgabe ausführt, wobei Ressourcen des Computers verwendet werden, die durch das Betriebssystem verfügbar gemacht werden. Beide sind in dem dargestellten Speichersystem 24 resident.
  • In Übereinstimmung mit den Praktiken von Computerprogrammierfachleuten, wird die Erfindung unten mit Bezug auf symbolische Darstellungen der Arbeitsvorgänge beschrieben, die von dem Computersystem 20 ausgeführt werden, falls es nicht anderweitig angegeben ist. Solche Arbeitsvorgänge werden manchmal als computerausgeführt bezeichnet. Es ergibt sich, daß die Arbeitsvorgänge, die symbolisch repräsentiert werden, die Manipulation von elektrischen Signalen mittels der CPU 22, die Datenbits repräsentieren, und das Erhalten der Datenbits an Speicherorten in dem Speichersystem 24 wie auch anderes Verarbeiten der Signale umfassen. Speicherorte, an denen die Datenbits gehalten werden, sind physikalische Orte, die bestimmte elektrische, magnetische oder optische Eigenschaften besitzen, die mit den Datenbits korrespondieren.
  • 2A und 2B sind vereinfachte Darstellungen eines Anzeigeschirms 50 einer Videoanzeigevorrichtung 52 (z. B. eines Fernsehers oder eines Computermonitors), die zwei aufeinanderfolgende Abbildungsrahmen 54a und 54b einer Videoabbildungssequenz zeigen, die elektronisch von entsprechenden Videosignalen repräsentiert wird. Die Videosignale können irgendeines einer Vielzahl von Videosignalformaten aufweisen, einschließlich analoger Fernsehvideoformate, zum Beispiel NTSC, PAL und SECAM, und pixelierter oder digitalisierter Videosignalformate, die typischerweise für Computeranzeigen verwendet werden, zum Beispiel VGA, CGA und EGA. Vorzugsweise weisen die Videosignale, die mit den Abbildungs rahmen korrespondieren, ein digitalisieries Videosignalformat auf, entweder ein ursprünglich erzeugtes oder ein mittels einer Umwandlung aus einem analogen Videosignalformat erzeugtes, wie dies im Stand der Technik bekannt ist.
  • Die Abbildungsrahmen 54a und 54b umfassen jeweils ein rechteckiges Festkörperabbildungsmerkmal 56 und ein Pyramidenabbildungsmerkmal 58, die vor einem Hintergrund 60 angeordnet sind. Die Abbildungsmerkmale 56 und 58 in den Abbildungsrahmen 54a und 54b weisen verschiedene Erscheinungen auf, weil verschiedene Teile verdeckt und gezeigt sind. Für Zwecke der nachfolgenden Beschreibung wird eine bestimmte Form eines Abbildungsmerkmals in einem Abbildungsrahmen als Objekt oder alternativ als Maske bezeichnet. Entsprechend ist das rechteckige Festkörperabbildungsmerkmal 56 als rechteckiges Festkörperobjekt 56a und 56b in den entsprechenden Abbildungsrahmen 54a und 54b und das Pyramidenabbildungsmerkmal 58 als Pyramidenobjekt 58a und 58b in den entsprechenden Abbildungsrahmen 54a und 54b gezeigt.
  • Das Pyramidenabbildungsmerkmal 58 ist am gleichen Ort und mit der gleichen Orientierung in den Abbildungsrahmen 54a und 54b gezeigt und wird bewegungslos "erscheinen", wenn es in der Videosequenz gezeigt wird. Der rechteckige Festkörper 56 ist in den Rahmen 54a und 54b mit verschiedenen Orientierungen und an verschiedenen Orien relativ zu der Pyramide 58 gezeigt und wird sich bewegend und relativ zu der Pyramide drehend "erscheinen", wenn er in einer Videosequenz gezeigt wird. Das Aussehen der Abbildungsmerkmale 58 und 60 ist symbolisch und übertrieben. Die Abbildungsrahmen einer Videosequenz werden typischerweise mit Raten im Bereich von 30–80 Hz dargestellt. Die menschliche Wahrnehmung von Videobewegung erfordert typischerweise mehr als zwei Abbildungsrahmen. Die Abbildungsrahmen 54a und 54b schaffen daher eine vereinfachte Darstellung einer herkömmlichen Videosequenz für Zwecke der Darstellung der Erfindung. Darüber hinaus ergibt es sich, daß die Erfindung in keiner Weise auf solche vereinfachten Videoabbildungen, Abbildungsrahmen oder Sequenzen begrenzt ist und im Gegenteil auf Videoabbildungen und Sequenzen von beliebiger Komplexität anwendbar ist.
  • Überblick über das Videokompressionskodierverfahren
  • 3A ist ein verallgemeinertes funktionelles Blockdiagramm eines Videokompressionskodierverfahrens 64 zum Komprimieren digitalisierter Videosignale, die die Bewegung in einer Videosequenz aus mehreren Abbildungsrahmen darstellen. Die Kompression von Vi deoinformation (d. h. von Videosequenzen oder Signalen) kann eine ökonomische Speicherung und Übertragung von digitaler Videoinformation für Anwendungen schaffen, die zum Beispiel interaktives oder digitales Fernsehen und Multimediacomputeranwendungen umfassen. Für Zwecke der Kürze können die Bezugszeichen, die Funktionsblöcken des Kodierverfahrens 64 zugewiesen sind, austauschbar als Bezug auf die Ergebnisse verwendet werden, die von den Funktionsblöcken erzeugt werden.
  • Gewöhnliche Videokompressionstechniken nutzen Ähnlichkeiten zwischen aufeinanderfolgenden Abbildungsrahmen, die als zeitliche oder Zwischenrahmenkorrelation bezeichnet werden, um eine Zwischenrahmenkompression zu schaffen, bei der pixelbasierte Repräsentationen des Abbildungsrahmens in Bewegungsrepräsentationen konvertiert werden. Zusätzlich nutzen gewöhnliche Videokompressionstechniken Ähnlichkeiten innerhalb eines Abbildungsrahmens, die als räumliche oder Innerrahmenkorrelation bezeichnet werden, um eine Innerrahmenkompression zu liefern, bei der die Bewegungsrepräsentation innerhalb eines Abbildungsrahmens weiter komprimiert wird.
  • Bei solchen gewöhnlichen Videokompressionstechniken, einschließlich MPEG-1, MPEG-2 und H.26X, werden zeitliche und räumliche Korrelationen relativ zu einfachen Verschiebungen von festen, regelmäßigen (z. B. quadratischen) Anordnungen von Pixeln bestimmt. Die Videoinformation umfaßt gewöhnlich jedoch beliebige Videobewegungen, die nicht genau mittels des Verschiebens von quadratischen Anordnungen von Pixeln dargestellt werden können. Als eine Konsequenz weisen herkömmliche Videokompressionstechniken typischerweise erhebliche Fehlerbestandteile auf, die die Kompressionsrate und Genauigkeit begrenzen.
  • Im Gegensatz hierzu nutzt das Kodierverfahren 64 ein eobjekt-basierte Videokompression, um die Genauigkeit und Vielseitigkeit der Kodierung der Zwischenrahmenbewegung und der Innerrahmenabbildungsmerkmale zu verbessern. Das Kodierverfahren 64 komprimiert Videoinformation eher relativ zu Objekten beliebiger Ausgestaltungen als zu festen regelmäßigen Anordnungen von Pixeln. Dies verringert die Fehlerbestandteile und verbessert hierdurch die Kompressionseffizienz und Genauigkeit. Als einen anderen Vorteil bietet die objekt-basierte Videokompression interaktive Videoeditierfähigkeiten zum Bearbeiten komprimierter Videoinformation.
  • Ein Funktionsblock 66 in 3A deutet an, daß nutzerdefinierte Objekte innerhalb der Abbildungsrahmen einer Videosequenz in Segmente von anderen Objekten innerhalb des Abbil dungsrahmens geteilt werden. Die Objekte können eine beliebige Ausgestaltung aufweisen und repräsentieren vorzugsweise bestimmte Abbildungsmerkmale in einer Anzeigeabbildung. Die Segmentierung umfaßt das Identifizieren der Pixel in dem Abbildungsrahmen, die mit dem Objekt korrespondieren. Die nutzerdefinierten Objekte werden in jedem der Abbildungsrahmen der Videosequenz definiert. In 2A und 2B werden zum Beispiel die rechtekkigen Körperobjekte 56a und 56b und die Pyramidenobjekte 58a und 58b getrennt in Segmente aufgeteilt.
  • Die segmentierten Objekte werden von binären oder Mehr-bit- (z. B. 8-bit-) "Alphakanal"-Masken der Objekte repräsentiert. Die Objektmasken geben die Größe, die Gestaltung und den Ort eines Objekts auf einer Pixel-für-Pixel-Basis an. Für Zwecke einer Vereinfachung ist die folgende Beschreibung auf binäre Masken ausgerichtet, bei denen jedes Pixel eines Objekts mittels eines einzelnen binären Bits repräsentiert wird, eher als mittels der typischen 24 Bits (d. h. der 8 Bits für jeden der drei Farbbestandteilwerte). Viel-bit- (z. B. 8-bit)-Masken sind ebenso verwendet worden.
  • Ein Funktionsblock 68 deutet an, daß "Merkmalpunkte" von jedem Objekt von einem Nutzer definiert werden. Die Merkmalpunkte sind vorzugsweise unverkennbare Merkmale oder Aspekte des Objekts. Zum Beispiel könnten von einem Nutzer die Ecken 70a bis 70c und die Ecken 72a bis 72c als Merkmalpunkte des rechteckigen Festkörpers 56 bzw. der Pyramide 58 definiert werden. Die Pixel, die mit jeder Objektmaske und ihren Merkmalpunkten in jedem Abbildungsrahmen korrespondieren, werden in einer Objektdatenbank gespeichert, die im Speichersystem 24 umfaßt ist.
  • Ein Funktionsblock 74 deutet an, daß Änderungen der Positionen der Merkmalpunkte in aufeinanderfolgenden Abbildungsrahmen identifiziert werden und Trajektorien für die Merkmalpunkte zwischen aufeinanderfolgenden Abbildungsrahmen bestimmt werden. Die Trajektorien repräsentieren die Richtung und das Ausmaß der Bewegung von den Merkmalpunkten. Ein Funktionsblock 76 deutet an, daß die Trajektorien der Merkmalpunkte bei dem Objekt zwischen dem vorherigen Rahmen N – 1 und dem gegenwärtigen Rahmen N auch von der Objektdatenbank abgerufen werden könnten.
  • Ein Funktionsblock 78 deutet an, daß eine spärliche Bewegungstransformation für das Objekt zwischen dem vorherigen Rahmen N – 1 und dem gegenwärtigen Rahmen N bestimmt wird. Die spärliche Bewegungsumformung basiert auf den Merkmalpunkttrajektorien zwischen den Rahmen N – 1 und N. Die spärliche Bewegungstransformation schafft eine Schätzung für die Änderung des Objekts zwischen dem vorherigen Rahmen N – 1 und dem gegenwärtigen Rahmen N.
  • Ein Funktionsblock 80 deutet an, daß eine Maske eines Objekts in dem gegenwärtigen Rahmen N von der Objektdatenbank in dem Speicher 24 abgerufen wird.
  • Ein Funktionsblock 90 deutet an, daß ein quantisiertes Hauptobjekt oder "Schema" von den Objekten oder Masken 66 gebildet wird, das mit einem Abbildungsmerkmal in einer Abbildungsrahmensequenz und Merkmalpunkttrajektorien 74 korrespondiert. Das Hauptobjekt umfaßt vorzugsweise alle Aspekte oder Merkmale eines Objekts, wie es in den mehreren Rahmen dargestellt ist. Mit Bezug auf die 2A und 2B umfaßt zum Beispiel der rechteckige Festkörper 56 im Rahmen 54b eine Seite 78b, die im Rahmen 54a nicht gezeigt wird. Ähnlich umfaßt der rechteckige Festkörper 56 eine Seite 78a im Rahmen 54a, die im Rahmen 54 nicht gezeigt wird. Das Hauptobjekt für den rechteckigen Festkörper 56 umfaßt beide Seiten 78a und 78b.
  • Die spärliche Bewegungstransformation 78 wird häufig nicht eine vollständige Darstellung der Änderung für das Objekt zwischen den Rahmen N – 1 und N liefern. Zum Beispiel könnte ein Objekt in einem vorherigen Rahmen N – 1, zum Beispiel das rechteckige Objekt 54a, nicht alle Merkmale des Objekts in dem gegenwärtigen Rahmen N umfassen, zum Beispiel die Seite 78b des rechteckigen Objekts 54b.
  • Um die Genauigkeit der Transformation zu verbessern, wird daher eine Schnittmenge der Masken des Objekts im vorherigen Rahmen und dem gegenwärtigen Rahmen N bestimmt, zum Beispiel mittels einer logischen UND-Funktion, wie sie im Stand der Technik bekannt ist. Die Maske des Objekts in dem gegenwärtigen Rahmen N wird von der sich ergebenden Schnittmenge abgezogen, um irgendwelche Abschnitte oder Merkmale des Objekts in dem gegenwärtigen Rahmen N zu identifizieren, die in dem Objekt in dem vorherigen Rahmen N – 1 nicht umfaßt sind (z. B. Seite 78b des rechteckigen Objekts 54b, wie oben beschrieben ist). Die neu identifizierten Abschnitte des Objekts werden in das Hauptobjekt 90 vereinigt, so daß es eine vollständige Darstellung des Objekts in den Rahmen N – 1 und N umfaßt.
  • Ein Funktionsblock 96 deutet an, daß eine quantisierte Form eines Objekts 98 in einem vorherigen Rahmen N – 1 (z. B. das rechteckige Festkörperobjekt 56a in dem Abbildungsrahmen 54a) mittels einer dichten Bewegungstransformation umgewandelt ist, um eine vorausgesagte Form des Objekts 102 in einem gegenwärtigen Rahmen N (z. B. das rechteckige Festkörperobjekt 56b in dem Abbildungsrahmen 54b) zu schaffen. Diese Transformation schafft objektbasierte Zwischenrahmenkompression.
  • Die dichte Bewegungstransformation umfaßt vorzugsweise das Bestimmen einer affinen Transformation zwischen dem vorherigen quantisierten Objekt in dem Rahmen N – 1 und dem Objekt in dem gegenwärtigen Rahmen N und die Anwendung der affinen Transformation auf das quantisierte vorherige Objekt 98. Die bevorzugte affine Transformation wird mittels affiner Transformationskoeffizienten 104 repräsentiert und ist in der Lage, eine Verschiebung, eine Drehung, eine Vergrößerung und eine Scherung zu beschreiben. Die affine Transformation wird aus einer dichten Bewegungsschätzung bestimmt, vorzugsweise einschließlich einer Pixel-für-Pixel-Abbildung zwischen dem vorherigen quantisierten Objekt 98 und dem Objekt in dem gegenwärtigen Rahmen N.
  • Das vorausgesagte gegenwärtige Objekt 102 wird mittels des quantisierten vorherigen Objekts 98 repräsentiert, wie es mittels der dichten Bewegungstransformation 98 modifiziert wird, und ist in der Lage, eine relativ komplexe Bewegung zusammen mit irgendeinem neuen Abbildungsaspekt zu repräsentieren, der von dem Hauptobjekt 90 erhalten wird. Solch objektbasierte Repräsentationen sind ziemlich genau, weil die wahrnehmbare und räumliche Kontinuität, die mit den Objekten verknüpft ist, Fehler beseitigt, die von typischen Änderungsbeziehungen zwischen verschiedenen Objekten in verschiedenen Abbildungsrahmen herrühren. Darüber hinaus erlaubt die objekt-basierte Repräsentation einem Nutzer, die verschiedenen Objekte mit verschiedenen Niveaus von Auflösung darzustellen, um die relative Effizienz und die Genauigkeit für repräsentierte Objekte von sich verändernder Komplexität zu optimieren.
  • Ein Funktionsblock 106 deutet an, daß für den Abbildungsrahmen N, ein vorausgesagtes gegenwärtiges Objekt 102 von dem ursprünglichen Objekt 108 für den gegenwärtigen Rahmen N abgezogen wird, um einen geschätzten Fehler 110 für das vorausgesagte Objekt 102 zu bestimmen. Der geschätzte Fehler 110 ist eine komprimierte Repräsentation des gegenwärtigen Objekts 108 in dem Abbildungsrahmen N relativ zu dem quantisierten vorherigen Objekt 98. Genauer bedeutet dies, das gegenwärtige Objekt 108 kann aus dem geschätzten Fehler 110 und dem quantisierten vorherigen Objekt 98 dekodiert und wiederhergestellt werden.
  • Ein Funktionsblock 112 deutet an, daß der geschätzte Fehler 110 komprimiert oder mittels eines herkömmlichen "verlustbehafteten" Einzelabbildungskompressionsverfahrens "kodiert" wird, zum Beispiel einer Gitterunterband- oder einer anderen wellenartigen Waveletkompression oder Kodierung, wie sie in der Veröffentlichung "Multirate Systems and Filter Banks" von Vaidyanathan, PTR Prentice-Hall, Inc., Englewood Cliffs, New Jersey, (1993) beschrieben ist, oder mittels diskreter Cosinustransformations- (DCTS)-Kodierung, wie sie in der Veröffentlichung "JPEG: Still Image Data Compression Standard" von Pennebaker et al., Van Nostrand Reinhold, New York (1993) beschrieben ist.
  • Es ist in Fachkreisen bekannt, daß "verlustbehaftete" Kompressionsverfahren einige Datenstörungen einführen, um eine gesteigerte Datenkompression zu liefern. Die Datenstörungen beziehen sich auf Variationen zwischen den Originaldaten vor der Kompression und den sich ergebenden Daten nach der Kompression und der Dekompression. Für Zwecke der unten folgenden Darstellung wird angenommen, daß die Kompression oder Kodierung des Funktionsblocks 102 eine Waveletkodierung ist.
  • Ein Funktionsblock 114 deutet an, daß der geschätzte Waveletkodierungsfehler nach Funktionsblock 112 weiter komprimiert oder mittels herkömmlicher "verlustloser" Einzelabbildungskomprimierungsverfahren "kodiert" wird, um komprimierte Daten 116 zu bilden. Ein bevorzugtes herkömmliches "verlustloses" Einzelabbildungskompressionsverfahren ist eine Entropiekodierung, wie sie in der Veröffentlichung "JPEG: Still Image Data Compression Standard" von Pennebaker et al. beschrieben ist. Wie in dem Stand der Technik bekannt ist, fügen "verlustlose" Kompressionsverfahren keine Datenstörungen ein.
  • Eine Fehlerrückkoppelungsschleife 118 nutzt den geschätzten waveletkodierten Fehler vom Funktionsblock 112 für das Objekt in dem Rahmen N, um ein vorheriges quantisiertes Objekt für einen nachfolgenden Rahmen N + 1 zu erhalten. Als ein erster Schritt in der Rückkoppelungsschleife 118 deutet ein Funktionsblock 120 an, daß der geschätzte Waveletkodierfehler von dem Funktionsblock 112 invers waveletkodiert wird oder waveletdekodiert wird, um einen quantisierten Fehler 122 für das Objekt in dem Abbildungsrahmen N zu bilden.
  • Der Effekt des aufeinanderfolgenden Kodierens und Dekodierens des geschätzten Fehlers 110 mittels eines verlustbehafteten Einzelabbildungskompressionsverfahrens ist es, aus dem quantisierten Fehler 122 Videoinformation auszulassen, die allgemein von dem Betrachter nicht wahrnehmbar ist. Diese Information ist typischerweise hochfrequent. Als ein Ergebnis des Auslassens solcher höheren Frequenzbestandteile kann typischerweise eine Abbildungskompression von bis zu etwa 200% bei nur minimaler Verschlechterung der Abbildungsqualität geschaffen werden.
  • Ein Funktionsblock 124 deutet an, daß der quantisierte Fehler 122 und das vorausgesagte Objekt 102, beide für den Abbildungsrahmen N, zusammenaddiert werden, um ein quantisiertes Objekt 126 für den Abbildungsrahmen N zu bilden. Nach einer Zeitanpassungskoordinierungsverzögerung 128, wird das quantisierte Objekt 126 zu dem quantisierten früheren Objekt 98 und wird als Basis für die Verarbeitung des entsprechenden Objekts in dem Abbildungsrahmen N + 1 verwendet.
  • Das Kodierverfahren 64 nutzt die zeitliche Korrelation von korrespondierenden Objekten in aufeinanderfolgenden Abbildungsrahmen, um eine verbesserte Zwischenrahmenkompression zu erhalten, und nutzt ferner die räumliche Korrelation innerhalb der Objekte, um eine genaue und effiziente Innerrahmenkompression zu erhalten. Für die Zwischenrahmenkompression werden eine Bewegungsschätzung und Kompensation ausgeführt, so daß ein in einem Rahmen definiertes Objekt in einem darauffolgenden Rahmen geschätzt werden kann. Die bewegungsbasierte Schätzung des Objekts in dem nachfolgenden Rahmen erfordert erheblich weniger Information als eine gewöhnliche blockbasierte Repräsentation des Objekts. Für die Innerrahmenkompression wird ein geschätztes Fehlersignal für jedes Objekt komprimiert, um die räumliche Korrelation des Objekts innerhalb eines Rahmens zu nutzen und zu ermöglichen, daß verschiedene Obj ekte mit verschiedenen Auflösungen repräsentiert werden. Die Rückkoppelungsschleife 118 ermöglicht Objekten in nachfolgenden Rahmen von vollständig dekomprimierten Objekten vorausgesagt zu werden, wodurch eine Ansammlung des Schätzungsfehlers verhindert wird.
  • Das Kodierverfahren 64 liefert als Ausgabe eine komprimierte oder kodierte Repräsentation eines digitalisierten Videosignals, welches die Anzeigebewegung in einer Videosequenz aus mehreren Abbildungsrahmen repräsentiert. Die komprimierte oder kodierte Repräsentation umfaßt Objektmasken 66, Merkmalpunkte 68, affine Transformationskoeffizienten 104 und komprimierte Fehlerdaten 116. Die kodierte Repräsentation kann gemäß der bestimmten Anwendung, in der die Videoinformation genutzt wird, gespeichert oder übertragen werden.
  • 3B ist ein funktionelles Blockdiagramm eines Hauptobjektkodierverfahrens 130 zum Kodieren oder Komprimieren eines Hauptobjekts 90. Ein Funktionsblock 132 deutet an, daß das Hauptobjekt 90 komprimiert oder mittels herkömmlicher "verlustbehafteter" Einzelbildkompressionsverfahren kodiert wird, zum Beispiel mit einer Gitterunterband- oder einer anderen Waveletkompression oder einer diskreten Cosinustransformationskodierung (DCT). Vorzugsweise verwendet der Funktionsblock 132 die Waveletkodierung.
  • Ein Funktionsblock 134 deutet an, daß das waveletkodierte Hauptobjekt des Funktionsblocks 132 weiter komprimiert oder mittels eines herkömmlichen "verlustfreien" Einzelbildkompressionsverfahrens kodiert wird, um komprimierte Hauptobjektdaten 136 zu bilden. Ein bevorzugtes herkömmliches verlustfreies Einzelabbildungskompressionsverfahren ist die Entropiekodierung.
  • Ein Kodierverfahren 130 liefert als eine Ausgabe das komprimierte Hauptobjekt 136. Zusammen mit der komprimierten oder kodierten Repräsentation, die von dem Kodierverfahren 64 geliefert wird, kann das komprimierte Hauptobjekt 136 nach einer Speicherung oder Übertragung dekomprimiert oder dekodiert werden, um eine Videosequenz aus mehreren Abbildungsrahmen zu erhalten.
  • Das Kodierverfahren 64 wird mit Bezug auf das Kodieren von Videoinformation beschrieben, die mit einem einzelnen Objekt innerhalb eines Abbildungsrahmens korrespondiert. Wie in den 2A und 2B gezeigt und oben angedeutet ist, wird das Kodierverfahren 64 getrennt für jedes der Objekte (z. B. Objekte 56 und 58 nach 2A und 2B) in einem Abbildungsrahmen ausgeführt. Darüber hinaus umfassen viele Videoabbildungen einen Hintergrund, über dem eine beliebige Anzahl von Abbildungsmerkmalen oder Objekten dargestellt sind. Vorzugsweise wird der Hintergrund als ein Objekt gemäß dieser Erfindung verarbeitet, nachdem alle von dem Nutzer festgelegten Objekte verarbeitet worden sind.
  • Das Verarbeiten des Objekts in einem Abbildungsrahmen erfordert, daß die Objekte getrennt identifiziert werden. Vorzugsweise wird das Kodierverfahren 64 auf die Objekte eines Abbildungsrahmens beginnend mit dem vordersten Objekt oder den vordersten Objekten begonnen und schrittweise zu dem hintersten Objekt (z. B. dem Hintergrund ) fortgesetzt. Das Zusammensetzen der kodierten Objekte zu einer Videoabbildung verläuft vorzugsweise von dem hintersten Objekt (z. B. dem Hintergrund) und schrittweise zu dem vordersten Objekt (z. B. dem rechteckigen Festkörper 56 in 2A und 2B). Das Schichten der kodierten Objekte kann mittels getrennter Schichtungsdaten, die mit den Objekten eines Abbildungsrahmens verknüpft sind oder alternativ mittels der Übertragung oder des Erhaltens der kodierten Ob jekte in einer Sequenz übermittelt werden, die mit dem Schichten oder dem Zusammensetzen der Sequenz korrespondiert.
  • Objektsegmentierung und Verfolgung
  • Bei einer bevorzugten Ausführungsform ermöglicht die Segmentierung der Objekte innerhalb der Abbildungsrahmen, auf die im Funktionsblock 66 Bezug genommen wird, eine interaktive Segmentierung mittels eines Nutzers. Die Objektsegmentierung der Erfindung schafft eine verbesserte Genauigkeit bei der Segmentierung der Objekte und ist relativ schnell und bietet einem Nutzer eine optimale Flexibilität beim Definieren der zu segmentierenden Objekte.
  • 4 ist ein funktionelles Blockdiagramm eines Objektsegmentierungsverfahrens 140 zum Segmentieren ausgewählter Objekte aus einem Abbildungsrahmen einer Videosequenz. Die Objektsegmentierung gemäß dem Prozeß 140 schafft eine Wahrnehmungsgruppierung von Obj ekten, die genau und schnell und leicht für einen Nutzer zu definieren ist.
  • 5A ist eine vereinfachte Darstellung eines Anzeigeschirms 50 einer Videoanzeigevorrichtung 52, die einen Abbildungsrahmen 54a und die Segrrientierung eines rechteckigen Festkörperobjektes 56a zeigt. Bei seiner Darstellung auf dem Anzeigeschirm 50 umfaßt das rechteckige Festkörperobjekt 56a einen Objektumfang 142 (zur Verdeutlichung getrennt von dem Objekt 56a gezeigt), das ein Inneres 144 des Objekts abgrenzt. Das Innere 144 des Objekts bezieht sich auf die Kontur vom Objekt 56a auf dem Anzeigeschirm 50 und kann im allgemeinen mit einer inneren Oberfläche oder, wie gezeigt ist, einer äußeren Oberfläche des Abbildungsmerkmals korrespondieren. 5B ist eine vergrößerte Darstellung von einem Abschnitt des Anzeigeschirms 50, der die halbautomatische Segmentierung des rechteckigen Festkürperobjektes 56a zeigt. Die folgende Beschreibung wird mit besonderem Bezug auf das rechteckige Festkörperobjekt 56a gemacht, ist jedoch ähnlich auf jedes aus einem Abbildungsrahmen zu segmentierende Objekt anwendbar.
  • Ein Funktionsblock 146 deutet an, daß ein Nutzer innerhalb des Inneren 144 des Objekts eine innere Kontur 148 eines Objektumfangs 142 bildet. Der Nutzer bildet vorzugsweise eine innere Kontur 148 mit einer gewöhnlichen Zeiger- oder Cursorsteuerungsvorrichtung, z. B. einer Maus oder einem Trackball. Die innere Kontur 148 wird innerhalb eines nominellen Abstands 150 vom Objektumfang 142 gebildet. Der nominelle Abstand 150 wird von einem Nutzer ausgewählt, um ausreichend groß zu sein, daß der Nutzer die innere Kontur 148 relativ schnell innerhalb des nominellen Abstands 150 von dem Umfang 142 bilden kann. Der nominelle Abstand entspricht z. B. zwischen 4 und 10 Pixeln.
  • Ein Funktionsblock 146 wird in Verbindung mit einem Schlüsselrahmen einer Videosequenz ausgeführt. Bezüglich einer Szene in einem herkömmlichen Film könnte der Schlüsselrahmen z. B. der erste Rahmen von mehreren Rahrnen in einer Szene sein. Die Beteiligung des Nutzers bei dieser Funktion macht das Objektsegmentierungsverfahren 140 halbautomatisch, jedoch steigert es die Genauigkeit und Flexibilität erheblich, mit der die Objekte segmentiert werden. Anders als für den Schlüsselrahmen werden die Objekte in den nachfolgenden Abbildungsrahmen automatisch segmentiert, wie unten detaillierter beschrieben wird.
  • Ein Funktionsblock 152 deutet an, daß die innere Kontur 148 automatisch expandiert wird, um eine äußere Kontur 156 zu bilden. Die Bildung der äußeren Kontur 156 wird als relativ einfache Abbildungsvergrößerung der Kontur 148 ausgeführt, so daß die äußere Kontur 156 eine nutzerdefinierte Anzahl von Pixeln von der inneren Kontur 148 entfernt ist. Vorzugsweise beträgt der Abstand zwischen der inneren Kontur 148 und der äußeren Kontur 156 ungefähr das zweifache des Abstands 150.
  • Ein Funktionsblock 158 deutet an, daß die Pixel zwischen der inneren Kontur 148 und der äußeren Kontur 156 gemäß vorfestgelegter Attribute klassifiziert werden, ob sie innerhalb des Inneren 144 des Objekts sind und hierdurch automatisch einen Objektumfang 142 und eine entsprechende Maske 80 eines Typs identifizieren, der mit Bezug auf 3A beschrieben wurde. Vorzugsweise umfassen die Abbildungsattribute eine Pixelfarbe und einen Pixelort, jedoch könnte jedes Attribut alleine oder zusammen mit anderen Attributen verwendet werden.
  • Bei der bevorzugten Ausführungsform definiert jedes Pixel in der inneren Kontur 148 und der äußeren Kontur 156 ein "Clusterzentrum", das von einem fünfdimensionalen Vektor der Form (r, g, b, x, y) repräsentiert wird. Die Begriffe r, g und b korrespondieren mit den entsprechenden Farbbestandteilen rot, grün und blau, die mit jedem der Pixel verknüpft sind, und die Begriffe x und y korrespondieren mit den Pixelorten. Die m-Anzahl von Clusterzentrum-Vektoren, die mit Pixeln in der inneren Kontur 148 korrespondieren, werden als {I0, I1,..., Im– 1} bezeichnet und die n-Anzahl vom Clusterzentrum-Vektoren, die mit den Pixeln in der äußeren Kontur 156 korrespondieren, werden als {O0, O1,..., On–1} bezeichnet.
  • Die Pixel zwischen den Clusterzentrum-Vektoren Ii und Oj werden eingeordnet, indem der Vektor identifiziert wird, der dem Pixel in dem fünfdimensionalen Vektorraum am nächsten ist. Für jedes Pixel wird der absolute Abstand di und dj zu jedem der entsprechenden Clusterzentrum-Vektoren Ii und Oj gemäß den folgenden Gleichungen berechnet: di = wcolor(|r – ri| + |g – gi| + |b – bi|) + wcoord(|x – xi| + |y – yi|), 0 < i < m, dj = wcolor(|r – rj| + |g – gj| + |b – bj|) + wcoord(|x – xj| + |y – yj|), 0 ≤ j < n,wobei wcolor und wcoord Wichtungsfaktoren für die entsprechende Farb- und die Pixelortinformation sind. Die Wichtungsfaktoren wcolor und wcoordabestehen aus Werten, die eine Summe 1 aufweisen, und können ansonsten von einem Nutzer gewählt werden. Vorzugsweise weisen die Wichtungsfaktoren wcolor und wcoord einen gleichen Wert von 0,5 auf. Jedes Pixel ist mit dem Inneren 144 des Objekts oder dem Äußeren gemäß dem minimalen fünfdimensionalen Abstand zu einem der Clusterzentrum-Vektoren Ii und Oj verknüpft.
  • Ein Funktionsblock 162 deutet an, daß ein Nutzer mindestens zwei und vorzugsweise mehr (z. B. 4 bis 6) Merkmalpunkte in jedem Objekt eines ursprünglichen Rahmens oder Schlüsselrahmens auswählt. Vorzugsweise sind die Merkmalspunkte relativ unverwechselbare Aspekte des Objekts. Mit Bezug auf das rechteckige Festkörperabbildungsmerkmal 36 könnten zum Beispiel die Ecken 70a70c als Merkmalpunkte gewählt werden.
  • Ein Funktionsblock 164 deutet an, daß ein Block 166 von mehreren Pixeln, die um jeden der ausgewählten Merkmalpunkte (z. B. die Ecken 70a70c) zentriert sind, definiert wird und an einen entsprechenden Block in einem darauffolgenden Abbildungsrahmen (z. B. den nächsten nachfolgenden Abbildungsrahmen) angepaßt wird. Ein Pixelblock 126 ist nutzerdefiniert, umfaßt jedoch vorzugsweise eine 32 × 32 Pixelanordnung, die nur Pixel innerhalb des Inneren 144 des Abbilds umfaßt. Irgendwelche Pixel 168 (die mittels Schraffur gekennzeichnet sind) von Pixelblock 166, die außerhalb des Inneren 144 des Objekts liegen, wie mittels Funktionsblock 158 festgestellt wurde, (z. B. die Ecken 70b und 70c) werden ausgelassen. Die Pixelblöcke 166 werden an die entsprechenden Pixelblöcke in den nächsten Abbildungsrahmen gemäß eines minimalen absoluten Fehlers angepaßt, der von einem herkömmlichen Blockabgleichprozeß oder einem Polygonabgleichverfahren identifiziert wird, wie unten detaillierter beschrieben wird.
  • Ein Funktionsblock 170 deutet an, daß eine spärliche Bewegungstransformation eines Objekts aus den entsprechenden Merkmalpunkten in zwei aufeinanderfolgenden Abbildungsrahmen bestimmt wird. Ein Funktionsblock 172 deutet an, daß eine Maske 80 des gegenwärtigen Ab bildungsrahmens gemäß der spärlichen Bewegungstransformation transformiert wird, um eine Schätzung von der Maske 80 für den nächsten Abbildungsrahmen zu liefern. Jeder Merkmalpunkt in dem gegenwärtigen Rahmen, der in dem nachfolgenden Abbildungsrahmen nicht identifiziert werden kann, wird außer Acht gelassen.
  • Ein Funktionsblock 174 deutet an, daß die sich ergebende Schätzung der Maske 80 für den nächsten Abbildungsrahmen um einen Rahmen verzögert wird und als Kontur 176 für einen nächsten nachfolgenden Zyklus dient. Ähnlich deutet ein Funktionsblock 178 an, daß die korrespondierenden Merkmalpunkte ebenso um einen Rahmen verzögert werden und als ursprüngliche Merkmalpunkte 180 für den nächsten darauffolgenden Rahmen verwendet werden.
  • 6 ist ein funktionelles Blockdiagramm eines Polygonanpaßverfahrens 200 zum Bestimmen eines Bewegungsvektors für jedes korrespondierende Paar von Pixeln in aufeinanderfolgenden Abbildungsrahmen. Solch eine dichte Bewegungsvektorbestimmung schafft die Basis für die Bestimmung der dichten Bewegungstransformation 96 nach 3A.
  • Das Polygonabgleichverfahren 200 ist in der Lage, eine umfangreiche Bewegung zwischen aufeinanderfolgenden Abbildungsrahmen wie ein herkömmliches Blockabgleichverfahren zu bestimmen. Im Gegensatz zu dem herkömmlichen Blockabgleichverfahren erhält das Polygonabgleichverfahren 200 jedoch die Genauigkeit für Pixel, die nahe oder an dem Umfang des Objekts angeordnet sind, und erzeugt erheblich weniger Fehler. Eine bevorzugte Ausführungsform eines Polygonabgleichverfahrens 200 weist eine verbesserte Recheneffizienz auf.
  • Das Polygonblockverfahren 200 wird mit Bezug auf 7A und 7B beschrieben, die vereinfachte Darstellungen des Anzeigeschirms 50 darstellen und zwei aufeinanderfolgende Abbildungsrahmen 202a und 202 zeigen, in denen ein Abbildungsmerkmal 204 in Form der Objekte 204a bzw. 204 dargestellt ist.
  • Ein Funktionsblock 206 deutet an, daß die Objekte 204a und 204 für die Abbildungsrahmen 202a und 202 identifiziert und mittels zum Beispiel des Objektsegmentierungsverfahrens 140 segmentiert werden.
  • Ein Funktionsblock 208 deutet an, daß Abmessungen für einen Pixelblock 210 (z. B. 15 × 15 Pixel) festgelegt werden, der auf Objekt 204 und ein Suchgebiet 212 um das Objekt 204a angewendet werden soll. Der Pixelblock 210b definiert eine Region um jedes Pixel im Objekt 204b, für welche ein korrespondierender Pixelblock 210a in dem Objekt 204a identifiziert wird. Das Suchgebiet 212 legt eine Region fest, innerhalb derer der korrespondierende Pixelblock 210a gesucht wird. Vorzugsweise sind der Pixelblock 210b und das Suchgebiet 212 recht regelmäßige Anordnungen von Pixeln und von Größen, die von dem Nutzer definiert worden sind.
  • Ein Funktionsblock 214 deutet an, daß ein ursprüngliches Pixel 216 in dem Objekt 204b identifiziert ist und als gegenwärtiges Pixel bestimmt ist. Das ursprüngliche Pixel 216 kann mittels irgendeiner Reihe von Kriterien definiert werden, zum Beispiel kann das Pixel an dem Ort mit der größten vertikalen Ausdehnung und der minimalen horizontalen Ausdehnung genommen werden. Mit den Pixeln auf dem Anzeigeschirm 50, die gemäß einer Koordinatenachse 220 wie gezeigt angeordnet sind, kann das ursprüngliche Pixel 216 als das Pixel des Objekts 214b repräsentiert werden, das einen maximalen y-Koordinatenwert und einen minimalen x-Koordinatenwert aufweist.
  • Ein Funktionsblock 222 deutet an, daß der Pixelblock 210b zentriert ist und sich um das gegenwärtige Pixel erstreckt.
  • Ein Funktionsblock 224 repräsentiert eine Anfrage, ob der Pixelblock 210b Pixel umfaßt, die nicht in dem Objekt 204b eingeschlossen sind (z. B. Pixel 226, die mittels einer Schraffur in 7B hervorgehoben sind). Diese Anfrage wird mit Bezug auf die Objekte ausgeführt, die gemäß dem Funktionsblock 206 identifiziert worden sind. Wann immer Pixel innerhalb des Pixelblocks 210b, die an dem gegenwärtigen Pixel angeordnet sind, außerhalb des Objekts 204b fallen, fährt der Funktionsblock 224 mit dem Funktionsblock 228 und andernfalls mit dem Funktionsblock 232 fort.
  • Ein Funktionsblock 228 deutet an, daß Pixel von dem Pixelblock 210b, die außerhalb des Blocks 204b fallen (z. B. Pixel 226), aus der Region ausgelassen werden, die mittels des Pixelblocks 210b definiert ist, so daß er nur Pixel innerhalb des Objekts 204b umfaßt. Als ein Ergebnis definiert der Pixelblock 210b eine Region, die typischerweise eine Polygonform aufweist, die komplexer als die ursprünglich definierte quadratische oder rechteckige Region ist.
  • Ein Funktionsblock 232 deutet an, daß ein Pixel im Objekt 204a als mit dem gegenwärtigen Pixel im Objekt 204b korrespondierend identifiziert wird. Das Pixel in dem Objekt 204a wird als vorheriges korrespondierendes Pixel bezeichnet. Vorzugsweise wird das vorherige korrespondierende Pixel mittels des Bildens eines Pixelblocks 210a um jedes Pixel in dem Suchgebiet 212 und des Bestimmens einer Korrelation zwischen dem Pixelblock 210a und dem Pixelblock 210b um das gegenwärtige Pixel in dem Objekt 204b identifiziert. Jede Korrelation zwischen den Pixelblöcken 210a und 210b kann zum Beispiel mittels eines absoluten Fehlers bestimmt werden. Das vorherige korrespondierende Pixel wird identifiziert, indem der Pixelblock 210a in dem Suchgebiet 212 identifiziert wird, für den der absolute Fehler relativ zu dem Pixelblock 210b minimiert ist. Ein summierter absoluter Fehler E für einen Pixelblock 210a relativ zu dem Pixelblock 210b kann bestimmt werden als:
    Figure 00250001
    bei dem die Terme rij, gij und bij mit den entsprechenden roten, grünen und blauen Farbbestandteilen korrespondieren, die mit jedem der Pixel in dem Pixelblock 210b verknüpft sind und die Begriffe rij', gij' und bij' mit den entsprechenden roten, grünen und blauen Farbbestandteilen korrespondieren, die mit jedem der Pixel in dem Pixelblock 210a verknüpft sind.
  • Wie oben dargelegt ist, impliziert die Summation des absoluten Fehlers E Pixelblöcke mit Pixelanordnungen, die eine m × n Pixelabmessung aufweisen. Pixelblöcke 210b polygonaler Gestalt werden relativ einfach aufgenommen, indem zum Beispiel Nullwerte für Farbbestandteile von allen Pixeln außerhalb des polygonalen Pixelblocks 210b definiert werden.
  • Ein Funktionsblock 234 deutet an, daß ein Bewegungsvektor MV zwischen jedem Pixel in dem Objekt 204b und dem entsprechenden vorherigen Pixel 204a bestimmt wird. Ein Bewegungsvektor wird als die Differenz zwischen dem Ort des Pixels in dem Objekt 204b und dem entsprechenden Ort des vorherigen Pixels in dem Objekt 204a definiert als: MV = (xi – xk', yj – yi'),bei dem die Begriffe xi und yj mit den entsprechenden x- und y-Koordinatenorien des Pixels im Pixelblock 210b korrespondieren und die Begriffe xk' und yl' mit den entsprechenden x- und y-Koordinatenorien des korrespondierenden vorherigen Pixels in dem Pixelblock 210a korrespondieren.
  • Ein Funktionsblock 236 repräsentiert eine Abfrage, ob das Objekt 204b irgendwelche verbleibenden Pixel umfaßt. Wann immer das Objekt 204b verbleibende Pixel umfaßt, fährt der Funktionsblock 236 mit Block 238 und anderenfalls mit dem Endblock 240 fort.
  • Der Funktionsblock 238 deutet an, daß ein nächstes Pixel in dem Objekt 204b gemäß einem vorbestimmten Format oder einer Sequenz identifiziert wird. Mit dem ursprünglichen Pixel, das, wie oben mit Bezug auf den Funktionsblock 214 beschrieben worden ist, ausgewählt wurde, kann das nachfolgende Pixel definiert werden, indem zuerst das nächste angrenzende Pixel in einer Reihe (d. h. mit einem gemeinsamen y-Koordinatenwert) identifiziert wird und, falls das Objekt 204 keine anderen Pixel in einer Reihe umfaßt, indem mit dem ersten oder linksten Pixel (d. h. mit dem minimalen x-Koordinatenwert) in der nächsten niedrigeren Reihe fortgefahren wird. Das so identifizierte Pixel wird als das gegenwärtige Pixel bestimmt und der Funktionsblock 238 kehrt zu dem Funktionsblock 222 zurück.
  • Das Polygonblockverfahren 200 bestimmt genau einander entsprechende Pixel, sogar falls sie an oder nahe einem Objektumfang angeordnet sind. Eine bedeutende Quelle von Fehlern bei herkömmlichen Blockabgleichverfahren wird beseitigt, indem Pixel des Pixelblocks 210b ausgelassen oder außer Acht gelassen werden, die außerhalb des Objekts 204b liegen. Herkömmliche Blockabgleichverfahren wenden starr eine einheitliche Pixelblockgestalt an und werden nicht mit Bezug auf ein segmentiertes Objekt angewendet. Die einheitlichen Blockgestaltungen verursachen bedeutende Fehler für an den Umfang angrenzende Pixel eines Objekts, weil Pixel außerhalb des Objekts bedeutende Änderungen durchmachen können, während sich das Objekt bewegt oder sich sein Hintergrund ändert. Mit solchen äußeren Pixelvariationen, die bei gewöhnlichen Blockabgleichverfahren eingeschlossen werden, können die Pixel in der Nähe eines Objektumfangs nicht genau mit den korrespondierenden Pixeln in dem vorherigen Abbildungsrahmen korreliert werden.
  • Für jedes Pixel in dem Objekt 204b wird ein korrespondierendes vorheriges Pixel in dem Objekt 204a mittels des Vergleichens des Pixelblocks 210b mit einem Pixelblock 210a für jedes der Pixel in dem vorherigen Objekt 204a identifiziert. Das korrespondierende vorherige Pixel ist das Pixel in dem Objekt 204a mit dem Pixelblock 210a, das am besten zu dem Pixelblock 210b korrespondiert. Falls auf herkömmlicher Weise verarbeitet, kann solch eine Bestimmung eine wesentliche Berechnung benötigen, um jedes korrespondierende vorherige Pixel zu identifizieren. Um dieses zu veranschaulichen: für Pixelblöcke mit Abmessungen von n × n Pixel, die erheblich kleiner als eine Suchfläche 212 mit Abmessungen von m × m Pixel sind, werden ungefähr n2 × m2 Berechnungen benötigt, um jedes korrespondierende vorherige Pixel in dem vorherigen Objekt 204a zu identifizieren.
  • Pixelblockkorrelationsverfahren
  • 8 ist ein funktionelles Blockdiagramm eines modifizierten Pixelblockkorrelationsverfahrens, das vorzugsweise für das mit Bezug auf Funktionsblock 232 beschriebene Verfahren eingesetzt wird. Das modifizierte Korrelationsverfahren 260 nutzt die dem Korrelieren der Pixelblöcke 210b und 210a innewohnende Redundanz, um die Anzahl der benötigten Berechnungen erheblich zu verringern.
  • Das Korrelationsverfahren 260 wird mit Bezug auf 9A9G und 10A–10G beschrieben, die beliebige Gruppen von Pixeln repräsentieren, die mit aufeinanderfolgenden Abbildungsrahmen 202a und 202b korrespondieren. Insbesondere ist 9A eine schematische Darstellung eines Pixelblocks 262 mit Dimensionen von 5 × 5 Pixeln, in denen jeder Buchstabe mit einem anderen Pixel korrespondiert. Die Pixel des Pixelblocks 262 sind als eine rechtwinklig regelmäßige Anordnung von Pixeln angeordnet, die ausgewählte Spalten 264 umfasßt. 9B repräsentiert eine Anordnung von Pixeln 266 mit einer Dimension von q × q Pixeln und korrespondiert mit einer Suchfläche 212 in einem vorherigen Abbildungsrahmen 202a. Jedes der Bezugszeichen in 9B repräsentiert ein anderes Pixel. Das Korrelationsverfahren 260, obwohl es mit Bezug auf einen recht regelmäßigen Pixelblock 262 beschrieben wurde, kann ähnlich auf polygonale Pixelblöcke von dem Typ angewendet werden, der mit Bezug auf das Polygonabgleichverfahren 200 beschrieben wurde.
  • Eine Funktion 268 deutet an, daß ein ursprünglicher Pixelblock (z.. B. Pixelblock 262) mit Bezug auf ein zentrales Pixel M definiert ist und über eine Suchfläche 212 (z. B. Pixelanordnung 266) allgemein in einem Rastermuster (teilweise in 7A gezeigt) wie bei einem herkömmlichen Blockabgleichverfahren abgetastet wird. Die 9C9G stellen schematisch fünf der schätzungsweise q2 Schritte bei dem Blockabgleichverfahren zwischen dem Pixelblock 262 und der Pixelanordnung 266 dar.
  • Obwohl das Abtasten des Pixelblocks 262 über die Pixelanordnung 266 in einer herkömmlichen Weise ausgeführt wird, werden die Berechnungen, die die Korrelation zwischen ihnen betrifft, gemäß der Erfindung anders ausgeführt. Insbesondere wird für jede Spalte 264 des Pixelblocks 262 bei jeder Abtastposition eine Korrelation (z. B. einer absoluter Fehler) be stimmt und gespeichert. Eine Korrelation, die für jede Spalte 264 des Pixelblocks 262 bei jeder abgetasteten Position bestimmt und gespeichert wird, wird als Spaltenkorrelation 270 bezeichnet, von denen einige symbolisch in 9C9G angedeutet sind, indem auf die korrelierten Pixel Bezug genommen wird. Zur Illustration zeigt 9C eine Spaltenkorrelation 270 (1), die für eine einzelne Spalte 264 des Pixelblocks 262b bestimmt ist, die mit der Pixelanordnung 266 ausgerichtet ist. Ähnlich zeigt 9D Spaltenkorrelationen 270 (2) und 270 (3), die für die zwei Spalten 264 des Pixelblocks 262 bestimmt worden sind, die mit der Pixelanordnung 266 ausgerichtet sind. Die 9E9G zeigen ähnliche Spaltenkorrelationen mit dem Pixelblock 262 an drei beispielhaften aufeinanderfolgenden Abtastpositionen relativ zu der Pixelanordnung 266.
  • Das Abtasten des ursprünglichen Pixelblocks 262 über die Pixelanordnung 266 bietet eine gespeicherte Anordnung oder eine Datenbasis von Spaltenkorrelationen. Mit dem Pixelblock 262, der eine r-Anzahl von Spalten 264 aufweist, und der Pixelanordnung 266 mit q × q Pixeln umfaßt die Spaltenkorrelationsdatenbank ungefähr eine Anzahl rq2 Spaltenkorrelationen. Diese Anzahl Spaltenkorrelationen ergibt sich nur ungefähr, weil der Pixelblock 262 vorzugsweise ursprünglich über die Pixelanordnung 262 so abgetastet wird, daß das Pixel M mit der ersten Reihe von Pixeln in der Pixelanordnung 266 ausgerichtet ist.
  • Die verbleibenden Schritte, beginnend mit dem, der in 9C angedeutet ist, treten nach zwei vollständigen Abtastungen des Pixelblocks 262 über die Pixelanordnung 266 auf (d. h., wenn das Pixel M mit der ersten und der zweiten Reihe der Pixelanordnung 266 ausgerichtet ist).
  • Ein Funktionsblock 274 deutet an, daß ein nächster Pixelblock 276 (10A) aus zum Beispiel dem Abbildungsrahmen 202B mit Bezug auf ein zentrales Pixel N in derselben Reihe wie das Pixel M definiert wird. Der Pixelblock 276 umfaßt eine Spalte 278 von Pixeln, die nicht von dem Pixelblock 262 umfaßt sind, und eine Spalten 280 von Pixeln, die von dem Pixelblock 262 umfaßt sind. Der Pixelblock 276 umfaßt eine Spalte 282 (9A) nicht, die in dem Pixelblock 262 umfaßt war. Solch eine schrittweise Definition des nächsten Pixelblocks 276 ist im wesentlichen gleich der, die bei herkömmlichen Blockabgleichverfahren verwendet wurde.
  • Ein Funktionsblock 284 deutet an, daß der Pixelblock 276 über die Pixelanordnung 266 in der Weise abgetastet wird, die oben mit Bezug auf den Funktionsblock 268 beschrieben worden ist. Wie die 9C9G repräsentieren die 10B–10G das Abtasten des Pixelblocks 276 über die Pixelanordnung 266.
  • Ein Funktionsblock 286 deutet an, daß für eine Spalte 278 eine Spaltenkorrelation an jeder Abtastposition bestimmt und gespeichert wird. Entsprechend werden Spaltenkorrelationen 288(1)–288(5) mit Bezug auf die abgetasteten Positionen von Spalte 278 ausgeführt, wie entsprechend in 10B bis 10F gezeigt ist.
  • Ein Funktionsblock 290 deutet an, daß für jede der Spalten 280 im Pixelblock 276 eine gespeicherte Spaltenbestimmung für jede Abtastposition abgerufen wird, die vorher berechnet und nach Funktionsblock 268 abgespeichert worden ist. Zum Beispiel ist die Spaltenkorrelation 270(1) nach 9C die gleiche wie die Spaltenkorrelation 270'(1) nach 10C. Ähnlich sind die Spaltenkorrelationen 270'(2), 270'(3), 270'(5)–270'(8) und 270'(15)– 270'(18) nach 10D bis 10F die gleichen wie die entsprechenden Spaltenkorrelationen nach 9D, 9E und 9G. Für den Pixelblock 276 wird daher nur eine Spaltenkorrelation 288 für jede Abtastkorrelation berechnet. Als ein Ergebnis wird die Anzahl der Berechnungen, die für den Pixelblock 276 benötigt werden, um fast 80% reduziert.
  • Ein Funktionsblock 292 deutet an, daß ein nachfolgender Pixelblock 294 (11A) mit Bezug auf ein zentrales Pixel R in der nächsten darauffolgenden Reihe relativ zu dem Pixel M definiert wird. Der Pixelblock 294 umfaßt Spalten 296 von Pixeln, die ähnlich aber verschieden von Spalten 264 von Pixeln im Pixelblock 262 nach 9A sind. Insbesondere umfassen die Spalten 296 Pixel A'-E', die nicht in den Spalten 264 umfaßt sind. Solch eine schrittweise Definition des nachfolgenden Pixelblocks 294 ist im wesentlichen die gleiche, die bei herkömmlichen Blockabgleichverfahren verwendet wurde.
  • Ein Funktionsblock 298 deutet an, daß der Pixelblock 294 über die Pixelanordnung 266 ( 9B) in der Weise abgetastet wird, die oben mit Bezug auf die Funktionsblöcke 268 und 276 beschrieben worden ist. 11B11F repräsentieren das Abtasten des Pixelblocks 294 über die Pixelanordnung 266.
  • Ein Funktionsblock 300 deutet an, daß eine Spaltenkorrelation für jede der Spalten 296 bestimmt und gespeichert wird. Entsprechend werden Spaltenkorrelationen 302(1)–302(18) mit Bezug auf die abgetasteten Positionen von Spalten 296 ausgeführt, die in den 11B-11F gezeigt sind.
  • Jede der Spaltenkorrelationen 302(1)–302(18) kann in abgekürzter Weise mit Bezug auf die Spaltenkorrelationen, die bezüglich des Pixelblocks 262 (9A) ausgeführt wurden, berechnet werden.
  • Zum Beispiel umfassen die Spaltenkorrelationen 302(4)–302(8) nach 11D Unterspaltenkorrelationen 304'(4)–304'(8), die die gleichen wie Unterspaltenkorrelationen 304(4)– 304(8) nach 9E sind. Entsprechend können die Spaltenkorrelationen 302(4)–302(8) aus entsprechenden Spaltenkorrelationen 270(4)–270(8) bestimmt werden, indem von letzteren Korrelationswerte für Pixel 01A, 02B, 03C, 04D und 05E abgezogen werden, um entsprechend die Unterspaltenkorrelationen 304(4)–304(8) zu bilden. Die Spaltenkorrelationen 302(4)–302(8) können erhalten werden, indem die Korrelationswerte für die Pixelpaare 56A', 57B', 58C', 59D' und 50E' zu den entsprechenden Unterspaltenkorrelationswerten 304(4)– 304(8) entsprechend addiert werden.
  • Die Bestimmung der Spaltenkorrelationen 302(4)–302(8) aus entsprechenden Spaltenkorrelationen 270(4)–270(8) schließt das Subtrahieren einzelner Pixelkorrelationswerte ein, die mit der Reihe von Pixeln A–E des Pixelbocks 262 korrespondieren, die nicht von dem Pixelblock 294 umfaßt sind, und das Addieren der Pixelkorrelationswerte für die Reihe von Pixeln A'–E', die von dem Pixelblock 294, jedoch nicht von dem Pixelblock 262 umfaßt sind. Dieses Verfahren ersetzt für jede der Spaltenkorrelationen 302(4)–302(8) die fünf Additionen, die benötigt würden, um jede Spaltenkorrelation in herkömmlicher Weise zu bestimmen, durch eine Subtraktion und eine Addition. Mit Pixelblöcken größerer Abmessungen, wie sie bevorzugt werden, wird die Verbesserung dieses Verfahrens gegenüber herkömmlichen Berechnungsverfahren sogar noch größer. Herkömmliche Blockabgleichverfahren identifizieren nur die gesamte Blockkorrelation für jede Abtastposition des ursprünglichen Pixelblocks 262 relativ zu der Pixelanordnung 266. Als eine Konsequenz müssen alle Korrelationswerte für alle Pixel für jede Abtastposition getrennt berechnet werden. Im Gegensatz hierzu verwendet das Korrelationsverfahren 260 gespeicherte Spaltenkorrelationen 270, um die Anzahl der benötigten Berechnungen erheblich zu verringern. Die Verbesserung bei der Geschwindigkeit und den Prozessorressourcenanforderungen, die von den Korrelationsverfahren 260 geschaffen werden, wiegen die Systemanforderungen für die Speicherung der Spaltenkorrelationen mehr als auf.
  • Es ergibt sich, daß das Korrelationsverfahren 260 mit Bezug auf 911 beschrieben worden ist, um bestimmte Merkmale der Erfindung darstellen. Wie in den Darstellungen ge zeigt worden ist, umfaßt die Erfindung wieder auftretende oder zyklische Merkmale, die besonders geeignet für die Ausführung mittels einer Computervorrichtung sind. Diese wieder auftretenden oder zyklischen Merkmale hängen von den Abmessungen der Pixelblöcke und Pixelanordnungen ab und sind wohl verstanden und können von einem Fachmann implementiert werden.
  • Mehrdimensionale Transformation
  • 12 ist ein funktionelles Blockdiagramm eines Transformationsverfahrens 350, das das Erzeugen einer mehrdimensionalen Transformation zwischen Objekten in einem ersten und einem zweiten darauffolgenden Abbildungsrahmen und die Quantisierung der Abbildung für eine Übertragung oder eine Speicherung umfaßt. Die mehrdimensionale Transformation wird vorzugsweise in Verbindung mit dem Funktionsblock 96 nach 3 verwendet. Ein Transformationsverfahren 350 wird mit Bezug auf 7A und 13 beschrieben, von denen das letztere, ähnlich wie 7B, eine vereinfachte Darstellung eines Anzeigeschirms 50 ist, der einen Abbildungsrahmen 202B zeigt, in dem das Abbildungsmerkmal 204 als Objekt 204b dargestellt ist.
  • Das Transformationsverfahren 350 schafft vorzugsweise eine mehrdimensionale affine Transformation, die in der Lage ist, eine komplexe Bewegung zu repräsentieren, die irgendeine Verschiebung, Drehung, Vergrößerung oder Scherung oder alle hiervon umfaßt. Das Transformationsverfahren 350 schafft eine erhebliche Verbesserung gegenüber herkömmlichen Videokompressionsverfahren, wie MPEG-1, MPEG-2 und H.26X, die nur eindimensional sind und nur eine Verschiebung repräsentieren. In dieser Hinsicht bezieht sich die Dimension einer Transformation auf die Anzahl von Koordinaten in verallgemeinerter Form der Transformation, wie unten detaillierter beschrieben wird. Indem die Genauigkeit gesteigert wird, mit der die Bewegung gemäß der Erfindung repräsentiert wird, ergeben sich weniger Fehler als bei herkömmlichen Repräsentationen, wodurch die Kompressionseffizienz gesteigert wird.
  • Ein Funktionsblock 352 deutet an, daß eine dichte Bewegungsschätzung von den Pixeln in den Objekten 204a und 204b bestimmt wird. Vorzugsweise wird die dichte Bewegungsschätzung mittels eines Polygonabgleichverfahrens 200 erhalten. Wie oben beschrieben ist, umfaßt die dichte Bewegungsschätzung Bewegungsvektoren zwischen Pixeln an Koordinaten (xi, yi) in dem Objekt 204b des Abbildungsrahmens 202b und den entsprechenden Pixeln an Orten (xi, yi) von Objekt 204a in dem Abbildungsrahmen 202a.
  • Ein Funktionsblock 354 deutet an, daß eine Anordnung von Transformationsblöcken 356 definiert wird, um das Objekt 204b zu umfassen. Vorzugsweise sind die Blöcke recht regelmäßige Anordnungen von Pixeln mit Dimensionen von zum Beispiel 32 × 32 Pixeln.
  • Ein Funktionsblock 358 deutet an, daß eine mehrdimensionale affine Transformation für jeden Transformationsblock 356 erzeugt wird. Vorzugsweise sind die affinen Transformationen erster Ordnung und werden repräsentiert durch: xi' = axi + byi + c yi' = dxi + eyi + f,und werden mit Bezug auf alle Pixel bestimmt, für die Bewegungsvektoren ein relativ hohes Vertrauen aufweisen. Diese affinen Transformationen weisen zwei Dimensionen auf, in denen sie xi' und yi' relativ zu zwei Koordinaten definieren: xi und yi.
  • Das relative Vertrauen der Bewegungsvektoren bezieht sich auf die Genauigkeit, mit der der Bewegungsvektor zwischen entsprechenden Pixeln eindeutig relativ zu anderen Pixeln bestimmt werden kann. Zum Beispiel können Bewegungsvektoren zwischen bestimmten Pixeln, die sich in relativ großen Pixelanordnungen befinden und einheitlich gefärbt sind (z. B. schwarz), typischerweise nicht genau bestimmt werden. Insbesondere für ein schwarzes Pixel in einem ersten Abbildungsrahmen werden viele Pixel in der Pixelanordnung des darauffolgenden Abbildungsrahmens dieselbe Korrelation (d. h. einen absoluten Fehlerwert zwischen den Pixelblöcken) aufweisen.
  • Im Gegensatz dazu werden Pixelanordnungen, in denen Pixel mit charakteristischen Merkmalen korrespondieren, typischerweise relativ hohe Korrelationen für bestimmte korrespondierende Pixel in aufeinanderfolgenden Abbildungsrahmen aufweisen.
  • Die relativ hohen Korrelationen werden vorzugsweise als eine minimale absolute Fehlerwertbestimmung für bestimmte Pixel dargestellt. Bewegungsvektoren mit relativ hohem Vertrauen können daher relativ zu solchen einzigartigen niedrigen Fehlerwerten bestimmt werden. Zum Beispiel kann ein Hochvertrauensbewegungsvektor als einer definiert werden, bei dem der minimale absolute Fehlerwert für den Bewegungsvektor mindestens um einen Differenzbetrag, der größer als ein Grenzwertdifferenzbetrag ist, geringer als der nächstgrößere Fehlerwert ist, der mit dem Pixel verknüpft ist. Alternativ kann ein Hochvertrauensbewegungsvektor mit Bezug auf die zweite Ableitung der absoluten Fehlerwerte definiert werden, mit denen die Korrelationen bestimmt werden. Eine zweite Ableitung von mehr als einem bestimmten Wert würde eine relativ hohe Korrelation zwischen bestimmten korrespondierenden Pixeln andeuten.
  • Mit einer n-Anzahl von Pixeln mit solchen Hochvertrauensbewegungsvektoren werden die bevorzugten affinen Transformationsgleichungen mit Bezug auf die n-Anzahl von korrespondierenden Pixeln in den Abbildungsrahmen 202a und 202b gelöst: Die Abbildungsrahmen müssen mindestens drei korrespondierende Pixel in den Abbildungsrahmen 202a und 202b mit Hochvertrauensbewegungsvektoren umfassen, um die sechs unbekannten Koeffizienten a, b, c, d, e und f der bevorzugten affinen Transformationsgleichungen zu bestimmen. Mit den bevorzugten Abmessungen umfaßt jeder der Transformationsblöcke 356 210 Pixel, von denen eine erhebliche Anzahl typischerweise relative Hochvertrauensbewegungsvektoren aufweist. Entsprechend sind die affinen Transformationsgleichungen darin überbestimmt, daß eine erheblich größere Anzahl von Pixeln verfügbar ist, um die Koeffizienten a, b, c, d, e und f zu bestimmen.
  • Die sich ergebende n-Anzahl von Gleichungen kann mittels des linearen algebraischen Ausdrucks dargestellt werden:
    Figure 00330001
  • Vorzugsweise werden diese Gleichungen mittels eines herkömmlichen Singularwertzerlegungsverfahrens (conventional singular value decomposition – SVD) gelöst, das einen minimalen kleinsten quadratischen Fehler für die Annäherung der dichten Bewegungsvektoren liefert. Ein herkömmliches SVD-Verfahren ist zum Beispiel in dem Buch "Numerical Recipes in C" von Press et al., Cambridge University Press, (1992) beschrieben.
  • Wie oben beschrieben wurde, sind die zweidimensionalen affinen Transformationsgleichungen in der Lage, eine Verschiebung, eine Rotation, eine Vergrößerung und eine Scherung der Transformationsblöcke 356 zwischen aufeinanderfolgenden Abbildungsrahmen 202a und 202b zu repräsentieren. Im Gegensatz dazu verwenden herkömmliche Bewegungstransformationsverfahren, die in früheren Kompressionsstandards verwendet wurden, vereinfachte Transformationsgleichungen der Form: xi' = xi + g yi' = yi + h.
  • Die früheren vereinfachten Transformationsgleichungen stellen die Bewegung mittels nur zweier Koeffizienten g und h dar, die nur ein Drittel der Menge an Information (d. h. Koeffizienten) repräsentieren, die mittels der bevorzugten mehrdimensionalen Transformationsgleichungen erhalten wird. Um eine überlegene Kompression der Information zu erhalten, die mittels des Transformationsverfahrens 350 relativ zu herkömmlichen Kompressionsverfahren erhalten wird, sind die Abmessungen des Transformationsblocks 356 vorzugsweise mehr als dreimal größer als die entsprechenden 16 × 16 Pixelblöcke, die bei MPEG-1 und MPEG-2 Kompressionsverfahren angewendet werden. Die bevorzugten 32 × 32 Pixelabmessungen der Transformationsblöcke 356 umfassen viermal die Anzahl der Pixel, die in den Transformationsblöcken nach herkömmlichen Transformationsverfahren verwendet werden. Die größeren Abmessungen der Transformationsblöcke 356 zusammen mit der verbesserten Genauigkeit, mit der die Koeffizienten der affinen Transformation die Bewegung der Transformationsblökke 356 repräsentieren, ermöglichen dem Transformationsverfahren 350, eine größere Kompression zu bieten als herkömmliche Kompressionsverfahren.
  • Es ergibt sich, daß die affinen Koeffizienten, die gemäß der Erfindung erzeugt worden sind, typischerweise nicht ganzzahlige Fließkommawerte sein werden, die nur schwer zu komprimieren sind, ohne nachteilig ihre Genauigkeit zu beeinflussen. Entsprechend wird es bevorzugt, die affinen Transformationskoeffizienten zu quanteln, um die benötigte Bandbreite für die Speicherung und Übertragung von ihnen zu verringern.
  • Ein Funktionsblock 362 deutet an, daß die affinen Transformationskoeffizienten, die mit Bezug auf den Funktionsblock 358 erzeugt worden sind, quantisiert sind, um die benötigte Bandbreite für die Speicherung und Übertragung von ihnen zu verringern. 14 ist eine vergrößerte Teildarstellung eines Transformationsblocks 356, der drei ausgewählte Pixel zeigt, 364a, 364b und 364c, mit denen die sechs bevorzugtesten affinen Transformationskoeffizienten a–f bestimmt werden können.
  • Die Pixel 364a364c werden mittels Pixelkoordinaten (x1, y1), (x2, Y2) bzw. (x3, y3) repräsentiert. Basierend auf der dichten Bewegungsschätzung nach Funktionsblock 352 weisen die Pixel 364a364c entsprechende korrespondierende Pixel (x1', y1'), (x2', y2') und (x3', y3') in dem vorangehenden Abbildungsrahmen 202a auf. Wie gewöhnlich werden die Pixelorte (xi, yi) als ganzzahlige Werte dargestellt und sind Lösungen der affinen Transformationsgleichungen, auf denen die bevorzugten affinen Transformationskoeffizienten basieren. Entsprechend werden ausgewählte Pixel 364a364c verwendet, um die entsprechenden Pixel aus dem vorangehenden Abbildungsrahmen 202a zu berechnen, die typischerweise Fließkommawerte sein werden.
  • Die Quantisierungen dieser Fließkommawerte wird durchgeführt, indem die Differenz zwischen korrespondierenden Pixeln (xi– x'i, yi – y'i) in ein ganzzahliges Format konvertiert wird. Die affinen Transformationskoeffizienten werden bestimmt, indem zuerst die Pixelwerte (x'i, y'i) aus den Differenzvektoren und den Pixelwerten (xi, yi) berechnet werden und dann die mehrdimensionalen Transformationsgleichungen nach Funktionsblock 358 mit Bezug auf die Pixelwerte (x'i, y'i) gelöst werden.
  • Wie in 14 gezeigt ist, sind die Pixel 364a364c vorzugsweise über den Transformationsblock 356 verteilt, um die Empfindlichkeit der Quantisierung gegenüber lokalen Variationen innerhalb des Transformationsblocks 356 zu minimieren. Vorzugsweise ist das Pixel 364 an oder nahe dem Zentrum des Transformationsblocks 356 angeordnet und sind die Pixel 364b und 364c an den oberen Ecken angeordnet. Die ausgewählten Pixel für jeden der Trans formationsblöcke 356 in dem Objekt 204b weisen bei der bevorzugten Ausführungsform ferner die gleichen Stellungen auf, wodurch dem Quantisierungsverfahren ermöglicht wird, effizient ausgeführt zu werden.
  • Ein anderer Aspekt des Quantisierungsverfahrens nach Funktionsblock 362 ist, daß verschiedene Niveaus von Quantisierung verwendet werden können, um ein unterschiedliches Ausmaß von Bewegung zu repräsentieren. Als ein Ergebnis kann eine relativ einfache Bewegung (z. B. eine Verschiebung) mittels weniger ausgewählter Pixel 364 repräsentiert werden, als man zum Repräsentieren einer komplexen Bewegung benötigt. Mit Bezug auf die oben beschriebenen affinen Transformationsgleichungen reichen das Pixel 364a (x1, y1) von dem Objekt 204b und das entsprechende Pixel (x1', y1') von dem Objekt 204a, um vereinfachte affine Transformationsgleichungen der folgenden Form zu lösen: x1' = Y1 + c Y1' = Y1 + f,die eine Verschiebung zwischen aufeinanderfolgenden Abbildungsrahmen repräsentieren. Das Pixel 364a wird insbesondere verwendet, weil seine Position im Mittelpunkt allgemein eine Verschiebungsbewegung unabhängig von den anderen Arten von Bewegung repräsentiert. Entsprechend kann ein Nutzer wahlweise eine vereinfachte Bewegung, zum Beispiel eine Verschiebung, mittels vereinfachter affiner Transformationsgleichungen repräsentieren, die ein Drittel der Daten benötigen, um die komplexe Bewegung zu repräsentieren.
  • Ähnlich reicht ein Paar ausgewählter Pixel (x1, y1) (z. B. Pixel 364a) und (x2, y2) (d. h. entweder Pixel 364b oder 364c) von dem Objekt 204b und die entsprechenden Pixel (x1', y1' und x2', y2') vom Objekt 204a, um vereinfachte affine Transformationsgleichungen der Form: xi' = axi + c yi' = eyi + fzu lösen, welche in der Lage sind, Bewegungen zu repräsentieren, die eine Verschiebung und eine Vergrößerung zwischen aufeinanderfolgenden Abbildungsrahmen umfassen. Bei der vereinfachten Form: x' = acosθx + sinθy + c y' = –sinθx + acosθy + fsind entsprechende Paare von ausgewählten Pixeln in der Lage, Bewegungen zu repräsentieren, die eine Verschiebung, eine Drehung und eine isotrope Vergrößerung umfassen. Bei dieser vereinfachten Form ermöglichen gemeinsame Koeffizienten der x- und y-Variablen, daß die Gleichungen mittels zweier korrespondierender Paare von Pixeln gelöst werden kann.
  • Entsprechend kann ein Nutzer eine moderat komplexe Bewegung, die eine Verschiebung, eine Drehung und eine Vergrößerung umfaßt, mit teilweise vereinfachten affinen Transformationsgleichungen repräsentieren. Solche Gleichungen würden zwei Drittel der Daten zum Repräsentieren einer komplexen Bewegung benötigen. Ein Hinzufügen des dritten ausgewählten Pixels (x3, y3) von Objekt 204b, des korrespondierenden Pixels (x3', y3') vom Objekt 204a und der kompletten bevorzugten affinen Transformationsgleichungen ermöglicht einem Nutzer, ferner eine Scherung zwischen aufeinanderfolgenden Rahmen zu repräsentieren.
  • Eine bevorzugte Ausführungsform des Transformationsverfahrens 350 (12) wird beschrieben, indem einheitliche Transformationsblöcke 356 mit Dimensionen von zum Beispiel 32 × 32 Pixeln verwendet werden. Die bevorzugten mehrdimensionalen affinen Transformationen, die mit Bezug auf einen Funktionsblock 358 beschrieben werden, werden mit Bezug auf den Transformationsblock 356 bestimmt. Es ergibt sich, daß die Dimensionen der Transformationsblöcke 356 direkt das Kompressionsverhältnis beeinflussen, welches von diesem Verfahren geboten wird.
  • Weniger Transformationsblöcke 356 mit relativ großen Abmessungen als mehr Transformationsblöcke mit kleineren Abmessungen werden benötigt, um eine Transformation eines Objekts zwischen Abbildungsrahmen zu repräsentieren. Eine Konsequenz, die sich aus einheitlichen, großen Transformationsblöcken 356 ergibt, ist, daß entsprechend ein größerer Fehler für jeden Transformationsblock eingebracht werden kann. Entsprechend weisen einheitlich große Transformationsblöcke 356 typischerweise moderate Abmessungen auf, um diese widerstreitenden Leistungsbeschränkungen auszubalancieren.
  • Transformationsblockoptimierung
  • 15 ist ein funktionelles Blockdiagramm eines Transformationsblockoptimierungsverfahrens 370, das automatisch Transformationsblockdimensionen auswählt, die einen minimalen Fehlerschwellwert liefern. Das Optimierungsverfahren 370 wird mit Bezug auf 16 beschrieben, die eine vereinfachte Darstellung eines Anzeigeschirms 50 aufweist, der einen Abschnitt des Abbildungsrahmens 202b mit dem Objekt 204b zeigt.
  • Ein Funktionsblock 372 deutet an, daß ein ursprünglicher Transformationsblock 374 mit Bezug auf das Objekt 204b definiert ist. Der ursprüngliche Transformationsblock 374 weist vorzugsweise maximale Abmessungen auf, die von einem Nutzer wählbar sind und zum Beispiel 64 × 64 Pixel betragen. Der ursprüngliche Transformationsblock 364 wird zum gegenwärtigen Transformationsblock bestimmt.
  • Ein Funktionsblock 376 deutet an, daß ein gegenwärtiger Spitzenwertsignalrauschabstand ("signal-to-noise-ratio" – SNR) mit Bezug auf den gegenwärtigen Transformationsblock berechnet wird. Der Signalrauschabstand wird vorzugsweise als das Verhältnis der Varianz der Farbbestandteilwerte des Pixels innerhalb des gegenwärtigen Transformationsblocks (d. h. des Signals) zu der Varianz der Farbbestandteilwerte des Pixels berechnet, das mit dem geschätzten Fehler 110 (3) verknüpft ist.
  • Ein Funktionsblock 378 deutet an, daß der gegenwärtige Transformationsblock (z. B. der Transformationsblock 374) in zum Beispiel vier gleiche Unterblöcke 380a380d unterteilt wird, affine Transformationen für jeden der Unterblöcke 380a380d bestimmt werden und ein Merkmal-Signalrauschabstand mit Bezug auf die affinen Transformationen bestimmt wird. Der zukünftige Signalrauschabstand wird im wesentlichen auf dieselbe Art und Weise berechnet wie der gegenwärtige Signalrauschabstand, wie mit Bezug auf den Funktionsblock 376 beschrieben worden ist.
  • Ein Abfrageblock 382 repräsentiert eine Abfrage, ob der zukünftige Signakauschabstand mindestens um einen vom Nutzer gewählten Schwellwert größer als der gegenwärtige Signalrauschabstand ist. Diese Abfrage repräsentiert eine Feststellung, daß eine weitere Unterteilung des gegenwärtigen Transformationsblocks (z. B. des Transformationsblocks 374) die Genauigkeit der affinen Transformationen um mindestens den Schwellwert verbessern würde. Wann immer der zukünftige Signalrauschabstand mindestens um den Schwellwertbetrag größer als der gegenwärtige Signalrauschabstand ist, fährt der Abfrageblock mit einem Funktionsblock 384 und andernfalls mit einem Funktionsblock 388 fort.
  • Ein Funktionsblock 384 deutet an, daß die Unterblöcke 380a380d nacheinander als gegenwärtiger Transformationsblock bestimmt werden und daß jeder analysiert wird, ob er weiter zu unterteilen ist. Für Zwecke der Darstellung ist der Unterblock 380a als gegenwärtiger Transformationsblock bestimmt und wird gemäß dem Funktionsblock 376 bearbeitet und weiter in Unterblöcke 386a386d unterteilt. Ein Funktionsblock 388 deutet an, daß ein nächster darauffolgender Transformationsblock 374' identifiziert ist und zum ursprünglichen oder gegenwärtigen Transformationsblock bestimmt wird.
  • Vorkompressionsextrapolationsverfahren
  • 17A und 17B sind funktionelle Blockdiagramme eines Vorkompressionsextrapolationsverfahrens 400 zum Extrapolieren von Abbildungsmerkmalen beliebiger Gestalt auf eine vorbestimmte Gestalt, um die Kompression in Übereinstimmung mit dem Funktionsblock 112 des Kodierverfahrens 64 (beide nach 3) zu erleichtern. Das Extrapolationsverfahren 400 ermöglicht, daß die Kompression nach Funktionsblock 112 in einer herkömmlichen Weise, zum Beispiel als DCT- oder Gitter- oder andere Waveletkompression, ausgeführt werden kann, wie oben beschrieben ist.
  • Herkömmliche Standbildkompressionsverfahren, zum Beispiel Gitter- oder andere Waveletkompressions- oder diskrete Cosinustransformations- (DCT)-Verfahren, wirken auf eine rechtwinklige Anordnung von Pixeln. Wie oben beschrieben ist, ist das Verfahren der Erfindung jedoch auf Abbildungsmerkmale oder Objekte beliebiger Gestalt anwendbar. Das Extrapolieren solcher Objekte oder Abbildungsmerkmale auf eine rechteckige Pixelanordnungsgestaltung ermöglicht die Verwendung herkömmlicher Standbildkompressionsverfahren, zum Beispiel Gitter- oder anderer Waveletkompressions- oder DCT-Verfahren. Das Extrapolationsverfahren 400 wird unten mit Bezug auf 18A18D beschrieben, die Darstellungen des Anzeigenschirms 50 sind, auf dem ein einfaches Objekt 402 dargestellt ist, um verschiedene Aspekte des Extrapolationsverfahrens 400 zu zeigen.
  • Ein Funktionsblock 404 deutet an, daß eine Extrapolationsblockgrenze 406 um ein Objekt 402 definiert wird. Die Extrapolationsblockgrenze 406 ist vorzugsweise rechteckig. Wie in 18A angedeutet ist, basiert die Bildung der Extrapolationsblockgrenze 406 um das Objekt 402 auf einer Identifizierung eines Umfangs 408 von dem Objekt 402 mittels zum Beispiel des Objektsegmentierungsverfahrens 140 (4). Die Extrapolationsblockgrenze 406 zeigt, daß sie das Objekt 402 in seiner Gesamtheit für Zwecke der Darstellung umschließt. Der Fachmann wird zu schätzen wissen, daß die Extrapolationsblockgrenze alternativ nur einen Abschnitt des Objekts 402 einschließen könnte. Wie bezüglich des Objektsegmentierungsverfahrens 140 beschrieben wurde, weisen Pixel, die in dem Objekt 402 umfaßt sind, Farbbestandteilwerte auf, die sich von denen der Pixel unterscheiden, die nicht in dem Objekt 402 umfaßt sind.
  • Ein Funktionsblock 410 deutet an, daß allen Pixeln 412, die von der Extrapolationsblockgrenze 406 eingegrenzt werden und nicht in dem Objekt 402 umfaßt sind, ein vorbestimmter Wert, zum Beispiel ein Nullwert, für jeden der Farbbestandteile zugewiesen wird.
  • Ein Funktionsblock 414 deutet an, daß horizontale Linien von Pixeln innerhalb der Extrapolationsblockgrenze 406 abgetastet werden, um horizontale Linien mit horizontalen Pixelabschnitten mit sowohl null als auch nicht-null Farbbestandteilwerten zu identifizieren.
  • Ein Funktionsblock 416 repräsentiert eine Abfrage, ob horizontale Pixelsegmente, die Farbbestandteilwerte von null aufweisen, an beiden Enden von dem Umfang 408 des Objekts 402 eingegrenzt werden. Wie in 18B angedeutet ist, repräsentiert eine Region 418 horizontale Pixelsegmente, die Farbbestandteilwerte von null aufweisen, die an beiden Enden von dem Umfang 408 eingegrenzt werden. Regionen 420 repräsentieren horizontale Pixelsegmente, die Farbbestandteilwerte von null aufweisen und nur an einem Ende von dem Umfang 408 eingegrenzt werden. Ein Funktionsblock 416 fährt mit dem Funktionsblock 426 für die Regionen 418 fort, in dem die Pixelsegmente Farbbestandteilwerte von null aufweisen und an beiden Enden von dem Umfang 408 des Objekts 402 eingegrenzt werden, und fährt andernfalls mit einem Funktionsblock 422 fort.
  • Der Funktionsblock 422 deutet an, daß den Pixeln in jedem horizontalen Pixelsegment einer Region 420 die Farbbestandteilwerte von einem Pixel 424 (nur exemplarische sind gezeigt) in den entsprechenden horizontalen Linien und dem Umfang des Objekts 402 zugewiesen werden. Alternativ sind die Farbestandteilwerte, die den Pixeln in den Regionen 420 zugewiesen werden, funktionell mit den Farbbestandteilwerten des Pixels 424 verwandt.
  • Ein Funktionsblock 426 deutet an, daß den Pixeln in jedem horizontalen Pixelsegment in der Region 418 Farbbestandteilwerte zugewiesen werden, die mit einem Durchschnitt der Farbbestandteilwerte von Pixeln 428a und 428b, die sich in den entsprechenden horizontalen Linien und auf dem Umfang 408 befinden, korrespondieren und vorzugsweise gleich dem Durchschnitt sind.
  • Ein Funktionsblock 430 deutet an, daß vertikale Linien von Pixeln innerhalb der Extrapolationsblockgrenze 406 abgetastet werden, um vertikale Linien mit vertikalen Pixelsegmenten zu identifizieren, die sowohl null als auch nicht-null Farbbestandteilwerte aufweisen.
  • Ein Funktionsblock 432 repräsentiert eine Abfrage, ob vertikale Pixelsegmente in vertikalen Linien mit Farbbestandteilwerten von null an beiden Enden von dem Umfang 408 des Objekts 402 eingegrenzt werden. Wie in 18C angedeutet ist, repräsentiert eine Region 434 vertikale Pixelsegmente mit Farbbestandteilwerten von null, die an beiden Enden von dem Umfang 408 eingegrenzt werden. Regionen 436 repräsentieren vertikale Pixelsegmente, die Farbbestandteilwerte von null aufweisen und nur an einem Ende von dem Umfang 408 eingegrenzt werden. Der Funktionsblock 432 fährt mit Funktionsblock 444 für die Region 434 fort, in der die vertikalen Pixelsegmente mit Farbbestandteilwerten von null an beiden Enden von dem Umfang 408 des Objekts 402 eingegrenzt werden, und fährt andernfalls mit einem Funktionsblock 438 fort.
  • Der Funktionsblock 438 deutet an, daß die Pixel in jedem vertikalen Pixelsegment der Region 436 Farbbestandteilwerte von Pixel 442 (nur beispielhafte sind gezeigt) in den vertikalen Linien und dem Umfang 408 des Objekts 402 zugewiesen werden. Alternativ sind die Farbbestandteilwerte, die den Pixeln in der Region 436 zugewiesen werden, funktionell mit den Farbbestandteilwerten des Pixels 442 verwandt.
  • Ein Funktionsblock 444 deutet an, daß den Pixeln in jedem vertikalen Pixelsegment in der Region 434 Farbbestandteilwerte zugewiesen werden, die mit einem Durchschnitt der Farbbestandteilwerte von Pixeln 446a und 446b, die sich in den horizontalen Linien und auf dem Umfang 408 befinden, korrespondieren oder vorzugsweise gleich dem Durchschnitt sind.
  • Ein Funktionsblock 448 deutet an, daß den Pixeln, die sowohl in horizontalen als auch in vertikalen Pixelsegmenten sind und denen Farbwerte gemäß diesem Verfahren zugewiesen werden, zugesammengesetzte Farbbestandteilwerte zugewiesen werden, die mit den Farbbestandteilwerten verwandt und vorzugsweise ein Durchschnitt hiervon sind, die andernfalls den Pixeln gemäß ihrer horizontalen und vertikalen Pixelsegmente zugewiesen werden.
  • Beispiele für Pixel, denen solche zusammengesetzten Farbbestandteilwerte zugewiesen sind, sind die Pixel in den Regionen 418 und 434.
  • Ein Funktionsblock 450 deutet an, daß Regionen 452 von Pixeln, die von der Extrapolationsblockgrenze 406 eingegrenzt sind und nicht den Umfang 408 des Objekts 402 entlang einer horizontalen oder vertikalen Linie kreuzen, zusammengesetzte Farbestandteilwerte zugewiesen werden, die mit einem Durchschnitt der Farbbestandteilwerte, die angrenzenden Pixeln zugewiesen sind, verwandt und vorzugsweise gleich zu dem Durchschnitt sind. Wie in 18D angedeutet ist, wird jedem Pixel 454 in der Region 452 ein Farbbestandteilwert zugewiesen, der vorzugsweise der Durchschnitt der Farbbestandteilwerte der Pixel 456a und 456b ist, die mit dem Pixel 454 entlang entsprechender horizontaler und vertikaler Linien ausgerichtet sind und von null verschiedene Farbbestandteilwerte aufweisen, die vorher mittels dieses Verfahrens zugewiesen worden sind.
  • Ein Vorteil des Objektextrapolationsverfahrens 400 ist, daß es sanft variierende Farbbestandteilwerte Pixeln zuweist, die nicht von dem Objekt 402 umfaßt sind, und optimiert daher die Kompressionsfähigkeiten und die Genauigkeit der herkömmlichen Standbildabbildungskompressionsverfahren. Im Gegensatz dazu wenden Nullauffüllungs- und Spiegelabbildungsverfahren nach dem Stand der Technik, wie sie von Chang et al. in dem Werk "Transform Coding of Arbitrarily-Shaped Image Segments", ACM Multimedia, Seiten 83–88, Juni 1993, beschrieben sind, die Kompression auf extrapolierte Objekte an, die mit Pixeln mit Nullfarbbestandteilwerten aufgefüllt sind, wie jene, die in dem Funktionsblock 410 angewendet werden. Die drastische Abbildungsänderung, die zwischen einem Objekt und den null-gefüllten Regionen auftritt, fügt Hochfrequenzänderungen ein, die schwer zu unterdrücken sind oder Abbildungsartefakte nach der Kompression einfügen. Das Objektextrapolationsverfahren 400 überwindet solche Nachteile.
  • Alternatives Kodierverfahren
  • 19A ist ein funktionelles Blockdiagramm eines Kodierverfahrens 500, das eine Laplacepyramidenkodierer mit eindeutigen Filtern verwendet, die nicht lineare Aspekte von Abbildungsmerkmalen, wie Kanten, erhält, während es ferner eine hohe Kompression bietet. Gewöhnliche Laplacepyramidenkodierer sind zum Beispiel in dem Werk "Laplacian Pyramid as a Compact Image Code" von Burt and Addleson, IEEE Trans. Comm., Vol. 31, Nr. 4, Seiten 532–540, April 1983, beschrieben. Das Kodierverfahren 500 ist in der Lage, die Kodierung, die mit Bezug auf den Funktionsblock 112 des Videokompressionskodierverfahrens 64 nach 3 beschrieben wurde, auch für solche Fälle zu liefern, für die sonst DCT- oder Waveletkodierung vorgeschlagen oder verwendet wird. Im Rahmen eines Beispiels wird das Kodierverfahren 500 mit Bezug auf das Kodieren des geschätzten Fehlers 110 (3) beschrieben.
  • Ein erster Dezimierungsfilter 502 empfängt Pixelinformationen, die mit einem geschätzten Fehler 510 korrespondieren (3), und filtert die Pixel gemäß einem Filterkriterium. Bei herkömmlichen Laplacepyramidenverfahren ist der Dezimierungsfilter ein Tiefpaßfilter, zum Beispiel eine Gaußsche Wichtungsfunktion. In Übereinstimmung mit dem Kodierverfahren 500 wendet jedoch der Dezimierungsfilter 502 vorzugsweise einen Medianfilter, insbesondere einen 3 × 3 nicht zerlegbaren Medianfilter, an.
  • Zur Veranschaulichung ist 20A eine vereinfachte Darstellung der Farbbestandteilwerte für einen Farbbestandteil (z. B. rot) für einen beliebigen Satz oder eine beliebige Anordnung von Pixeln 504. Obwohl die Darstellung mit besonderem Bezug auf die roten Farbbestandteilwerte beschrieben wird, kann diese Darstellung ähnlich auf die grünen und blauen Farbbestandteilwerte der Pixel 504 angewendet werden.
  • Mit Bezug auf die bevorzugte Ausführungsform des Dezimierungsfilters 502 werden Filterblöcke 506 mit Abmessungen von 3 × 3 Pixeln unter den Pixeln 504 definiert. Für jeden Pixelblock 506 wird der Medianpixelintensitätswert identifiziert oder ausgewählt. Mit Bezug auf die Pixelblöcke 506a506c liefert der Dezimierungsfilter 502 die entsprechenden Werte von 8, 9 und 10, die als die ersten drei Pixel 512 in 20B aufgelistet sind.
  • Es wird von Fachleuten jedoch geschätzt werden, daß der Dezimierungsfilter 502 gemäß dieser Erfindung andere Medianfilter verwenden könnte. Entsprechend würde der Medianfilter für jede Gruppe von Pixeln mit zugehörigen Farbbestandteilwerten {a0, a1,..., an–1} einen Medianwert aM auswählen.
  • Ein erster 2 × 2 Abwärtsabtastungsfilter 514 tastet alternierend Pixel 512 in einer vertikalen und einer horizontalen Richtung ab, um eine zusätzliche Kompression zu liefern. 20C repräsentiert einen sich ergebenden komprimierten Satz von Pixeln 515.
  • Ein 2 × 2 Aufwärtsabtastungsfilter 516 fügt ein Pixel mit einem Wert null anstelle von jedem Pixel 512 ein, das von dem Abwärtsabtastungsfilter 514 ausgelassen wurde, und der Interpolationsfilter 518 weist den Nullwert-Pixeln einen Pixelwert eines Durchschnitts der gegenüberliegenden angrenzenden Pixel oder eines vorher zugewiesenen Werts zu, falls das Null-wert-Ppixel sich nicht zwischen einem gegenüberliegenden Paar Nicht-Nullwert-Pixeln befindet. Zur Darstellung repräsentiert 20D einen sich ergebenden Satz oder eine Anordnung von Pixelwerten 520.
  • Eine Differenz zwischen den Farbbestandteilwerten des Satzes von Pixeln 504 und die entsprechenden Farbbestandteilwerte für den Satz von Pixeln 520 wird ermittelt, um einen Abbildungsbestandteil I0 nullter Ordnung zu bilden.
  • Ein zweiter Dezimierungsfilter 526 empfängt Farbbestandteilwerte, die mit dem komprimierten Satz von Pixeln 512 korrespondieren und mittels des ersten 2 × 2 Abwärtsabtastungsfilters 514 erzeugt worden sind. Der Dezimierungsfilter 526 wirkt vorzugsweise gleich wie der Dezimierungsfilter 502 (z. B. ein 3 × 3 nicht teilbarer Medianfilter). Entsprechend funktioniert der Dezimierungsfilter 526 in derselben Weise wie der Dezimierungsfilter 502 und liefert einen sich ergebenden komprimierten Satz oder eine Anordnung von Pixeln (nicht gezeigt) an einen zweiten 2 × 2 Abwärtsabtastungsfilter 528.
  • Der Abwärtsabtastungsfilter 528 funktioniert in derselben Weise wie der Abwärtsabtastungsfilter 514 und bildet einen Abbildungsbestandteil L2 zweiter Ordnung, der ebenfalls an einen 2 × 2 Aufwärtsabtastungsfilter 530 und einen Interpolationsfilter 531 geliefert wird, die in derselben Weise funktionieren wie der Aufwärtsabtastungsfilter 516 bzw. der Interpolationsfilter 518. Eine Differenz 532 von den Farbbestandteilwerten des Satzes von Pixeln 515 und den sich ergebenden Farbbestandteilwerten, die mittels des Interpolationsfilters 531 geliefert wurden, wird gebildet, um einen Abbildungsbestandteil I1 erster Ordnung zu bilden.
  • Die Abbildungsbestandteile I0, I1 und L2 sind entsprechend
    Figure 00440001
  • Sätze von Farbbestandteilwerten, die die Farbbestandteilwerte für eine n × n Anordnung von Pixeln 504 repräsentieren.
  • Der Abbildungsbestandteil I0 erhält die Hochfrequenzkomponenten (z. B. die Kanten) von einer Abbildung, die von dem ursprünglichen Satz von Pixeln 504 repräsentiert werden. Die Abbildungsbestandteile I1 und L2 repräsentieren Niederfrequenzaspekte der ursprünglichen Abbildung. Die Abbildungskomponenten I0, I1 und L2 liefern eine relative Kompression der ursprünglichen Abbildung. Die Abbildungsbestandteile I0 und I1 erhalten die Hochfrequenzmerkmale (z. B. die Kanten) in einem Format, das aufgrund der relativ hohen Korrelation zwischen den Werten von angrenzenden Pixeln hoch komprimierbar ist. Der Abbildungsbe standteil L2 ist nicht leicht komprimierbar, da er im wesentlichen niederfrequente Abbildungsmerkmale umfaßt, jedoch weist der Satz eine relativ kleine Größe auf.
  • 19B ist ein funktionelles Blockdiagramm eines Dekodierverfahrens 536, das die Abbildungsbestandteile I0, I1 und L2 dekodiert oder invers kodiert, die mittels des Kodierverfahrens 500 erzeugt worden sind. Das Dekodierverfahren 536 umfaßt einen ersten 2 × 2 Aufwärtsabtastungsfilter 538, der den Abbildungsbestandteil I2 empfängt und Pixel mit Nullwert zwischen jedes angrenzende Paar von Pixeln stellt. Ein Interpolationsfilter 539 weist den Nullwert-Pixeln einen Pixelwert zu, der ein Mittelwert der Werte der angrenzenden Pixel oder vorher zugewiesener Wert ist, falls das Nullwert-Pixel sich nicht zwischen einem gegenüberliegenden Paar von Nichtnullwert-Pixeln befindet. Der erste 2 × 2 Aufwärtsabtastungsfilter 538 wirkt im wesentlichen in der gleichen Weise wie die Aufwärtsabtastungsfilter 516 und 530 nach 19A, und der Interpolationsfilter 539 wirkt im wesentlichen in der gleichen Weise wie die Interpolationsfilter 518 und 531.
  • Eine Summe 540 wird aus dem Abbildungsbestandteil I1 und den Farbbestandteilwerten bestimmt, die mit dem entkomprimierten Satz von Pixeln korrespondieren, die mittels des ersten 2 × 2 Aufwärtsabtastungsfilter 538 und dem Interpolationsfilter 539 erzeugt worden sind. Ein zweiter 2 × 2 Aufwärtsabtastungsfilter 542 stellt ein Pixel mit einem Nullwert zwischen jedes angrenzende Paar von Pixeln, die mittels der Summe 540 erzeugt worden sind. Ein Interpolationsfilter 543 weist den Nullwert-Pixeln einen Pixelwert, der einen Durchschnitt der Werte der angrenzenden Pixel umfaßt, oder einen vorher zugewiesenen Wert zu, falls das Nullwert-Pixel sich nicht zwischen einem gegenüberliegenden Paar von Nichtnullwert-Pixeln befindet. Der Aufwärtsabtastungsfilter 542 und der Interpolationsfilter 543 sind im wesentlichen die gleichen wie der Abtastungsfilter 538 bzw. der Interpolationsfilter 539.
  • Eine Summe 540 summiert den Abbildungsbestandteil I0 mit den Farbbestandteilwerten, die mit dem entkomprimierten Satz von Pixeln korrespondieren, der mittels des zweiten 2 × 2 Aufwärtsabtastungsfilter 542 und des Interpolationsfilters 543 erzeugt worden ist. Die Summe 544 bietet einen entkomprimierten geschätzten Fehler 110, der mit dem geschätzten Fehler 110 korrespondiert, der von dem Kodierverfahren 500 geliefert wurde.
  • Transformationskodierung von Bewegungsvektoren
  • Herkömmliche Videokompressionskodierverfahren, zum Beispiel MPEG-1 oder MPEG-2, verwenden nur spärliche Bewegungsvektorfelder, um die Bewegung von bedeutend größeren Pixelanordnungen einer regelmäßigen Größe und Gestalt zu repräsentieren. Die Bewegungsvektorfelder sind darin spärlich, daß nur ein Bewegungsvektor verwendet wird, um die Bewegung von einer Pixelanordnung mit Abmessungen von zum Beispiel 16 × 16 Pixeln zu repräsentieren. Die spärlichen Bewegungsvektorfelder zusammen mit der Transformationskodierung der darunterliegenden Abbildungen oder Pixel mittels zum Beispiel einer diskreten Cosinustransformationskodierung (DCT-Kodierung) liefern eine herkömmliche Videokompressionskodierung.
  • Im Gegensatz dazu verwendet das Videokompressionskodierverfahren 64 (3) dichte Bewegungsvektorfelder, bei denen die Bewegungsvektoren für alle oder fast alle Pixel eines Objekts bestimmt werden. Solche dichten Bewegungsvektorfelder verbessern die Genauigkeit erheblich, mit denen die Bewegung zwischen den korrespondierenden Pixeln repräsentiert wird. Obwohl die gesteigerte Genauigkeit die mit der herkömmlichen spärlichen Bewegungsvektorfeldrepräsentation verknüpften Fehler erheblich reduzieren kann, stellen die zusätzlichen Informationen, die in den dichten Bewegungsvektorfeldern umfaßt sind, eine Zunahme der Menge von Informationen dar, die eine Videosequenz repräsentieren. In Übereinstimmung mit dieser Erfindung werden die dichten Bewegungsvektorfelder daher selbst komprimiert oder kodiert, um das Kompressionsverhältnis zu verbessern, welches mittels dieser Erfindung geliefert wird.
  • 21 ist ein funktionelles Blockdiagramm eines Bewegungsvektorkodierverfahrens 560 zum Kodieren oder Komprimieren von Bewegungsvektorfeldern und vorzugsweise dichten Bewegungsvektorfeldern, zum Beispiel solchen, die in Übereinstimmung mit der dichten Bewegungstransformation 96 nach 3 erzeugt worden sind. Es wird von dem Fachmann geschätzt werden, daß solche dichten Bewegungsvektorfelder von einem ausgewählten Objekt typischerweise eine größere Stetigkeit oder "Glattheit" als die darunterliegenden Pixel aufweisen, die mit dem Objekt korrespondieren. Als ein Ergebnis wird die Kompression oder Kodierung der dichten Bewegungsvektorfelder ein größeres Kompressionsverhältnis geben als eine Kompression oder Kodierung der darunterliegenden Pixel ergeben würde.
  • Ein Funktionsblock 562 deutet an, daß ein dichtes Bewegungsvektorfeld für ein Objekt oder einen Abschnitt von einem Objekt in Übereinstimmung mit zum Beispiel dem Verfahren nach Funktionsblock 96 erhalten wird, wie mit Bezug auf 3 beschrieben worden ist. Entspre chend wird das dichte Bewegungsvektorfeld mit einem Objekt oder einem anderen Abbildungsabschnitt von beliebiger Gestalt oder Größe korrespondieren.
  • Ein Funktionsblock 564 deutet an, daß die Gestalt des dichten Bewegungsvektorfelds zu einem regelmäßigen, vorzugsweise einer rechteckigen Gestalt extrapoliert ist, um das Kodieren oder Komprimieren zu erleichtern. Vorzugsweise wird die dichte Bewegungsvektorfeldgestalt auf eine regelmäßige Gestalt mittels des Vorkompressionsextrapolationsverfahrens 400 extrapoliert, das mit Bezug auf die 17A und 17B beschrieben worden ist. Es wird von dem Fachmann geschätzt werden, daß herkömmliche Extrapolationsverfahren, zum Beispiel ein Spiegelabbildungsverfahren, alternativ verwendet werden könnten.
  • Ein Funktionsblock 566 deutet an, daß das dichte Bewegungsvektorfeld mit seiner extrapolierten regelmäßigen Gestalt gemäß herkömmlicher Kodierungstransformationen, zum Beispiel der diskreten Cosinustransformations-(DCT-) oder Gitter- oder einer anderen Waveletkompression, wobei die erstere bevorzugt wird, kodiert oder komprimiert wird.
  • Ein Funktionsblock 568 deutet an, daß das kodierte dichte Bewegungsvektorfeld weiter mittels eines herkömmlichen verlustlosen Einzelbildkompressionsverfahrens, zum Beispiel einer Entropiekodierung, komprimiert oder kodiert wird, um ein kodiertes dichtes Bewegungsvektorfeld 570 zu bilden. Solch ein Einzelabbildungskompressionsverfahren wurde mit Bezug auf Funktionsblock 114 nach 3 beschrieben.
  • Kompression von quantisierten Objekten aus vorherigen Videorahmen
  • Das Videokompressionskodierverfahren 64 nach 3A verwendet das quantisierte vorherige Objekt 126, welches mit Bezug auf einen vorherigen Rahmen N – 1 bestimmt worden ist, um ein entsprechendes Objekt in dem nächsten nachfolgenden Rahmen N zu kodieren. Als eine Konsequenz benötigt das Kodierverfahren 64, daß das quantisierte vorherige Objekt 126 in einem zugänglichen Speicherpuffer gespeichert ist. Bei herkömmlichen Videoanzeigeauflösungen würde solch ein Speicherpuffer eine Kapazität von mindestens einem halben Megabyte benötigen, um das quantisierte vorherige Objekt 126 für einen einzelnen Videorahmen zu speichern. Anzeigeformate höherer Auflösung würden entsprechend größere Speicherpuffer benötigen.
  • Eine 22 ist ein funktionelles Blockdiagramm eines Kodier- Dekodierverfahrens 600 (codec) für quantisierte Objekte, das quantisierte vorherige Objekte 126 komprimiert oder wahlweise dekomprimiert, um die benötigte Kapazität eines quantisierten Objektspeicherpuffers zu reduzieren.
  • Ein Funktionsblock 602 deutet an, daß jedes quantisierte Objekt 126 in einem Abbildungsrahmen in einer Block-für-Block-Weise mittels eines verlustbehafteten Kodier- oder Kompressionsverfahrens kodiert wird, zum Beispiel mittels diskreter Cosinustransforinationskodierung (DCT) oder Gitterunterband- oder anderer Waveletkompression. Wie in 21 gezeigt ist, kann verlustbehaftet kodierte Information einer zusätzlichen verlustlosen Kodierung unterzogen werden. Alternativ kann ausschließlich verlustlose Kodierung verwendet werden.
  • Ein Funktionsblock 604 deutet an, daß die kodierten oder komprimierten quantisierten Objekte in einem Speicherpuffer (nicht gezeigt) gespeichert werden.
  • Ein Funktionsblock 606 deutet an, daß die kodierten quantisierten Objekte aus dem Speicherpuffer in Erwartung einer Verarbeitung eines korrespondierenden Objekts in dem nächsten drauffolgenden Videorahmen abgerufen werden.
  • Ein Funktionsblock 608 deutet an, daß das kodierte quantisierte Objekt invers mittels zum Beispiel DCT- oder Waveletdekodierung gemäß dem Kodierungsverfahren, das mit Bezug auf Funktionsblock 602 angewendet wurde, kodiert wird.
  • Das Codecverfahren 600 ermöglicht es, daß die Kapazität des korrespondierenden Speicherpuffers um etwa 80% reduziert wird, abhängig von dem Gesamtvideokompressionsverhältnis und der gewünschten Qualität des sich daraus ergebenden Videos. Darüber hinaus wird es der Fachmann schätzen, daß das Codecverfahren 600 ähnlich auf das Dekodierverfahren angewendet werden kann, das mit dem Videokompressionskodierverfahren 64 korrespondiert.
  • Überblick über das Videokompressionsdekodierverfahren
  • Das Videokompressionskodierverfahren 64 nach 3 schafft kodierte oder komprimierte Repräsentationen von Videosignalen, die mit Videosequenzen von mehreren Abbildungsrahmen korrespondieren. Die komprimierten Repräsentationen umfassen Objektmasken 66, Merkmalpunkte 68, affine Transformationskoeffizienten 104 und komprimierte Fehlerdaten 116 von dem Kodierverfahren 64 und komprimierte Hauptobjekte 136 von dem Kodierverfahren 130. Diese komprimierten Repräsentationen erleichtern das Speichern oder Übertragen von Videoinformation und sind in der Lage Kompressionsverhältnisse zu erreichen, die bis zu 300% größer als solche sind, die mittels herkömmlicher Videokompressionsverfahren, zum Beispiel MPEG-2, erreichbar sind.
  • Es ergibt sich jedoch, daß das Abrufen solcher komprimierter Videoinformation aus einem Datenspeicher oder das Empfangen einer Übertragung der Videoinformation es erforderlich macht, daß die Videoinformation dekodiert oder dekomprimiert wird, um das ursprüngliche Videosignal zu rekonstruieren, so daß es von einer Darstellungsvorrichtung, zum Beispiel der Videoanzeigevorrichtung 52 (2A und 2B), wiedergegeben werden kann. Wie bei herkömmlichen Kodierverfahren, zum Beispiel MPEG-1, MPEG-2 und H.26X, ist die Dekompression oder die Dekodierung der Videoinformation invers zu dem Verfahren, mit dem das ursprüngliche Videosignal kodiert oder komprimiert wurde.
  • 23A ist ein funktionelles Blockdiagramm eines Videokompressionsdekodierverfahrens 700 zum Dekomprimieren von Videoinformation, die von dem Videokompressionskodierverfahren 64 nach 3 erzeugt worden ist. Zum Zwecke der Konsistenz mit der Beschreibung des Kodierverfahrens 64 wird das Dekodierverfahren 700 mit Bezug auf 2A und 2B beschrieben. Das Dekodierverfahren 700 ruft aus dem Speicher kodierte Videoinformation ab oder empfängt als eine Übertragung die kodierte Videoinformation, die die Objektmasken 66, die Merkmalpunkte 68, die komprimierte Hauptobjekte 36, die affine Transformationskoeffizienten 104 und die komprimierte Fehlerdaten 116 umfaßt.
  • Das Dekodierverfahren 700 führt Arbeitsschritte aus, die invers zu denen des Kodierverfahrens 64 sind (3). Entsprechend würde jeder der oben beschriebenen bevorzugten Arbeitsschritte des Kodierverfahrens 64 mit einem Dekodiergegenstück ähnlich invertiert werden.
  • Ein Funktionsblock 702 deutet an, daß die Masken 66, die Merkmalpunkte 68, die Transformationskoeffizienten 104 und die komprimierten Fehlerdaten 116 aus dem Speicher abgerufen oder als eine Übertragung für eine Verarbeitung mittels des Dekodierverfahrens 700 empfangen werden.
  • 23B ist ein funktionelles Blockdiagramm eines Hauptobjektdekodierverfahrens 704 zum Dekodieren oder Dekomprimieren des komprimierten Hauptobjekts 136. Ein Funktionsblock 706 deutet an, daß die komprimierten Hauptobjektdaten 136 mittels der Umkehrung des herkömmlichen verlustlosen Entropiekodierungsverfahrens nach Funktionsblock 134 gemäß 3B entropiedekodiert werden. Ein Funktionsblock 708 deutet an, daß das entropiedekodierte Hauptobjekt von Funktionsblock 706 entsprechend einer Umkehrung des herkömmlichen verlustbehafteten Waveletkodierverfahrens dekodiert wird, das in Funktionsblock 132 nach 3B verwendet wurde.
  • Ein Funktionsblock 712 deutet an, daß dichte Bewegungstransformationen, vorzugsweise mehrdimensionale affine Transformationen, aus den affinen Koeffizienten 104 erzeugt werden. Vorzugsweise sind die affinen Koeffizienten 104 in Übereinstimmung mit dem Transformationsverfahren 350 (12) quantisiert und die affinen Transformationen werden aus den quantisierten affinen Koeffizienten erzeugt, indem die Umkehrung der Arbeitsgänge ausgeführt wird, die mit Bezug auf Funktionsblock 362 (12) beschrieben worden sind.
  • Ein Funktionsblock 714 deutet an, daß eine quantisierte Form eines Objekts 716 eines vorherigen Rahmens N – 1 (z. B. ein rechteckiges Festkörperobjekt 56a in dem Abbildungsrahmen 54a), die über eine Zeitverzögerung 718 geliefert wird, mittels der dichten Bewegungstransformation transformiert wird, um eine vorausgesagte Form des Objekts 720 in dem gegenwärtigen Rahmen N (z. B. das rechteckige Festkörperobjekt 56b in dem Abbildungsrahmen 54b) zu liefern.
  • Ein Funktionsblock 722 deutet an, daß für einen Abbildungsrahmen N das vorausgesagte gegenwärtige Objekt zu einem quantisierten Fehler 724 zugefügt wird, der aus den komprimierten Fehlerdaten 116 erzeugt worden ist. Insbesondere deutet ein Funktionsblock 726 an, daß die komprimierten Fehlerdaten 116 mittels eines Verfahrens, das invers zu dem Kompressionsverfahren 114 (3A) wirkt, dekodiert werden. Bei der bevorzugten Ausführungsform basieren die Funktionsblöcke 114 und 726 auf einem herkömmlichen verlustfreien Einzelbildkompressionsverfahren, zum Beispiel einer Entropiekodierung.
  • Ein Funktionsblock 728 deutet an, daß die entropiekodierten Fehlerdaten aus Funktionsblock 726 weiter mittels eines herkömmlichen verlustbehafteten Einzelabbildungskompressionsverfahrens dekomprimiert oder dekodiert werden, das mit dem korrespondiert, das im Funktionsblock 112 (3A) verwendet worden ist. Bei der bevorzugten Ausführungsform ist die Dekompression oder Dekodierung nach Funktionsblock 728 eine mittels eines Gitterunterband- oder anderen Waveletverfahrens oder eines diskreten Cosinustransformationsverfahrens (DCT).
  • Ein Funktionsblock 722 liefert ein quantisiertes Objekt 730 für den Rahmen N als die Summe aus dem vorausgesagten Objekt 720 und dem quantisierten Fehler 724, das ein wiederhergestelltes oder dekomprimiertes Objekt 732 repräsentiert, das dem Funktionsblock 718 für eine Wiederherstellung des Objekts in nachfolgenden Rahmen geliefert wird.
  • Ein Funktionsblock 734 deutet an, daß das quantisierte Objekt 732 mit andern Objekten eines gegenwärtigen Abbildungsrahmens N zusammengesetzt wird, um ein dekomprimiertes Videosignal zu bilden.
  • Vereinfachte Kettenkodierung
  • Masken, Objekte, Schemen und andere graphische Merkmale werden gewöhnlich mittels ihrer Konturen repräsentiert. Wie in 5A gezeigt und mit Bezug hierauf erläutert wurde, ist zum Beispiel das rechteckige Festkörperobjekt 56a von einem Objektumfang oder einer Kontur 142 eingegrenzt. Ein herkömmliches Verfahren zum Kodieren oder Komprimieren von Konturen wird als Kettenkodierung bezeichnet.
  • 24A zeigt einen herkömmlichen Achtpunktkettencode 800, mit dem Konturen einer herkömmlichen rechtwinklig-linearen Pixelanordnung definiert werden. Basierend auf einem gegenwärtigen Pixelort X, erstreckt sich ein nächster darauffolgender Pixelort in der Kontur in eine der Richtungen 802a802h. Der Kettencodewert für das nächste nachfolgende Pixel ist der numerische Wert, der mit der bestimmten Richtung 802 korrespondiert. Zum Beispiel korrespondiert die horizontale Richtung 802a mit dem Kettencodewert 0 und die vertikale Abwärtsrichtung 802g korrespondiert mit dem Kettencodewert 6. Jede kontinuierliche Kontur kann mit einem Achtpunktkettencode 800 beschrieben werden.
  • Eine Kontur 804 in 24B, die mittels der Pixel 806 repräsentiert wird, die mit X und A-E bezeichnet sind, kann in einer herkömmlichen Weise mittels der Kettencodesequenz {00764432} kodiert werden. Insbesondere sind, ausgehend von dem Pixel X, die Pixel A und B in der Richtung 0 relativ zu den entsprechenden Pixeln X und A angeordnet. Das Pixel C ist in der Richtung 7 relativ zu dem Pixel B angeordnet. Die verbleibenden Pixel D-E sind ähn lich in Richtungen angeordnet, die mit den oben aufgeführten Kettencodewerten korrespondieren. Bei einer binären Schreibweise, wird jeder herkömmliche Kettencodewert mittels drei digitaler Bits repräsentiert.
  • Eine 25A ist ein funktionelles Blockdiagramm eines Kettencodeverfahrens 810 der Erfindung, das in der Lage ist, Konturkompressionsverhältnisse zu liefern, die mindestens etwa zweimal so groß wie die von jedem konventionellen Kettencodeverfahren sind. Das Kettencodeverfahren 810 erreicht solche verbesserten Kompressionsverhältnisse mittels des Begrenzens der Anzahl von Kettencodes und indem sie relativ zu der Ausrichtung von angrenzenden Paaren von Pixeln definiert werden. Basierend auf Experimenten wurde herausgefunden, daß die begrenzten Kettencodes des Kettencodeverfahrens 810 direkt mehr als 99,8% der Pixelausrichtungen des Objekts oder der Maskenkontur repräsentieren. Besondere Kettencodemodifizierungen nehmen die verbleibenden weniger als 0,2% der Pixelausrichtung auf, wie unten detaillierter beschrieben wird.
  • Ein Funktionsblock 816 deutet an, daß eine Kontur für eine Maske, ein Objekt oder ein Schema erhalten wird. Die Kontur kann zum Beispiel mittels des Objektsegmentierungsverfahrens 140 erhalten werden, das mit Bezug auf 4 und 5 beschrieben worden ist.
  • Ein Funktionsblock 818 deutet an, daß ein ursprüngliches Pixel in der Kontur identifiziert wird. Das ursprüngliche Pixel kann mittels eines gewöhnlichen Verfahrens identifiziert werden, zum Beispiel ein Pixel mit einer minimalen x-Achserilcoordinaten- und einer minimalen y-Achsenkoordinatenposition.
  • Ein Funktionsblock 820 deutet an, daß ein vorbestimmter Kettencode zugewiesen wird, um die Beziehung zwischen dem ursprünglichen Pixel und dem nächsten angrenzenden Pixel in der Kontur zu repräsentieren. Vorzugsweise ist der Kettencode definiert, um mit der Vorwärtsrichtung zu korrespondieren.
  • Eine 25B ist eine diagrammartige Darstellung eines Dreipunktkettencodes 822 der Erfindung. Der Kettencode 822 umfaßt drei Kettencodes 824a, 824b und 824c, die einer Vorwärtsrichtung 826a, einer nach links gerichteten Richtung 826b bzw. einer nach rechts gerichteten Richtung 826e entsprechen. Die Richtungen 826a-826c sind relativ zu einer vorausgehenden Ausrichtungsrichtung 828 zwischen einem gegenwärtigen Pixel 830 und einem angrenzenden Pixel 832 definiert, das das vorhergehende Pixel in dem Kettencode repräsentiert.
  • Die vorausgehende Ausrichtungsrichtung 828 kann sich in irgendeine der Richtungen 802 erstrecken, die in 24A gezeigt sind, sie ist jedoch in einer bestimmten Orientierung (d. h. rechts, horizontal) für Zwecke der Darstellung gezeigt. Die Richtung 628a ist daher als die gleiche Richtung 828 definiert. Die Richtungen 826b und 826c unterscheiden sich von der Richtung 828 mittels eines nach links gerichteten oder eines nach rechts gerichteten Versatzes von einem Pixel.
  • Es ist experimentell festgestellt worden, daß etwas mehr als 50% der Kettencodes 824 mit der Vorwärtsrichtung 826 und etwas weniger als 25% der Kettencodes 824 mit jeder der Richtungen 826b und 826c korrespondieren.
  • Ein Funktionsblock 836 repräsentiert eine Anfrage, ob das nächste angrenzende Pixel in der Kontur sich an eine der Richtungen 826 anpaßt. Wann immer das nächste angrenzende Pixel in der Kontur sich an eine der Richtungen 826 anpaßt, fährt der Funktionsblock 836 mit einem Funktionsblock 838 und andernfalls mit einem Funktionsblock 840 fort.
  • Ein Funktionsblock 838 deutet an, daß dem nächsten angrenzenden Pixel ein Kettencode 824 zugewiesen wird, der mit seiner Richtung 826 relativ zu der Richtung 828, entlang welcher das angrenzende vorausgehende Paar von Pixeln ausgerichtet ist, korrespondiert.
  • Ein Funktionsblock 840 deutet an, daß eine Pixelsequenz, die sich an eine der Richtungen 826 anpaßt, gegen die tatsächliche sich nicht anpassende Pixelsequenz ausgetauscht wird. Basierend auf Experimenten ist festgestellt worden, daß solche Ersetzungen typischerweise in weniger als 0,2% der Pixelsequenzen in einer Kontur auftreten und mittels einer von sechs Spezialfallmodifizierungen in Einklang gebracht werden können.
  • Eine 25C ist eine diagrammartige Darstellung der sechs Spezialfallmodifikationen 842 zum Konvertieren sich nicht anpassender Pixelsequenzen in Pixelsequenzen, die sich an die Richtungen 826 anpassen. Innerhalb jeder Modifikation 842 wird eine Pixelsequenz 844 in eine Pixelsequenz 846 konvertiert. Bei jeder der Pixelsequenzen 844 von entsprechend aneinander angrenzenden Pixeln X1, X2, A, B paßt sich die Richtung zwischen den Pixeln A und B nicht an eine der Richtungen 826 aufgrund der Ausrichtung von Pixel A relativ zu der Ausrichtung der Pixel X1 und X2 an.
  • Bei einer Pixelsequenz 844a repräsentieren die ursprünglichen Pixelausrichtungen 850a und 852a eine nicht konforme rechtwinklige Richtungsänderung. Entsprechend wird in der Pixelsequenz 846a das Pixel A der Pixelsequenz 844a ausgelassen, was zu einer Pixelrichtung 854a fährt, die der Pixelrichtung 826a entspricht. Die Pixelsequenzmodifikationen 842b842f konvertieren ähnlich nicht konforme Pixelsequenzen 844b844f in entsprechende konforme Sequenzen 846b846f.
  • Die Pixelsequenzmodifikationen 842 lassen Pixel aus, die Richtungsausrichtungen verursachen, die sich um 90° oder mehr relativ zu den Ausrichtungen von angrenzenden vorausgehenden Pixeln X1 und X2 unterscheiden. Ein Effekt ist, daß der minimale Krümmungsradius von einer Kontur, die einen rechten Winkel repräsentiert, auf drei Pixel erhöht wird. Die Pixelmodifikationen 842 verursachen daher einen geringen Verlust von extrem feinen Konturdetails. Gemäß der Erfindung ist jedoch herausgefunden worden, daß der Verlust von solchen Details unter den meisten Betrachtungsbedingungen akzeptabel ist.
  • Ein Funktionsblock 860 repräsentiert eine Abfrage, ob ein anderes Pixel in der Kontur vorhanden ist, dem ein Kettencode zuzuweisen ist. Wann immer ein weiteres Pixel in der Kontur vorhanden ist, dem ein Kettencode zuzuweisen ist, kehrt der Funktionsblock zu dem Funktionsblock 836 zurück und fährt andernfalls mit einem Funktionsblock 862 fort.
  • Ein Funktionsblock 862 deutet an, daß nicht konforme Pixelausrichtungsrichtungen, die mittels des Verfahrens von Funktionsblock 840 eingefügt oder bewirkt wurden, entfernt werden. Bei der bevorzugten Ausführungsform können nicht konforme Richtungsänderungen ausgelassen werden, indem einfach zu dem Funktionsblock 816 zurückgekehrt wird und das Verfahren 810 wiederholt wird, bis keine nicht konformen Pixelsequenzen verbleiben, was typischerweise in weniger als acht Iterationen erreicht wird. Bei einer alternativen Ausführungsform können solche eingetretenen nicht konformen Richtungsänderungen "echtzeit"-korrigiert werden, indem auf irgendeine eingetretene nicht konforme Richtungsänderung jedes Mal, wenn eine nicht konforme Richtungsänderung modifiziert wird, geprüft wird und sie korrigiert wird.
  • Ein Funktionsblock 864 deutet an, daß ein Huffmanncode aus dem sich ergebenden vereinfachten Kettencode erzeugt wird. Mit den Kettencodes 824a824c, die mit den Richtungen 826a826c korrespondieren, die für etwa 50% und 25% der Pixel in der Kontur auftreten, werden entsprechende Huffmanncodes von 0, 11 und 10 zugewiesen. Solche Huffmanncodes erster Ordnung ermöglichen dem Kettenverfahren 810, Konturen mit einer Bitrate von weniger als 1,5 Bits pro Pixel in der Kontur darzustellen. Eine solche Bitrate repräsentiert ungefähr eine 50%-ige Kompressionsverhältnisverbesserung gegenüber herkömmlichen Kettencodeverfahren.
  • Der Fachmann wird schätzen, daß Huffmanncodes höherer Ordnung höhere Kompressionsverhältnisse liefern können. Huffmanncodes höherer Ordnung umfassen zum Beispiel das Zuweisen vorbestimmter Werte zu vorausgewählten Sequenzen der Huffmanncodes erster Ordnung.
  • Schemaerzeugung
  • Die Erfindung umfaßt das Erzeugen von Schemen ("Sprites") für eine Verwendung in Verbindung mit dem Kodieren bestimmter Videos (Filme). Bitmaps werden in Bitmapreihen vergrößert, die mehrere sequentielle Bitmaps von sequentiellen Abbildungen einer Abbildungsquelle umfassen. Das Vergrößern wird verwendet, um das Problem von verdeckten Pixeln zu überwinden, wo Objekte oder Figuren sich relativ zueinander bewegen oder wo eine Figur eine andere Figur verdeckt, ähnlich zu dem Fall, bei dem eine Vordergrundfigur den Hintergrund verdeckt. Wenn zum Beispiel eine Vordergrundfigur sich bewegt und einen neuen Hintergrund aufdeckt, gibt es keine Möglichkeit, daß der neue Hintergrund aus einer vorherigen Bitmap erzeugt wird, falls nicht die vorherige Bitmap zuerst erweitert worden ist, indem in sie Pixel aufgenommen worden sind, die in der nachfolgenden Bitmap entblößt werden. Dieses Verfahren verwendet eine unvollständige Abbildung einer Figur und schaut in der Zeit voraus, um irgendwelche Pixel zu finden, die zu der Abbildung gehören, jedoch nicht unmittelbar sichtbar sind. Solche Pixel werden verwendet, um eine zusammengesetzte Bitmap für die Figur zu erzeugen. Mit der zusammengesetzten Bitmap kann jede zukünftige Ansicht der Figur mittels des Verformens der zusammengesetzten Bitmap erzeugt werden.
  • Das Kodierverfahren beginnt, indem ein Operator die Figuren und Teile der Figuren einer gegenwärtigen Bitmap von der gegenwärtigen Bitmapreihe identifiziert. Merkmale oder Verdrehungspunkte werden von dem Operator auf den Merkmalen der Teile, um welche die Teile der Figur sich bewegen, ausgewählt. Ein gegenwärtiges Gitter von Dreiecken wird den Teilen der gegenwärtigen Bitmap überlagert. Die Dreiecke die das gegenwärtige Gitter von Dreiekken bilden, werden mittels des Verbindens der angrenzenden Verdrehungspunkte gebildet. Die Verdrehungspunkte sind die Eckpunkte der Dreiecke. Der gegenwärtige Ort von jedem Dreieck auf der gegenwärtigen Bitmap wird bestimmt und auf der Speichervorrichtung gespeichert. Ein Abschnitt der Daten der gegenwärtigen Bitmap, der die erste Abbildung innerhalb des gegenwärtigen Orts jedes Dreiecks definiert, wird für die weitere Benutzung zurückbehalten.
  • Eine nachfolgende Bitmap, die eine zweite Abbildung der gegenwärtigen Bitmapreihe definiert, wird von der Abbildungsquelle empfangen und die Figuren und Teile der Figur werden von dem Operator identifiziert. Als nächstes wird das gegenwärtige Gitter von Dreiecken von der gegenwärtigen Bitmap der nachfolgenden Bitmap überlagert. Die Verdrehungspunkte von einem gegenwärtigen Gitter von Dreiecken werden neu angeordnet, um mit den Merkmalen der entsprechenden Figur auf der nachfolgenden Bitmap zusammenzufallen. Die neu angeordneten Verdrehungspunkte bilden ein nachfolgendes Gitter von Dreiecken auf der nachfolgenden Bitmap der zweiten Abbildung. Der nachfolgende Ort für jedes Dreieck in der nachfolgenden Bitmap wird bestimmt und in der Speichervorrichtung gespeichert. Ein Abschnitt von Daten der nachfolgenden Bitmap, der die zweite Abbildung innerhalb des nachfolgenden Orts jedes Dreiecks definiert, wird für eine weitere Nutzung zurückbehalten.
  • Das Verfahren zum Bestimmen und Speichern des gegenwärtigen und nachfolgenden Orts für jedes Dreieck wird für mehrere aufeinanderfolgende Bitmaps der gegenwärtigen Bitmapreihe wiederholt. Wenn das Verfahren abgeschlossen ist, wird eine Durchschnittsabbildung für jedes Dreieck in der gegenwärtigen Bitmaprere auf der Basis der getrennt zurückbehaltenen Daten bestimmt. Die Durchschnittsabbildung von jedem Dreieck wird dann auf die Speichervorrichtung gespeichert.
  • Während des Abspielens werden die Durchschnittsabbildung für jedes Dreieck der gegenwärtigen Bitmapreihe und der gegenwärtige Ort für jedes Dreieck der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Eine vorausgesagte Bitmap wird mittels des Berechnens einer Transformationslösung zum Transformieren der Durchschnittsabbildung für jedes Dreieck in der gegenwärtigen Bitmapreihe auf den gegenwärtigen Ort für jedes Dreieck der gegenwärtigen Bitmap berechnet und die Transformationslösung auf die Durchschnittsabbil dang von jedem Dreieck angewendet. Diese vorausgesagte Bitmap wird an den Monitor zum Anzeigen übergeben.
  • In Verbindung mit einer Wiedergabe eines genau festgelegten Bewegungsvideos (einem Videospiel), bei dem die Abbildungen mittels eines Steuerprogramms beim Abspielen bestimmt werden, wird eine Schemabitmap in ihrer Gesamtheit auf einer Speichervorrichtung gespeichert. Die Schemabitmap umfaßt mehrere Datenbits, die eine Schemaabbildung definieren. Die Schemaabbildung wird auf einem Monitor angezeigt, und Teile des Schemas werden von einem Operator identifiziert und Verdrehungspunkte für die Schemateile ausgewählt.
  • Ein Gitter von Dreiecken wird den Teilen der Schemabitmap überlagert. Die Dreiecke, die das Gitter von Dreiecken bilden, werden mittels des Verbindens angrenzender Verdrehungspunkte gebildet. Die Verdrehungspunkte sind die Ecken der Dreiecke. Der Ort von jedem der Dreiecke der Schemabitmap wird bestimmt und auf die Speichervorrichtung gespeichert.
  • Während der Wiedergabe wird ein nachfolgender Ort für jedes Dreieck von einem Steuerprogramm empfangen. Die Schemabitmap und der nachfolgende Ort für jedes Dreieck auf der Schemabitmap werden von der Speichervorrichtung abgerufen und an den Anzeigeprozessor übergeben. Der nachfolgende Ort von jedem Dreieck wird auch an den Anzeigeprozessor übergeben.
  • Eine Transformationslösung wird für jedes Dreieck auf der Schemabitmap berechnet. Eine nachfolgende Bitmap wird dann in dem Anzeigeprozessor erzeugt, indem die Transformationslösung für jedes Dreieck aus der Schemabitmap abgeleitet wird, die die Schemaabbildung innerhalb des Ortes jedes Dreiecks definiert. Der Anzeigeprozessor übergibt die nachfolgende Schemabitmap an einen Monitor zum Anzeigen. Dieses Verfahren wird für jeden nachfolgenden Ort von jedem Dreieck wiederholt, das von dem Steuerprogramm angefordert wird.
  • Wie in 26 gezeigt ist, beginnt das Kodierverfahren für ein Filmvideo mit einem Schritt 900, indem die CPU 22 von einer Abbildungsquelle eine gegenwärtige Bitmapreihe empfängt. Die gegenwärtige Bitmapreihe umfaßt mehrere sequentielle Bitmaps von sequentiellen Abbildungen. Die gegenwärtige Bitmapreihe weist eine gegenwärtige Bitmap auf, die mehrere Datenbits umfaßt, die eine erste Abbildung der Abbildungsquelle definieren. Die erste Abbildung umfaßt mindestens eine Figur mit mindestens einem Teil.
  • Fortfahrend mit einem Schritt 902 wird die erste Abbildung dem Operator auf dem Monitor 28 dargestellt. Von dem Monitor werden die Figuren der ersten Abbildung auf der gegenwärtigen Bitmap von dem Operator identifiziert. Die Teile der Figur auf der gegenwärtigen Bitmap werden von dem Operator im Schritt 904 identifiziert.
  • Als nächstes wählt der Operator beim Schritt 906 Merkmale und Verdrehungspunkte auf der gegenwärtigen Bitmap. Die Verdrehungspunkte werden so ausgewählt, daß die Verdrehungspunkte mit den Merkmalen auf der Bitmap zusammenfallen, wo eine relative Bewegung eines Teils wahrscheinlich auftreten wird. Der Fachmann wird verstehen, daß die Figuren, die Teile von Figuren und die Verdrehungspunkte auf der Bitmap mittels eines Computersystems oder mittels einer Unterstützung von ihm identifiziert werden können. Es wird jedoch bevorzugt, daß der Operator die Figuren, die Teile der Figuren und die Verdrehungspunkte auf der Bitmap identifiziert.
  • Fortfahrend mit einem Schritt 908 wird ein gegenwärtiges Gitter von Dreiecken den Teilen der gegenwärtigen Bitmap mittels des Computersystems 20 überlagert. Wie mit Bezug auf 27A gezeigt ist, umfaßt das gegenwärtige Gitter Dreiecke, die mittels des Verbindens angrenzender Verdrehungspunkte gebildet sind. Die Verdrehungspunkte bilden die Eckpunkte der Dreiecke. Genauer umfaßt die erste Abbildung der gegenwärtigen Bitmap eine Figur, die eine Person 970 ist. Die Person 970 hat sechs Teile, die mit einem Kopf 272, einem Torso 974, einem rechten Arm 976, einem linken Arm 978, einem rechten Bein 980 und einem linken Bein 982 korrespondieren. Die Verdrehungspunkte werden auf jedem Teil der Person 970 so ausgewählt, daß die Verdrehungspunkte mit den Merkmalen zusammenfallen, wo eine relative Bewegung von einem Teil wahrscheinlich auftreten wird. Ein gegenwärtiges Gitter wird jedem Teil überlagert, wobei die Dreiecke jedes gegenwärtigen Gitters mittels des Verbindens angrenzender Verdrehungspunkte gebildet werden. Somit stellen die Verdrehungspunkte Eckpunkte der Dreiecke dar.
  • Bei einem Schritt 910 bestimmt das Computersystem 20 einen gegenwärtigen Ort für jedes Dreieck in der gegenwärtigen Bitmap. Der gegenwärtige Ort jedes Dreiecks auf der gegenwärtigen Bitmap ist mittels des Orts der Verdrehungspunkte bestimmt, die die Eckpunkte des Dreiecks bilden. Bei einem Schritt 912 wird der gegenwärtige Ort des Dreiecks auf die Speichervorrichtung gespeicheri. Ein Abschnitt der Daten, die von der gegenwärtigen Bitmap abgeleitet wurden, der die erste Abbildung innerhalb des gegenwärtigen Orts für jedes Dreieck bestimmt, wird bei einem Schritt 914 zurückbehalten.
  • Als nächstes wird bei einem Schritt 916 eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe von der CPU 22 empfangen. Die nachfolgende Bitmap umfaßt mehrere Datenbits, welche eine zweite Abbildung der gegenwärtigen Bitmapreihe definieren. Die zweite Abbildung kann oder kann nicht die Figuren umfassen, die mit den Figuren in der ersten Abbildung korrespondieren. Für die folgenden Schritte wird angenommen, daß die zweite Abbildung Figuren aufweist, die mit den Figuren in der ersten Abbildung korrespondieren. Bei einem Schritt 918, wird das gegenwärtige Gitter von Dreiecken auf die nachfolgende Bitmap überlagert. Die zweite Abbildung mit dem überlagerten Dreiecksgitter wird dem Operator auf dem Monitor 28 angezeigt.
  • Bei einem Schritt 920 werden die Verdrehungspunkte von dem Operator mit Unterstützung durch das Computersystem 20 neu angeordnet, um mit den entsprechenden Merkmalen auf der nachfolgenden Bitmap zusammenzufallen. Das Computersystem 20 ordnet die Verdrehung mittels der Verwendung des Blockabgleichens neu an. Irgendwelche Fehler werden von dem Operator korrigiert. Die neuangeordneten Verdrehungspunkte eines nachfolgenden Gitters von Dreiecken sind in 27B gezeigt. Die neuangeordneten Verdrehungspunkte sind die Eckpunkte der Dreiecke. Genauer umfaßt die zweite Abbildung der nachfolgenden Bitmap von Person 970 den Kopf 972, den Torso 974, den rechten Arm 976, den linken Arm 978, das rechte Bein 980 und das linke Bein 982. In der zweiten Abbildung ist der rechte Arm 980 jedoch angehoben. Die gegenwärtigen Gitter der ersten Abbildung sind über jedem Teil überlagert worden und ihre Verdrehungspunkte neu angeordnet worden, um mit den entsprechenden Merkmalen auf der zweiten Abbildung zusammenzufallen. Die neu angeordneten Verdrehungspunkte definieren die nachfolgenden Gitter von Dreiecken. Die nachfolgenden Gitter umfassen Dreiecke, die mittels des Verbindens der neuangeordneten Verdrehungspunkte gebildet sind. Somit bilden die neuangeordneten Verdrehungspunkte Eckpunkte der Dreiecke in den nachfolgenden Gittern.
  • Fortfahrend mit einem Schritt 922 wird ein nachfolgender Ort für jedes Dreieck der nachfolgenden Bitmap mittels des Computersystems 20 bestimmt. Bei einem Schritt 924 wird der nachfolgende Ort jedes Dreiecks auf der nachfolgenden Bitmap auf der Speichervorrichtung gespeichert. Ein Abschnitt der Daten, die von der nachfolgenden Bitmap abgeleitet wurden, der die zweite Abbildung innerhalb des nachfolgenden Orts von jedem Dreieck definiert, wird bei einem Schritt 926 zurückbehalten. Der Schritt 928 führt zu einem Entscheidungsschritt 928, wo festgelegt wird, ob eine nächste nachfolgende Bitmap existiert.
  • Falls eine nächste nachfolgende Bitmap existiert, führt der Ja-Zweig des Entscheidungsschritts 928 zu einem Schritt 930, wo die nachfolgende Bitmap die gegenwärtige Bitmap wird. Der Schritt 930 kehrt zu dem Schritt 916 zurück, wo eine nachfolgende Bitmap von der gegenwärtigen Bitmapreihe von der CPU 22 empfangen wird. Falls eine nächste nachfolgende Bitmap nicht existiert, wird dem Nein-Zweig des Entscheidungsschritts 928 zu einem Schritt 932 gefolgt, wo eine durchschnittliche Abbildung für jedes Dreieck der gegenwärtigen Bitmapreihe bestimmt wird. Die durchschnittliche Abbildung ist ein Medianwert der Pixel eines Dreiecks. Die Verwendung der Durchschnittsabbildung macht das Verfahren weniger empfänglich für eine Degeneration. Fortfahrend mit einem Schritt 934 wird die Durchschnittsabbildung jedes Dreiecks der gegenwärtigen Bitmapreihe auf die Speichervorrichtung gespeicheri.
  • Als nächstes wird bei einem Schritt 936 der gegenwärtige Ort für jedes Dreieck auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Eine affine Transformationslösung zum Transformieren der Durchschnittsabbildung jedes Dreiecks auf den gegenwärtigen Ort des Dreiecks auf der gegenwärtigen Bitmap wird dann mittels des Computersystems bei einem Schritt 938 berechnet. Bei einem Schritt 940 wird eine vorausgesagte Bitmap mittels des Anwendens der Transformationslösung auf die Durchschnittsabbildung von jedem Dreieck auf den gegenwärtigen Ort jedes Dreiecks auf der gegenwärtigen Bitmap erzeugt. Die vorausgesagte Bitmap wird mit der gegenwärtigen Bitmap bei einem Schritt 942 verglichen.
  • Bei einem Schritt 944 wird eine Korrekturbitmap erzeugt. Die korrigierte Bitmap umfaßt die Datenbits der gegenwärtigen Bitmap, die nicht genau von der vorausgesagten Bitmap vorausgesagt wurden. Die korrigierte Bitmap wird auf die Speichervorrichtung bei einem Schritt 948 gespeicheri. Der Schritt 948 führt zu dem Entscheidungsschritt 950, wo bestimmt wird, ob eine nachfolgende Bitmap existiert.
  • Falls eine nachfolgende Bitmap existiert, wird dem Ja-Zweig des Entscheidungsschritts 950 zu einem Schritt 952 gefolgt, wo die nachfolgende Bitmap die gegenwärtige Bitmap wird. Der Schritt 952 führt zu dem Schritt 936 zurück, wo der gegenwärtige Ort jedes Dreiecks auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen wird. Falls eine nächste nachfolgende Bitmap nicht existiert, wird dem Nein-Zweig des Entscheidungsschritts 950 zu einem Entscheidungsschritt 954 gefolgt, bei dem bestimmt wird, ob eine nachfolgende Bitmapreihe existiert. Falls eine nachfolgende Bitmapreihe nicht existiert, ist die Kodierung beendet, und es wird dem Nein-Zweig des Entscheidungsschritts 954 zu einem Schritt 956 ge folgt. Falls eine nachfolgende Bitmapreihe existiert, wird dem Ja-Zweig des Entscheidungsschritts 954 zu einem Schritt 958 gefolgt, wo die CPU 22 die nachfolgende Bitmapreihe als die gegenwärtige Bitmapreihe empfängt. Der Schritt 956 kehrt zu dem Schritt 902 zurück, wo die Figuren der ersten Abbildung der gegenwärtigen Bitmapreihe von einem Operator identifiziert werden.
  • Das Verfahren nach 26 beschreibt die Erzeugung eines Schemas oder eines Hauptobjekts 90 für die Verwendung durch das Kodierverfahren 64 nach 3. Das Verfahren nutzt das Hauptobjekt 90, um vorausgesagte Objekte 102 zu bilden, wie mit Bezug auf 28 beschrieben wird.
  • Wie in 28 gezeigt ist, beginnt das Verfahren bei einem Schritt 1000 mit dem Abrufen einer gegenwärtigen Bitmapreihe. Die gegenwärtige Bitmapreihe umfaßt mehrere sequentielle Bitmaps oder sequentielle Abbildungen. Die gegenwärtige Bitmapreihe weist eine gegenwärtige Bitmap auf, die mehrere Datenbits umfaßt, welche eine erste Abbildung von der Abbildungsquelle definieren. Die erste Abbildung umfaßt mindestens eine Figur mit mindestens einem Teil.
  • Bei einem Schritt 1002 wird die Durchschnittsabbildung von jedem Dreieck der gegenwärtigen Bitmapreihe von der Speichervorrichtung abgerufen. Die Durchschnittsabbildung für jedes Dreieck wird dann an einen Anzeigeprozessor (nicht gezeigt) bei einem Schritt 704 übergeben. Es ergibt sich, daß das Computersystem 20 (1) optional einen Anzeigeprozessor oder andere gewidmete Bauteile zum Ausführen der Verfahren dieser Erfindung umfassen kann. Fortfahrend mit einem Schritt 1006 wird der gegenwärtige Ort jedes Dreiecks auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Der gegenwärtige Ort jedes Dreiecks wird an den Anzeigeprozessor bei einem Schritt 1008 übergeben.
  • Als nächstes wird eine affine Transformationslösung zum Transformieren der Durchschnittsabbildung jedes Dreiecks auf den gegenwärtigen Ort jedes Dreiecks auf der gegenwärtigen Bitmap mittels des Anzeigeprozessors bei einem Schritt 1010 berechnet. Fortfahrend mit einem Schritt 1012 wird eine vorausgesagte Bitmap mittels des Anzeigeprozessors erzeugt, indem die Transformationslösung zum Transformieren der Durchschnittsabbildung jedes Dreiecks auf den gegenwärtigen Ort jedes Dreiecks auf der gegenwärtigen Bitmap angewendet wird.
  • Bei einem Schritt 1014 wird eine Korrekturbitmap für die gegenwärtige Bitmap von der Speichervorrichtung abgerufen. Die Korrekturbitmap wird an den Anzeigeprozessor bei einem Schritt 716 übergeben. Eine Anzeigebitmap wird dann in dem Anzeigeprozessor mittels des Überlagerns der vorausgesagten Bitmap mit der Korrekturbitmap erzeugt. Der Anzeigeprozessor behält eine Kopie der Durchschnittsabbildung für jedes Dreieck und übergibt die Anzeigebitmap an den Rahmenspeicher zum Anzeigen auf dem Monitor.
  • Als nächstes wird bei einem Entscheidungsschritt 1020 festgestellt, ob eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe existiert, falls eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe existiert, wird dem Ja-Zweig des Entscheidungsschritts 1020 zu einem Schritt 1022 gefolgt. Bei dem Schritt 1022 wird die nachfolgende Bitmap die gegenwärtige Bitmap. Der Schritt 1022 kehrt zu dem Schritt 1006 zurück, wo der Ort für jedes Dreieck der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen wird.
  • Es wird zu dem Entscheidungsschritt 1020 zurückgekehrt. Falls eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe nicht existiert, wird dem Nein-Zweig des Entscheidungsschritts 1020 zu einem Entscheidungsschritt 1024 gefolgt. Bei dem Entscheidungsschritt 1024 wird festgestellt, ob eine nachfolgende Bitmapreihe existiert. Falls eine nachfolgende Bitmapreihe nicht existiert, dann ist das Verfahren beendet, und der Nein-Zweig des Entscheidungsschritts 1024 führt zu einem Schritt 1026. Falls eine nachfolgende Bitmapreihe existiert, wird dem Ja-Zweig des Entscheidungsschritts 1024 zu einem Schritt 1028 gefolgt. Bei dem Schritt 1028 wird die nachfolgende Bitmapreihe die gegenwärtige Bitmapreihe. Der Schritt 1028 kehrt zu dem Schritt 1000 zurück.
  • Schemenkodierung
  • 29 ist ein funktionelles Blockdiagramm eines vereinfachten Kompessionsverfahrens 1100 für die vorzugsweise Verwendung in Verbindung mit dem Videokompressionskodierverfahren 64 und dem Videokompressionsdekodierverfahren 700, die mit Bezug auf die 3A bzw. 23A beschrieben wurden. Das vereinfachte Objektkompressionsverfahren 1100 betrifft das Kodieren und Dekodieren komprimierter Videodarstellungen schemendefinierter Objekte, die vollständig durch eine Videosequenz hindurch von dem Zeitpunkt an definiert sind, an dem das Objekt erstmals erscheint, wie unten detaillierter beschrieben ist.
  • Das vereinfachte Kompressionsverfahren 1100, das Kodierverfahren 64 und das Dekodierverfahren 700 werden vorzugsweise auf allgemeine Videosequenzen oder -informationen angewendet, die mindestens ein schemendefiniertes Objekt und mindestens ein allgemeines Videoobjekt einschließen, das nicht vollständig von seinem ersten Erscheinen an in der Videosequenz definiert ist. Das allgemeine Videoobjekt oder die allgemeinen Objekte der allgemeinen Videosequenz würden vorzugsweise mit Hilfe des Kodierverfahrens 64 und des Dekodierverfahrens 700 verarbeitet, wie hierin oben beschrieben ist. Das schemendefinierte Objekt oder die schemendefinierten Objekte der allgemeinen Videosequenz würden vorzugsweise mit Hilfe des vereinfachten Kompressionsverfahrens 1100 verarbeitet.
  • Das schemendefinierte Objekt oder die schemendefinierten Objekte bilden eine Teilmenge der allgemeinen Objekte in der allgemeinen Videosequenz und verfügen über mehr Informationen, wenn sie erstmals in einer Videosequenz erscheinen, als andere Objekte. Das vereinfachte Kompressionsverfahren 1100 ermöglicht, die zusätzlichen, verfügbaren Informationen für die schemendefinierten Objekte effizienter nutzbar zu machen als die zusätzlichen Informationen mit Hilfe des Kodierverfahrens 64 und des Dekodierverfahrens 700 nutzbar gemacht würden. Als ein Ergebnis kann das Verarbeiten des schemendefinierten Objekts oder der schemendefinierten Objekte der allgemeinen Videosequenz gemäß dem vereinfachten Verfahren 1100 die Bitratenanforderungen und die Effizienz beim Speichern oder Übertragen der allgemeinen Videoinformationen weiter verbessern.
  • Schemendefinierte Objekte sind durch die Videosequenz hindurch vollständig von ihrem ersten Erscheinen an mit Hilfe eines "Schemas" und einer oder mehrerer Trajektorien definiert. Das Schema umfaßt alle Abbildungscharakteristika eines Objekts durch die Videosequenz hindurch und eine oder mehrere Trajektorien brechen das Schema um oder transformieren das Schema, um das Objekt in jedem Rahmen der Videosequenz zu repräsentieren. Bei einigen Anwendungen sind die Objekte weiter durch Beleuchtungs- oder Transparenzfaktoren definiert oder modifiziert, die auch von dem ursprünglichen Erscheinen des Objekts in der Videosequenz an bekannt sind. Schemendefinierte Objekte treten häufig zum Beispiel beim Durchführen von Videokonferenzen und computererzeugten Grafikanwendungen auf. Das vereinfachte Kompressionsverfahren 1100 ist ferner zum Beispiel auf eine allgemeine Videokompression, Multimediaanwendungen, eine digitale Videoarchivierung, ein Netzwerk- oder Internetschmökern (Browsing) und eine Videoübertragung anwendbar.
  • In 29 deutet der Verfahrensblock 1102 an, daß Objektinformationen, die sich auf jedes der mehreren Objekte in einer allgemeinen Videosequenz beziehen, gemäß zum Beispiel den Funktionsblöcken 6696 des Videokompressionskodierverfahrens 64 (3A) erhalten werden. Mindestens eines der Objekte in der Videosequenz ist ein schemenerzeugtes Objekt, für das alle für die Videosequenz benötigten Objektinformationen an dem Beginn der Videosequenz verfügbar oder "bekannt" sind. Die Objektinformationen für das schemendefinierte Objekt oder die schemendefinierten Objekte umfassen ein Schema, das alle Abbildungscharakteristika des Objekts durch die Videosequenz hindurch umfaßt, und ein Trajektorie, die das Schema umbricht oder transformiert, um das Objekt in jedem Rahmen der Videosequenz zu repräsentieren. Die Videosequenz ist in der Hinsicht allgemein, daß sie mindestens ein allgemeines Videoobjekt umfaßt oder umfassen kann, das nicht ein schemenerzeugtes Objekt ist.
  • Mit Bezug auf computererzeugte Grafiken werden zum Beispiel Objekte gewöhnlich mit Hilfe von Schemen (oder mathematisch definierten Objektmodellen) und Trajektorien repräsentiert, die am Beginn einer Videosequenz oder, wenn das Objekt erstmals in der Videosequenz auftaucht, verfügbar sind. Die Trajektorie, die manchmal als Transformationsinformation bezeichnet wird, wird nutzbar gemacht, um das Objekt durch die Videosequenz hindurch zu erzeugen und ist daher verfügbar. Die Transformationsinformation kann in der Form von mehrdimensionalen affinen Transformationen oder perspektivischen Transformationen vorliegen. Wie hierin oben mit Bezug auf das Transformationsverfahren 350 beschrieben wurde, das in 12 gezeigt ist, werden affine Transformationen vorzugsweise repräsentiert durch: x' = ax + by + c x' = dx + ey + f.
  • Alternativ kann die Transformationsinformation in der Form perspektivischer Transformationen vorliegen, die vorzugsweise repräsentiert werden durch: x' = (ax + by + c)\(gx + hy + 1), y' = (dx + ey + f)\(gx + by + 1),wie sie zum Beispiel in Digital Image Warping von George Wolberg, IEEE, 1990 beschrieben worden sind.
  • Wie mit Bezug auf das Schemenerzeugen und das Kodierverfahren nach 26 (z. B. den Schritt 936) beschrieben worden ist, würden viele Schemen und Objekte gewöhnlich mit Hilfe mehr als einer affinen Transformation und daher mehr als einer Trajektorie repräsentiert. Es ergibt sich, daß Bezüge in dieser Beschreibung des vereinfachten Kompressionsverfahrens 1100 auf eine Transformation (ob auf eine affine oder auf eine perspektivische) oder eine Trajektorie im Singular nur darstellend sind und es nicht beabsichtigt ist, eine Einschränkung dieses Verfahrens anzudeuten.
  • Mit Bezug auf Anwendungen zum Abhalten einer Videokonferenz kann zum Beispiel ein Objekt, das mit dem Hintergrund der Videokonferenzszene korrespondiert, als ein schemendefiniertes Obj ekt gebildet werden, das erhalten wird, indem der Hintergrund alleine während einer Periode zur Abbildung eines Hintergrundschemas abgebildet wird. Die Transformationsinformation würde in diesem Fall eine Identitätstransformation sein, die das Objekt in einem statischen Zustand durch die Videoszene hindurch hält. Bei einer solchen Anwendung könnte die Vereinfachung der Darstellung des Hintergrundobjekts die benötigte Bandbreite zum Übertragen einer Videosequenz oder einer Videokonferenz deutlich verringern.
  • Es ergibt sich, daß diese zwei Beispiele nur erläuternd und nicht einschränkend für die Typen und Anwendungen von Schemen sind. Zum Beispiel könnte ein computererzeugter Grafikhintergrund, der mit Hilfe einer einfachen Translation transformiert wird, entweder mit anderen computererzeugten Grafikobjekten oder Videografikobjekten genutzt werden.
  • Der Verfahrensblock 1104 deutet an, daß die schemendefinierten Objekte sich von den allgemeinen Objekten bei der Objektinformation unterscheiden, die sich auf jedes der mehreren Objekte in der Videosequenz beziehen. Die schemendefinierten Objekte werden gemäß den folgenden Verfahrensschritten des vereinfachten Kompressionsverfahrens 1100 verarbeitet. Die allgemeinen Objekte werden vorzugsweise gemäß dem Kodierverfahren 64 und dem Dekodierverfahren 700 nach 3A bzw. 23A verarbeitet. Die schemendefinierten Objekte können zum Beispiel unterschieden werden, indem sie markiert werden, zum Beispiel wenn sie geschaffen werden.
  • Mit Bezug auf die Anwendung des Abhaltens einer Videokonferenz kann beispielsweise ein Objekt, das mit dem Hintergrund der Videokonferenzszene korrespondiert ein schemendefiniertes Objekt sein, das erhalten worden ist, indem der Hintergrund alleine während einer Periode zur Abbildung des Hintergrunds abgebildet worden ist. Als ein anderes Beispiel werden computererzeugte Grafikobjekte typischerweise vollständig mit Hilfe von Daten oder Algorithmen erzeugt und würden typischerweise schemendefinierte Objekte sein. In allgemeinen Spielfilmvideosequenzen könnte ein Kodier-Operator manuell einige Objekte als schemendefinierte Objekte markieren.
  • Der Verfahrensblock 1106 deutet an, daß die Schemeninformationen und die Transformationsinformationen mit Hilfe eines vereinfachten Kodierverfahrens kodiert werden. Vorzugsweise werden die Schemeninformationen mit Hilfe eines herkömmlichen verlustbehafteten Kodierverfahrens, zum Beispiel einer Wavelet- oder DCT-Kodierung aufgezeichnet, wie hierin oben beschrieben worden ist. Wann immer ein schemendefiniertes Objekt mit Hilfe zusätzlicher Faktoren, zum Beispiel Beleuchtungs- oder Transparenzfaktoren, (die von dem ursprünglichen Erscheinen des Objekts in der Videosequenz an bekannt sind) definiert oder modifiziert wird, würden die zusätzlichen Faktoren auch in der gleichen Weise wie das Schema kodiert werden. Das Kodieren des Schemas und der zusätzlichen Faktoren kann ferner beispielsweise die Anwendung des Vorkompressionsextrapolationsverfahrens 400 ( 17A und 17B) umfassen, um eine gesteigerte Kompression oder Kodierung zu schaffen.
  • Die Trajektorien oder Transformationsinformationen werden als Trajektorien repräsentiert und vorzugsweise mit Hilfe eines verlustfreien Kodierverfahrens, zum Beispiel einer QM-Kodierung, wie sie bei JPEG: Still Image Data Compression Standard, William B. Pennebaker und Joan L. Mitchell, Van Nostrand Reinhold, New York, 1993 beschrieben worden ist, kodiert oder komprimiert. Es versteht sich, daß andere verlustfreie Kodierverfahren, zum Beispiel eine Huffman-Kodierung geeignet wäre. Zu Darstellungszwecken bezieht sich die folgende Beschreibung auf die QM-Kodierung.
  • Die Orte der Merkmalspunkte in dem Schema werden als die Basis von jeder Trajektorie festgelegt. Die X- und Y-Komponenten von jeder Trajektorie werden differentiell kodiert und verkettet, bevor sie einer QM-Kodierung unterzogen werden, um eine Darstellung oder einen Bitstrom mit den Koordinaten der Merkmalspunkte oder Pixel in dem Schema und die Koordinatenunterschiede zwischen den Merkmalspunkten oder Pixeln in dem Schema und den entsprechenden Merkmalspunkten oder Pixeln des entsprechenden Objekts in den darauffolgenden Abbildungsrahmen zu bilden. Für eine Videosequenz mit einer Anzahl T von Abbildungsrahmen und einem Schema mit einer Anzahl N von Trajektorien für Merkmalspunktorte, die als (xi (j), yi (j)), i = 1,..., T, j = 1,...,N, dargestellt werden, sind die Werte, die vorzugsweise QM-kodiert sind: x1 (1), Δx2(1),..., ΔxT(1), y1 (1), Δy2(1),..., ΔyT(1), x1 (1), ΔX2(2),..., ΔxT(2), y1 (2), Δy2(2),..., ΔyT(2), x1 (N), Δx2(N),..., ΔxT(N), y1 (N), Δy2(N),..., ΔyT(N),
  • Der Verfahrensblock 1108 deutet an, daß die kodierten schemenerzeugten Objekte gemäß der typischen Verwendung von kodierten oder komprimierten digitalen Informationen, einschließlich Multimediaanwendungen, digitaler Videoarchivierung, Netzwerk- oder Internetschmökern (Browsing) und Videoübertragung, gespeichert oder übertragen und wiederhergestellt oder empfangen werden.
  • Der Verfahrenblock 1110 deutet an, daß die kodierten schemenerzeugten Objekte, die aus dem Speicher wiederhergestellt worden sind oder über eine Übertragung empfangen worden sind, dekodiert werden. Die kodierte Trajektorie wird QM-dekodiert und das Schema wird gemäß dem Format dekodiert, in dem es kodiert wurde (z. B. DCT).
  • Nachdem die Prinzipien der Erfindung für eine bevorzugte Ausführungsform dargestellt und beschrieben worden sind, sollte es für einen Fachmann ersichtlich sein, daß die Ausführungsform in ihrer Anordnung und in ihren Details modifiziert werden kann, ohne von den Prinzipien der Erfindung abzuweichen.

Claims (16)

  1. Verfahren zum Kodieren von Objekten für eine Videosequenz, wobei die Videosequenz mehrere Rahmen umfaßt, die Objekte ein oder mehrere allgemeine Objekte umfassen und das eine oder die mehreren allgemeinen Objekte jeweils mit Hilfe einer Rahmen-zu-Rahmen-Bewegungsschätzung und einer Erzeugung eines Fehlersignals kodiert werden, gekennzeichnet durch: Kennzeichnen (1104) eines schemendefinierten Objekts von dem einen oder den mehreren allgemeinen Objekten in der Videosequenz, wobei das schemendefinierte Objekt ein Schema und Trajektorieninformationen für das schemendefinierte Objekt in den mehreren Rahmen der Videosequenz umfaßt, um eine zusammengesetzte Bitmap für das Schema zu erzeugen; und Kodieren (1106) des schemendefinierten Objekts.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Kodieren (1106) das Komprimieren der zusammengesetzten Bitmap als eine Abbildung umfaßt, um eine räumliche Korrelation in der zusammengesetzten Bitmap auszunutzen.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das Kodieren (1106) das Komprimieren der Trajektorieninformationen umfaßt.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß das Komprimieren der Trajektorieninformationen eine QM-Kodierung verwendet.
  5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das Kennzeichnen (1104) ein Berechnen der Trajektorieninformationen basierend auf einer perspektivischen Rahmen-zu-Rahmen-Transformation des Schemas in der Videosequenz umfaßt.
  6. Verfahren nach einem der Ansprüche 1 bis 5, gekennzeichnet durch das Kennzeichnen (1104) und das Kodieren (1106) eines anderen oder mehrerer anderer schemendefinierter Objekte in der Videosequenz.
  7. Verfahren zum Dekodieren von Objekten einer Videosequenz, wobei die Videosequenz mehrere Rahmen umfaßt und die Objekte ein oder mehrere allgemeine Objekte umfassen und das eine oder die mehreren allgemeinen Objekte jeweils mit Hilfe einer Kompensation der Rahmen-zu-Rahmen-Bewegung und einer Fehlersignalanpassung dekodiert werden, gekennzeichnet durch: Dekodieren (1110) eines schemendefinierten Objekts der Videosequenz, wobei das schemendefinierte Objekt ausgelassene Pixel in einem oder mehreren Rahmen der Videosequenz aufweist, wobei das schemendefinierte Objekt ein Schema und Trajektorieninformationen umfaßt, wobei eine zusammengesetzte Bitmap für das Schema Pixelinformationen für das schemendefinierte Objekt durch die Videosequenz hindurch umfaßt, wodurch die verdeckten Pixel in der zusammengesetzten Bitmap repräsentiert werden.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die zusammengesetzte Bitmap vorher als eine Abbildung komprimiert worden ist, um die räumliche Korrelation auszunutzen, und das Dekodieren (1110) ein Dekomprimieren der zusammengesetzten Bitmap umfaßt.
  9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß die Trajektorieninformationen vorher komprimiert worden sind und das Dekodieren (1110) ein Dekomprimieren der Trajektorieninformationen umfaßt.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß das Dekomprimieren der Traj ektorieninformationen eine QM-Dekodierung verwendet.
  11. Verfahren nach einem der Ansprüche 7 bis 10, gekennzeichnet durch ein Umbrechen des Schemas gemäß einer perspektivischen Transformation basierend auf den Traj ektorieninformationen.
  12. Verfahren nach einem der Ansprüche 7 bis 11, gekennzeichnet durch ein Dekodieren eines anderen oder mehrerer anderer schemendefinierter Objekte in der Videosequenz.
  13. Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß für jedes der Objekte eine Schicht der Videosequenz das Objekt umfaßt.
  14. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, daß für jeden der mehreren Rahmen der Videosequenz eine Per-Objektmaske Pixel in dem Rahmen für jedes der schemendefinierten und allgemeinen Objekte angibt.
  15. Verfahren nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß die Trajektorieninformationen eine Reihe von x- und y-Koordinaten für jeden von mehreren Merkmalspunkten umfassen.
  16. Verfahren nach einem der Ansprüche 1 bis 15, dadurch gekennzeichnet, daß ein Hintergrund mittels eines schemendefinierten Objekts repräsentiert wird.
DE69723550T 1996-03-22 1997-03-21 Kodierung und dekodierung von grafischen symbolen Expired - Lifetime DE69723550T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US621012 1996-03-22
US08/621,012 US5778098A (en) 1996-03-22 1996-03-22 Sprite coding
PCT/US1997/004652 WO1997035276A1 (en) 1996-03-22 1997-03-21 Sprite coding

Publications (2)

Publication Number Publication Date
DE69723550D1 DE69723550D1 (de) 2003-08-21
DE69723550T2 true DE69723550T2 (de) 2004-04-15

Family

ID=24488373

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69723550T Expired - Lifetime DE69723550T2 (de) 1996-03-22 1997-03-21 Kodierung und dekodierung von grafischen symbolen

Country Status (6)

Country Link
US (1) US5778098A (de)
EP (1) EP0888592B1 (de)
JP (1) JP4377455B2 (de)
AT (1) ATE245329T1 (de)
DE (1) DE69723550T2 (de)
WO (1) WO1997035276A1 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US5933535A (en) * 1995-10-05 1999-08-03 Microsoft Corporation Object-based video compression process employing arbitrarily-shaped features
US6037988A (en) * 1996-03-22 2000-03-14 Microsoft Corp Method for generating sprites for object-based coding sytems using masks and rounding average
US6571016B1 (en) * 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US5861920A (en) * 1996-11-08 1999-01-19 Hughes Electronics Corporation Hierarchical low latency video compression
US6037983A (en) * 1996-11-08 2000-03-14 Hughes Electronics Corporation High quality reduced latency transmission of video objects
JP2001507541A (ja) * 1996-12-30 2001-06-05 シャープ株式会社 スプライトベースによるビデオ符号化システム
EP1276326A3 (de) 1997-02-14 2003-12-10 The Trustees of Columbia University in the City of New York Objektbasiertes audiovisuelles Endgerät und entsprechende Datenstromstruktur
US7199836B1 (en) * 1998-02-13 2007-04-03 The Trustees Of Columbia University In The City Of New York Object-based audio-visual terminal and bitstream structure
US6400831B2 (en) 1998-04-02 2002-06-04 Microsoft Corporation Semantic video object segmentation and tracking
US6256418B1 (en) * 1998-04-13 2001-07-03 Compaq Computer Corporation Method and system for compressing a sequence of images including a moving figure
US6269172B1 (en) 1998-04-13 2001-07-31 Compaq Computer Corporation Method for tracking the motion of a 3-D figure
US6240198B1 (en) 1998-04-13 2001-05-29 Compaq Computer Corporation Method for figure tracking using 2-D registration
US6041143A (en) * 1998-04-14 2000-03-21 Teralogic Incorporated Multiresolution compressed image management system and method
US8189662B2 (en) * 1999-07-27 2012-05-29 Microsoft Corporation Selection compression
AU758390B2 (en) * 1998-07-27 2003-03-20 Webtv Networks, Inc. Remote computer access
US7360230B1 (en) * 1998-07-27 2008-04-15 Microsoft Corporation Overlay management
US6711278B1 (en) * 1998-09-10 2004-03-23 Microsoft Corporation Tracking semantic objects in vector image sequences
JP4226730B2 (ja) * 1999-01-28 2009-02-18 株式会社東芝 物体領域情報生成方法及び物体領域情報生成装置並びに映像情報処理方法及び情報処理装置
KR20010108159A (ko) * 1999-01-29 2001-12-07 다니구찌 이찌로오, 기타오카 다카시 화상 특징 부호화 방법 및 화상 검색 방법
US6977664B1 (en) * 1999-09-24 2005-12-20 Nippon Telegraph And Telephone Corporation Method for separating background sprite and foreground object and method for extracting segmentation mask and the apparatus
JP2001266159A (ja) * 2000-03-17 2001-09-28 Toshiba Corp 物体領域情報生成方法及び物体領域情報生成装置並びに近似多角形生成方法及び近似多角形生成装置
KR100415266B1 (ko) * 2000-05-11 2004-01-16 가부시끼가이샤 도시바 물체영역정보 기술방법과 물체영역정보 생성장치 및 기록매체
US6738520B1 (en) * 2000-06-19 2004-05-18 Intel Corporation Method of compressing an image
US7046728B1 (en) 2000-06-30 2006-05-16 Intel Corporation Method of video coding the movement of a human face from a sequence of images
JP4011327B2 (ja) * 2000-11-15 2007-11-21 株式会社レクサー・リサーチ 表示オブジェクト提供装置、表示オブジェクト提供方式及び表示オブジェクト提供プログラム
US20020107988A1 (en) * 2001-02-05 2002-08-08 James Jordan In-line compression system for low-bandwidth client-server data link
US7321624B1 (en) * 2001-03-16 2008-01-22 Objectvideo, Inc. Bit-rate allocation system for object-based video encoding
JP2002359842A (ja) * 2001-05-31 2002-12-13 Monolith Co Ltd 画像符号化方法と装置および画像復号方法と装置
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7421129B2 (en) * 2002-09-04 2008-09-02 Microsoft Corporation Image compression and synthesis for video effects
US7085434B2 (en) * 2002-10-01 2006-08-01 International Business Machines Corporation Sprite recognition in animated sequences
US7408986B2 (en) * 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
US7558320B2 (en) * 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
IL170320A (en) * 2005-08-17 2010-04-29 Orad Hi Tec Systems Ltd System and method for managing the visual effects insertion in a video stream
EP2829042A1 (de) * 2012-03-22 2015-01-28 Nokia Siemens Networks OY Verbesserter richtliniensteuerungsrahmen für objektbasierte medienübertragung in entwickelten paketsystemen
US10462490B2 (en) * 2015-11-06 2019-10-29 Raytheon Company Efficient video data representation and content based video retrieval framework
US10575007B2 (en) 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
US10157480B2 (en) 2016-06-24 2018-12-18 Microsoft Technology Licensing, Llc Efficient decoding and rendering of inter-coded blocks in a graphics pipeline
US11197010B2 (en) 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3873972A (en) * 1971-11-01 1975-03-25 Theodore H Levine Analytic character recognition system
US4751742A (en) * 1985-05-07 1988-06-14 Avelex Priority coding of transform coefficients
US4754492A (en) * 1985-06-03 1988-06-28 Picturetel Corporation Method and system for adapting a digitized signal processing system for block processing with minimal blocking artifacts
JP2540809B2 (ja) * 1986-07-30 1996-10-09 ソニー株式会社 高能率符号化装置
US4745633A (en) * 1986-08-18 1988-05-17 Peter Waksman Optical image encoding and comparing using scan autocorrelation
US5070465A (en) * 1987-02-25 1991-12-03 Sony Corporation Video image transforming method and apparatus
US4912549A (en) * 1988-09-07 1990-03-27 Rca Licensing Corporation Video signal synchronization system as for an extended definition widescreen television signal processing system
GB8909498D0 (en) * 1989-04-26 1989-06-14 British Telecomm Motion estimator
GB9001468D0 (en) * 1990-01-23 1990-03-21 Sarnoff David Res Center Computing multiple motions within an image region
JP2569219B2 (ja) * 1990-01-31 1997-01-08 富士通株式会社 動画像予測方式
US5148497A (en) * 1990-02-14 1992-09-15 Massachusetts Institute Of Technology Fractal-based image compression and interpolation
JPH082107B2 (ja) * 1990-03-02 1996-01-10 国際電信電話株式会社 動画像のハイブリッド符号化方法及びその装置
US5103306A (en) * 1990-03-28 1992-04-07 Transitions Research Corporation Digital image compression employing a resolution gradient
US4999705A (en) * 1990-05-03 1991-03-12 At&T Bell Laboratories Three dimensional motion compensated video coding
US5155594A (en) * 1990-05-11 1992-10-13 Picturetel Corporation Hierarchical encoding method and apparatus employing background references for efficiently communicating image sequences
US5086477A (en) * 1990-08-07 1992-02-04 Northwest Technology Corp. Automated system for extracting design and layout information from an integrated circuit
US5020121A (en) * 1990-08-16 1991-05-28 Hewlett-Packard Company Neighborhood block prediction bit compression
GB9019538D0 (en) * 1990-09-07 1990-10-24 Philips Electronic Associated Tracking a moving object
EP0497586A3 (en) * 1991-01-31 1994-05-18 Sony Corp Motion detection circuit
JPH04334188A (ja) * 1991-05-08 1992-11-20 Nec Corp 動画像信号の符号化方式
JP2866222B2 (ja) * 1991-06-12 1999-03-08 三菱電機株式会社 動き補償予測方式
KR930001678A (ko) * 1991-06-13 1993-01-16 강진구 영상 신호에 있어서의 잡음 검출 알고리즘
US5410358A (en) * 1991-07-23 1995-04-25 British Telecommunications Public Limited Company Method and device for frame interpolation of a moving image
US5259040A (en) * 1991-10-04 1993-11-02 David Sarnoff Research Center, Inc. Method for determining sensor motion and scene structure and image processing system therefor
JP3068304B2 (ja) * 1992-01-21 2000-07-24 日本電気株式会社 動画像符号化方式および復号化方式
US5420638A (en) * 1992-04-14 1995-05-30 U.S. Philips Corporation Subassembly for coding images with refresh correction of the data to be coded, and subassembly for decording signals representing these images and previously coded by means of a subassembly of the former kind
JPH06113287A (ja) * 1992-09-30 1994-04-22 Matsushita Electric Ind Co Ltd 画像符号化装置と画像復号化装置
TW250555B (de) * 1992-09-30 1995-07-01 Hudson Kk
US5424783A (en) * 1993-02-10 1995-06-13 Wong; Yiu-Fai Clustering filter method for noise filtering, scale-space filtering and image processing
US5592228A (en) * 1993-03-04 1997-01-07 Kabushiki Kaisha Toshiba Video encoder using global motion estimation and polygonal patch motion estimation
US5329311A (en) * 1993-05-11 1994-07-12 The University Of British Columbia System for determining noise content of a video signal in the disclosure
DE69416717T2 (de) * 1993-05-21 1999-10-07 Nippon Telegraph And Telephone Corp., Tokio/Tokyo Bewegtbildkoder und -dekoder
DE69329332T2 (de) * 1993-05-26 2001-02-22 Stmicroelectronics S.R.L., Agrate Brianza Fernsehbilderdekodierarchitektur zur Ausführung eines 40 ms-Prozessalgorithmus in HDTV
US5517327A (en) * 1993-06-30 1996-05-14 Minolta Camera Kabushiki Kaisha Data processor for image data using orthogonal transformation
JP2576771B2 (ja) * 1993-09-28 1997-01-29 日本電気株式会社 動き補償予測装置
US5574572A (en) * 1994-09-07 1996-11-12 Harris Corporation Video scaling method and device
US5621660A (en) * 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system

Also Published As

Publication number Publication date
US5778098A (en) 1998-07-07
ATE245329T1 (de) 2003-08-15
JP4377455B2 (ja) 2009-12-02
EP0888592B1 (de) 2003-07-16
EP0888592A4 (de) 2001-07-18
JP2000507412A (ja) 2000-06-13
DE69723550D1 (de) 2003-08-21
WO1997035276A1 (en) 1997-09-25
EP0888592A1 (de) 1999-01-07

Similar Documents

Publication Publication Date Title
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE69421837T2 (de) Videokoder und -dekoder
DE19626615C2 (de) Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet
DE69523703T2 (de) Videobildkomprimierung unter Verwendung einer hierarchischen Vektorquantisierung von gewichteten Wellenstückchen
DE60308255T2 (de) 2D-Transformationen zur Bild- und Videokodierung
US5799113A (en) Method for expanding contracted video images
DE69130214T2 (de) Bilddatenkompression mit adaptiver Blockgrössenauswahl
DE69525127T2 (de) Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation
DE69712676T2 (de) Verfahren zur Videokodierung
DE69636277T2 (de) Verfahren und Vorrichtung zur Erzeugung von Farbart-Forminformation einer Video-Objektebene in einem Videosignal
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE19626600A1 (de) Reversible-Wavelet-Transformationen und eingebettete Kodestrom-Manipulation
DE69521255T2 (de) Verfahren zum betrieb eines interaktiven bildanzeigesystems und bildanzeigesystem zur durchführung des verfahrens
DE60203850T2 (de) System und Verfahren zum Verarbeiten von Bildern mit aufgelöster Mosaikstruk- tur, um durch Farb-Aliasing hervorgerufenen Artefakte zu verringern.
DE69937833T2 (de) Verfahren und vorrichtung zur skalierbaren formkodierung
DE69915843T2 (de) Teilbandkodierung/-dekodierung
EP0985317B1 (de) Verfahren zur codierung und decodierung eines digitalisierten bildes
DE69430738T2 (de) Kompatible teilbandkodierung/dekodierung von fernsehbildern
DE60001563T2 (de) Verfahren zur kodierung/dekodierung von bildern
DE69918980T2 (de) Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung
DE3545106C2 (de)
EP1116184B1 (de) Verfahren und anordnung zur bearbeitung eines digitalisierten bildes mit bildpunkten
DE69909880T2 (de) Dekodierung eines komprimierten digitalen Bildsignals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition