DE69634962T2 - Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes - Google Patents

Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes Download PDF

Info

Publication number
DE69634962T2
DE69634962T2 DE69634962T DE69634962T DE69634962T2 DE 69634962 T2 DE69634962 T2 DE 69634962T2 DE 69634962 T DE69634962 T DE 69634962T DE 69634962 T DE69634962 T DE 69634962T DE 69634962 T2 DE69634962 T2 DE 69634962T2
Authority
DE
Germany
Prior art keywords
pixel
pixels
block
circumference
transformation
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
DE69634962T
Other languages
English (en)
Other versions
DE69634962D1 (de
Inventor
Ming-Chieh Bellevue Lee
Wei-ge Issaquah Chen
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 DE69634962D1 publication Critical patent/DE69634962D1/de
Publication of DE69634962T2 publication Critical patent/DE69634962T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • G06V10/7515Shifting the patterns to accommodate for positional errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/54Motion estimation other than block-based using feature points or meshes
    • 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/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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

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. 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 Abbildungsrah mens 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 Dimensionen 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 Transformationsblockfehler 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.
  • Die Erfindung umfaßt ein Videokompressionskodierverfahren zum Komprimieren digitalisierter Videosignale, die eine Anzeige einer Bewegung in Videosequenzen aus mehreren Abbildungsrahmen repräsentieren. Das Kodierverfahren nutzt eine objekt-basierte Videokompression, um die Genauigkeit und Vielseitigkeit der Zwischenrahmenbewegungskodierung und der Kodierung von Innerrahmenabbildungsmerkmalen zu verbessern. Videoinformation wird eher bezüglich von Objekten beliebiger Gestaltungen als bezüglich fester regelmäßiger Anordnungen von Pixeln wie in gewöhnlichen Videokompressionsverfahren komprimiert. Dieses verringert die Fehlerbestandteile und verbessert hierdurch die Kompressionseffizienz und Genauigkeit. Als ein weiterer Vorteil schafft objekt-basierte Videokompression gemäß der Erfindung interaktive Videoeditierfähigkeiten zum Verarbeiten komprimierter Videoinformation.
  • Bei einer bevorzugten Ausführungsform umfaßt der Prozeß oder das Verfahren der Erfindung das Identifizieren von Abbildungsmerkmalen einer beliebigen Gestaltung in einem ersten Videoabbildungsrahmen und das Definieren mehrerer voneinander verschiedener Merkmalpunkte innerhalb des Abbildungsmerkmals. Die Merkmalpunkte des Abbildungsmerkmals in dem ersten Videoabbildungsrahmen werden mit entsprechenden Merkmalpunkten des Abbildungsmerkmals in einem darauffolgenden zweiten Videoabbildungsrahmen korreliert, um hierdurch eine Schätzung des Abbildungsmerkmals in dem zweiten Videoabbildungsrahmen zu bestimmen. Eine Differenz zwischen dem geschätzten und dem tatsächlichen Abbildungsmerkmal in dem zweiten Videoabbildungsrahmen wird bestimmt und in ein komprimiertes Format kodiert.
  • Das Kodierverfahren der Erfindung löst die Defizite der herkömmlichen blockbasierten Videokompressionsverfahren. Das Kodierverfahren nutzt vorzugsweise ein mehrdimensionales Transformationsverfahren zum Repräsentieren von Abbildungen zwischen korrespondierenden Objekten in aufeinanderfolgenden Rahmen. Die mehreren Dimensionen der Transformation beziehen sich auf die Anzahl von Koordinaten in ihrer verallgemeinerten Form. Die mehrdimensionale Transformation ist in der Lage, eine komplexe Bewegung zu repräsentieren, die irgendeine Verschiebung, eine Drehung, eine Vergrößerung und eine Scherung oder alles hiervon umfaßt. Als ein Ergebnis kann die komplexe Bewegung von Objekten zwischen aufeinanderfolgenden Abbildungsrahmen mit relativ wenig Transformationsfehlern repräsentiert werden.
  • Eine andere Fehlerquelle bei herkömmlichen blockbasierten Videokompressionsverfahren ist die Bewegung zwischen Objekten, die innerhalb eines Transformationsblocks umfaßt sind. Die objekt-basierte Videokompression oder Kodierung der Erfindung beseitigt im wesentlichen die relative Bewegung zwischen Objekten innerhalb von Transformationsblöcken. Als ein Ergebnis wird ferner der Transformationsfehler, der aus der Zwischen-Objektbewegung entsteht, wesentlich verringert. Die niedrigen Transformationsfehler, die aus dem Kodierver fahren der Erfindung entstehen, ermöglichen es, Kompressionsverhältnisse zu schaffen, die bis zu 300% größer sind als solche, die mit bisherigen Kodierverfahren wie MPEG-2 zu erreichen sind.
  • Die vorangehenden und andere Merkmale und Vorteile der bevorzugten Ausführungsform der Erfindung werden leichter aus der folgenden detaillierten Beschreibung deutlich, die mit Bezug auf die begleitenden Zeichnungen fortgesetzt wird.
  • Die Erfindung wird im folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf eine Zeichnung näher erläutert. Hierbei zeigen:
  • 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 entsprechen de 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 dem zweiten aufeinanderfolgenden Ab bildungsrahmen 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 wird, 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 einer 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.
  • 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 die Erhaltung der Da tenbits an Speicherorten in dem Speichersystem 24 wie auch anderes Verarbeiten der Signale umfaßt. 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 Abbildungsrahmen korrespondieren, ein digitalisiertes 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 rechteckige Festkörpexobjekte 56a und 56b in den entsprechenden Abbildungsrahmen 54a und 54b und das Pyramidenabbildungsmerkmal 58 als Pyramidenobjekte 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 würde 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 Orten relativ zu der Pyramide 58 gezeigt und würde sich bewegend und relativ zu der Pyramide drehend "erscheinen", wenn er in einer Videosequenz gezeigt würde. 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 vereinfachte 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 von mehreren Abbildungsrahmen darstellen. Die Kompression von Videoinformation (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 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 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. 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 objekt-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 Abbildungsrahmens 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 jede 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 seinen 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 neuidentifizierten 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 das quantisierte frühere 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 Objekte 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 von mehreren Abbildungsrahmen zu erhalten.
  • Das Kodierverfahren 64 wird mit Bezug auf das Kodieren von Videoinformation beschrieben, die zu 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 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 Objekte 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 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 Objekten, 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 Segmentierung 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 Rahmen 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 wcoord bestehen 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 dein 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 Abbildungsrahmens 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 von 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.
  • Polygonabgleichverfahren
  • 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.
  • Ein Polygonblockverfahren 200 wird mit Bezug auf 7A und 7B beschrieben, die vereinfachte Darstellungen des Anzeigeschirms 50 darstellen, und zwei aufeinanderfolgende Abbildungsrahmen 202a und 202b zeigen, in denen ein Abbildungsmerkmal 204 in Form der Objekte 204a bzw. 204b dargestellt ist.
  • Ein Funktionsblock 206 deutet an, daß die Objekte 204a und 204b für die Abbildungsrahmen 202a und 202b identifiziert und mittels zum Beispiel des Objektsegmentierungsverfahrens 140 segmentiert werden.
  • Ein Funktionsblock 208 deutet an, daß Abmessungen für einen Pixelblock 210b (z.B. 15 × 15 Pixel) festgelegt werden, der auf Objekt 204b 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 Region 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 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 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 00230001
    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 – yl'),bei dem die Begriffe xi und yj mit den entsprechenden x- und y-Koordinatenorten des Pixels im Pixelblock 210b korrespondieren und die Begriffe xk' und yl' mit den entsprechenden x- und y-Koordinatenorten des korrespondierenden vorherigen Pixels in dem Pixelblock 210a korrespondieren.
  • Ein Funktionsblock 236 repräsentiert eine Anfrage, 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 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 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 10A10G 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 umfassen. 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) bestimmt 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 Piselblock 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 10B10G 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 schritt weise 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 Pixelblock 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 11B11F 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 in dem Pixelblock 294 umfaßt sind, und das Addieren der Pixelkorrelationswerte für die Reihe von Pixeln A'–E', die in dem Pixelblock 294, jedoch nicht in dem Pixelblock 262 umfaßt sind. Dieses Verfahren ersetzt für jede der Spaltenkorrelationen 302(4)302(8) eine Subtraktion und eine Addition für die fünf Additionen, die benötigt würden, um jede Spaltenkorrelation in herkömmlicher Weise zu bestimmen. Mit Pixelblöcken größerer Abmessungen, wie sie bevorzugt werden, wird die Verbesserung dieses Verfahrens gegenüber herkömmlichen Berechnungsverfahren sogar 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ß der Korrelationsprozeß 260 mit Bezug auf 911 beschrieben worden ist, um bestimmte Merkmale der Erfindung darstellen. Wie in den Darstellungen gezeigt 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 und 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 + fund werden mit Bezug auf alle Pixel bestimmt, für die Bewegungssektoren 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 aufweisen (d.h. einen absoluten Fehlerwert zwischen den Pixelblöcken).
  • Im Gegensatz dazu werden Pixelarrays, 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 Wertfehlerbestimmung 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 Wertfehler 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 00320001
  • 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 Transformationsglei chungen 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 Transformationsblö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, als man zum Repräsentieren einer komplexen Bewegung benötigt, repräsentiert werden. 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 380a–380d 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 Signalrauschabstand mindestens um einen vom Nutzer gewählten Schwellwert größer als der gegenwärtige Signal rauschabstand 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 wer den. 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 von 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 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äß dieses Verfahrens 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 nicht null Farbbestandteilwerte aufweisen, die vorher mittels dieses Verfahrens zugewiesen worden sind.
  • Ein Vorteil eines Objeltextrapolationsverfahrens 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 Nullwert-Pixel 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 00420001
    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 II 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 Abbildungsbestandteil 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 L2 empfängt und Pixel mit Nullwert zwischen jedes angrenzende Paar von Pixeln stellt. Ein Interpolationsfilter 539 weist den Nullwert-Pixeln einen Pixelwert zu, der einen 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 bestimmmt 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. Entsprechend 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önnte.
  • 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 12b, 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 Kompressionsverfahren kodiert wird, zum Beispiel mittels diskreter Cosinustransformationskodierung (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 Objektmasken 66, Merkmalpunkte 68, komprimierte Hauptobjekte 36, affine Transformationskoeffizienten 104 und 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 ähnlich 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 jede von 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-Achsenkoordinaten- 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 826c entsprechen. Die Richtungen 826a826c sind relativ zu einer vorausgehenden Ausrichtungsrichtung 828 zwischen einem gegenwärtigen Pixel 830 und einem angrenzenden Pixel 832 definiert, daß 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 Oientierung (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 Odnung 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 Odnung höhere Kompressionsverhältnisse liefern können. Huffmanncodes höherer Odnung umfassen zum Beispiel das Zuweisen vorbestimmter Werte zu vorausgewählten Sequenzen der Huffmanncodes erster Odnung.
  • 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 umfaßt 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 Ot 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 Ots 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 Ot für jedes Dreieck in der nachfolgenden Bitmap wird bestimmt und in der Speichervorrichtung gespeichert. Ein Abschnitt von Daten der nachfolgenden Bitmap, die die zweite Abbildung innerhalb des nachfolgenden Ots jedes Dreiecks definiert, wird für eine weitere Nutzung zurückbehalten.
  • Das Verfahren zum Bestimmen und Speichern des gegenwärtigen und nachfolgenden Ots 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 Bitmapserie 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 Ot 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 Ot für jedes Dreieck der gegenwärtigen Bitmap berechnet und die Transformationslösung auf die Durchschnittsabbil dung 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 Ot von jedem der Dreiecke der Schemabitmap wird bestimmt und auf die Speichervorrichtung gespeichert.
  • Während der Wiedergabe wird ein nachfolgender Ot für jedes Dreieck von einem Steuerprogramm empfangen. Die Schemabitmap und der nachfolgende Ot für jedes Dreieck auf der Schemabitmap werden von der Speichervorrichtung abgerufen und an den Anzeigeprozessor übergeben. Der nachfolgende Ot 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 Otes jedes Dreiecks definiert. Der Anzeigeprozessor übergibt die nachfolgende Schemabitmap an einen Monitor zum Anzeigen. Jedes Verfahren auf Anforderung wird für jeden nachfolgenden Ot 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 982 korrespondieren. Die Verdrehungspunkte werden auf jedem Teil der Person 970 so ausgewählt, daß die Verdrehungspunkte mit den Merkmalen zusammenfallen, wo 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 Ot für jedes Dreieck in der gegenwärtigen Bitmap. Der gegenwärtige Ot jedes Dreiecks auf der gegenwärtigen Bitmap ist mittels des Ots der Verdrehungspunkte bestimmt, die die Eckpunkte des Dreiecks bilden. Bei einem Schritt 912 wird der gegenwärtige Ot des Dreiecks auf die Speichervorrichtung gespeichert. Ein Abschnitt der Daten, die von der gegenwärtigen Bitmap abgeleitet wurden, der die erste Abbildung innerhalb des gegenwärtigen Ots 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 Ot für jedes Dreieck der nachfolgenden Bitmap mittels des Computersystems 20 bestimmt. Bei einem Schritt 924 wird der nachfolgende Ot 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 Ots 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.
  • Fall 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 gespeichert.
  • Als nächstes wird bei einem Schritt 936 der gegenwärtige Ot 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 Ot 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 Ot 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 gespeichert. 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 Ot 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 gefolgt. Falls eine nachfolgende Bitmapreihe existiert, wird dem Ja-Zweig des Entscheidungs schritts 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 Ot jedes Dreiecks auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Der gegenwärtige Ot 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 Ot 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 Ot 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 Ot 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.
  • 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 (11)

  1. Verfahren zum Extrapolieren von Pixelwerten eines Videoobjekts (402), um Werte für mindestens ein Pixel (412) außerhalb eines Umfangs (408) des Videoobjekts (402) zu definieren, wobei sich das mindestens eine Pixel (412) außerhalb des Umfangs (408) innerhalb einer Blockgrenze (406) um das Videoobjekt (402) befindet, wobei das Verfahren die folgenden Schritte umfaßt: Abtasten einer Linie von Pixeln innerhalb der Blockgrenze (406), wobei das Abtasten mindestens einen Pixel (412) außerhalb des Umfangs (408) identifiziert und wobei jedes identifizierte Pixel (412) Teil eines Segmentes mit zwei Endpixeln ist, welche einen Pixelwert des Umfangs (408) aufweisen; und wobei für jedes identifizierte Pixel (412), die folgenden Schritte vorgesehen sind: Zuordnen eines Durchschnitts des Pixelwertes des Umfangs (408) zum identifizierten Pixel (412), wenn beide Endpixel des Segmentes mit dem identifizierten Pixel (412) Pixelwerte des Umfangs (408) aufweisen; und Zuordnen des Pixelwertes des Umfangs (408) zum identifizierten Pixel (412), wenn nur ein Endpixel des Segmentes mit dem identifizierten Pixel (412) einen Pixelwert des Umfangs (408) aufweist.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Abtasten horizontal über die Blockgrenze (406) erfolgt.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, gekennzeichnet durch ein Wiederholen des Verfahrens für mehrere Linien von Pixeln innerhalb der Blockgrenze (406).
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß das Abtasten die folgenden Schritte umfaßt: Abtasten (414) horizontaler Linien innerhalb der Blockgrenze (406); und Abtasten (430) vertikaler Linien innerhalb der Blockgrenze (406) für jedes identifizierte Pixel (412) in den horizontalen Linien nach dem Zuordnen.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß für mindestens ein außerhalb des Umfangs (408) verbleibendes Pixel, welches jedoch nicht bei dem Abtasten (414) der horizontalen Linien oder dem Abtasten (430) der vertikalen Linien identifiziert wurde, ein einem vorher zugeordneten Pixelwert des Umfangs (408) zugehöriger Wert dem verbleibenden Pixel zugeordnet wird.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß für mindestens ein außerhalb des Umfangs (408) verbleibendes Pixel, welches jedoch nicht beim Abtasten identifiziert wurde, ein einem vorher zugeordneten Pixelwert des Umfangs (408) zugehöriger Wert dem verbleibenden Pixel zugeordnet wird.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die Blockgrenze (406) Zeilen und Spalten von Pixeln umfaßt und das mindestens eine verbleibende Pixel sich nicht in einer Zeile oder einer Spalte befindet, welche ein Pixel des Videoobjektes (402) umfaßt.
  8. Verfahren nach Anspruch 1, gekennzeichnet durch die folgenden Schritte: Abtasten (414) mehrerer horizontaler Linien von Pixeln innerhalb der Blockgrenze (406) für ein oder mehrere horizontale Segmente von Pixeln, wobei jedes horizontale Segment ein oder mehrere Pixel (412) außerhalb des Umfangs (408) aufweist, jedes horizontale Segment zwei Endpixel aufweist und mindestens eines der Endpixel einen Pixelwert des Umfangs (408) hat; für das eine oder alle horizontalen Segmente und für jedes Pixel (412) außerhalb des Umfangs (408), Zuordnen (426) eines Durchschnitts der Pixelwerte des Umfangs (408) der Endpixel zu dem Pixel (412) außerhalb des Umfangs (408), wenn beide Endpixel des horizontalen Segmentes Pixelwerte des Umfangs (408) aufweisen; andernfalls, Zuordnen (422) des Pixelwertes des Umfangs (408) zu dem Pixel (412) außerhalb des Umfangs (408); Abtasten (430) mehrerer vertikaler Linien von Pixeln innerhalb der Blockgrenze (406) für ein oder mehrere vertikale Segmente von Pixeln, wobei jedes vertikale Segment ein oder mehrere Pixel (412) außerhalb des Umfangs (408) aufweist, jedes vertikale Segment zwei Endpixel aufweist und mindestens eines der Endpixel einen Pixelwert des Umfangs (408) aufweist; für das eine oder alle vertikalen Segmente und für jedes Pixel (412) außerhalb des Umfangs (408), Zuordnen (444) eines Durchschnitts der Pixelwerte des Umfangs (408) der Endpixel zu dem Pixel (412) außerhalb des Umfangs (408), wenn beide Endpixel des vertikalen Segmentes Pixelwerte des Umfangs (408) aufweisen; andernfalls, Zuordnen (438) des Pixelwertes des Umfangs (408) zu dem Pixel (412) außerhalb des Umfangs (408).
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß für mindestens ein außerhalb des Umfangs (408) verbleibendes Pixel ein einem vorher zugeordneten Pixelwert des Umfangs (408) zugehöriger Wert dem verbleibenden Pixel zugeordnet wird.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß die Blockgrenze (406) Zeilen und Spalten von Pixeln umfaßt und sich das mindestens eine verbleibende Pixel außerhalb des Umfangs (408) nicht in einer Zeile oder einer Spalte befindet, welche ein Pixel des Videoobjektes (402) umfaßt.
  11. Computerlesbares Medium, welches durch einen Computer ausführbare Befehle umfaßt, welche einen mit ihnen programmierten Computer veranlassen, das Verfahren nach einem der vorangehenden Ansprüche auszuführen.
DE69634962T 1995-10-05 1996-10-04 Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes Expired - Lifetime DE69634962T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US503195P 1995-10-05 1995-10-05
US5031P 1995-10-05

Publications (2)

Publication Number Publication Date
DE69634962D1 DE69634962D1 (de) 2005-08-25
DE69634962T2 true DE69634962T2 (de) 2006-04-13

Family

ID=21713781

Family Applications (4)

Application Number Title Priority Date Filing Date
DE69638007T Expired - Lifetime DE69638007D1 (de) 1995-10-05 1996-10-04 Objektbasiertes Videodekompression für willkürlich geformte Bildsegmente
DE69634962T Expired - Lifetime DE69634962T2 (de) 1995-10-05 1996-10-04 Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69637977T Expired - Lifetime DE69637977D1 (de) 1995-10-05 1996-10-04 Transformationsblockoptimierung
DE69623330T Expired - Lifetime DE69623330T2 (de) 1995-10-05 1996-10-04 Merkmalbasiertes videokompressionsverfahren

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69638007T Expired - Lifetime DE69638007D1 (de) 1995-10-05 1996-10-04 Objektbasiertes Videodekompression für willkürlich geformte Bildsegmente

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE69637977T Expired - Lifetime DE69637977D1 (de) 1995-10-05 1996-10-04 Transformationsblockoptimierung
DE69623330T Expired - Lifetime DE69623330T2 (de) 1995-10-05 1996-10-04 Merkmalbasiertes videokompressionsverfahren

Country Status (10)

Country Link
US (9) US5825929A (de)
EP (4) EP1122956B1 (de)
JP (3) JP4242452B2 (de)
AT (3) ATE300153T1 (de)
AU (1) AU7388996A (de)
CA (4) CA2432740C (de)
DE (4) DE69638007D1 (de)
ES (1) ES2334507T3 (de)
PT (1) PT1589766E (de)
WO (1) WO1997013372A2 (de)

Families Citing this family (382)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7907793B1 (en) 2001-05-04 2011-03-15 Legend Films Inc. Image sequence depth enhancement system and method
US8396328B2 (en) 2001-05-04 2013-03-12 Legend3D, Inc. Minimal artifact image sequence depth enhancement system and method
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US6418424B1 (en) 1991-12-23 2002-07-09 Steven M. Hoffberg Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6313863B1 (en) * 1994-07-29 2001-11-06 Canon Kabushiki Kaisha Image communication apparatus and system
JP2870415B2 (ja) * 1994-08-22 1999-03-17 日本電気株式会社 領域分割方法および装置
JP3405864B2 (ja) * 1995-09-12 2003-05-12 富士通株式会社 演算装置、相関演算装置、動画像圧縮装置、ずれ検出方法およびずれ検出装置
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
FR2752474B1 (fr) * 1996-08-14 1998-12-31 Iona Donescu Procede de transformation du signal image sur des supports de forme arbitraire
US6037983A (en) * 1996-11-08 2000-03-14 Hughes Electronics Corporation High quality reduced latency transmission of video objects
US5861920A (en) * 1996-11-08 1999-01-19 Hughes Electronics Corporation Hierarchical low latency video compression
DE19648963C1 (de) * 1996-11-26 1998-04-30 Siemens Ag Verfahren zur Bildcodierung eines digitalisierten Bildes, Verfahren zur Bilddecodierung eines digitalisierten Bildes und Anordnung zur Durchführung der Verfahren
EP0907290B8 (de) * 1997-01-30 2002-09-04 Matsushita Electric Industrial Co., Ltd. Verfahren zur auffrischung eines digitalen bildes, vorrichtung zur bildverarbeitung und datenträger
US6016163A (en) * 1997-03-12 2000-01-18 Scientific-Atlanta, Inc. Methods and apparatus for comparing blocks of pixels
JPH11112791A (ja) * 1997-04-10 1999-04-23 Ricoh Co Ltd 画像形成装置
JP2002507339A (ja) * 1997-05-30 2002-03-05 サーノフ コーポレイション 非線形ピラミッドを用いた階層的な運動推定実行方法及び装置
US6339616B1 (en) * 1997-05-30 2002-01-15 Alaris, Inc. Method and apparatus for compression and decompression of still and motion video data based on adaptive pixel-by-pixel processing and adaptive variable length coding
EP0892559A1 (de) * 1997-07-18 1999-01-20 Texas Instruments Inc. Objektrandblöckepadding für Bewegungsschätzung und Transformkodierung in einem objektorientierten Videokodierer
JP3042459B2 (ja) * 1997-08-25 2000-05-15 日本電気株式会社 映像表示装置
AU751069B2 (en) * 1997-09-29 2002-08-08 Siemens Aktiengesellschaft Method and device for storing at least one digital image
JP3966392B2 (ja) * 1997-09-30 2007-08-29 シャープ株式会社 画像合成通信装置
US6529635B1 (en) * 1997-12-15 2003-03-04 Intel Corporation Shape-based image compression/decompression using pattern matching
US6823016B1 (en) * 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
US6621932B2 (en) * 1998-03-06 2003-09-16 Matsushita Electric Industrial Co., Ltd. Video image decoding and composing method and video image decoding and composing apparatus
US6175654B1 (en) * 1998-03-26 2001-01-16 Intel Corporation Method and apparatus for encoding data in an interframe video encoder
US6400831B2 (en) 1998-04-02 2002-06-04 Microsoft Corporation Semantic video object segmentation and tracking
US6370487B1 (en) 1998-04-23 2002-04-09 Micron Technology, Inc. Remote semiconductor microscopy
US6055000A (en) * 1998-05-28 2000-04-25 Snk Corporation Storage memory for images
US6233358B1 (en) * 1998-07-13 2001-05-15 Intel Corporation Image compression using directional predictive coding of the wavelet coefficients
AR020608A1 (es) 1998-07-17 2002-05-22 United Video Properties Inc Un metodo y una disposicion para suministrar a un usuario acceso remoto a una guia de programacion interactiva por un enlace de acceso remoto
US6459822B1 (en) * 1998-08-26 2002-10-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Video image stabilization and registration
AUPP568698A0 (en) * 1998-09-03 1998-10-01 Canon Kabushiki Kaisha Region-based image compositing
US6711278B1 (en) * 1998-09-10 2004-03-23 Microsoft Corporation Tracking semantic objects in vector image sequences
US6198833B1 (en) * 1998-09-16 2001-03-06 Hotv, Inc. Enhanced interactive video with object tracking and hyperlinking
US6263109B1 (en) * 1998-09-25 2001-07-17 Hewlett-Packard Company Context-based ordering and coding of transform coefficient bit-planes for embedded bitstreams
US6295371B1 (en) * 1998-10-22 2001-09-25 Xerox Corporation Method and apparatus for image processing employing image segmentation using tokenization
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
US6983018B1 (en) 1998-11-30 2006-01-03 Microsoft Corporation Efficient motion vector coding for video compression
US6324305B1 (en) 1998-12-22 2001-11-27 Xerox Corporation Method and apparatus for segmenting a composite image into mixed raster content planes
US6400844B1 (en) 1998-12-02 2002-06-04 Xerox Corporation Method and apparatus for segmenting data to create mixed raster content planes
US6373981B1 (en) 1998-12-21 2002-04-16 Xerox Corporation Method and apparatus for segmenting data to create mixed raster content planes
US6480632B2 (en) * 1998-12-03 2002-11-12 Intel Corporation Method and apparatus to interpolate video frames
DE19860038C1 (de) * 1998-12-23 2000-06-29 Siemens Ag Verfahren zur Bewegungskorrektur bei Serien von Bildern eines starren Körpers
US6222883B1 (en) * 1999-01-28 2001-04-24 International Business Machines Corporation Video encoding motion estimation employing partitioned and reassembled search window
US6747642B1 (en) 1999-01-29 2004-06-08 Nintendo Co., Ltd. Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
JP2000251086A (ja) * 1999-02-26 2000-09-14 Sony Corp 曲線生成装置及び方法、並びにプログラム提供媒体
US6499060B1 (en) 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
GB2348064A (en) * 1999-03-16 2000-09-20 Mitsubishi Electric Inf Tech Motion vector field encoding
US7082162B2 (en) * 1999-04-17 2006-07-25 Pts Corporation Segment-based encoding system including segment-specific metadata
US7085319B2 (en) * 1999-04-17 2006-08-01 Pts Corporation Segment-based encoding system using segment hierarchies
US7050503B2 (en) * 1999-04-17 2006-05-23 Pts Corporation Segment-based encoding system using residue coding by basis function coefficients
KR20020047031A (ko) * 1999-04-17 2002-06-21 펄센트 코포레이션 효율적인 화상 처리 방법 및 장치
US6600786B1 (en) 1999-04-17 2003-07-29 Pulsent Corporation Method and apparatus for efficient video processing
JP2000341689A (ja) * 1999-05-27 2000-12-08 Sony Corp ウェーブレット逆変換装置及び方法、並びにウェーブレット復号装置及び方法
US6618508B1 (en) * 1999-07-09 2003-09-09 Ati International Srl Motion compensation device
US6976223B1 (en) * 1999-10-04 2005-12-13 Xerox Corporation Method and system to establish dedicated interfaces for the manipulation of segmented images
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US7016540B1 (en) * 1999-11-24 2006-03-21 Nec Corporation Method and system for segmentation, classification, and summarization of video images
GB9928022D0 (en) 1999-11-26 2000-01-26 British Telecomm Video coding and decording
US6738424B1 (en) 1999-12-27 2004-05-18 Objectvideo, Inc. Scene model generation from video for use in video processing
US20010047401A1 (en) * 2000-01-21 2001-11-29 Mcternan Brennan J. System and method for managing connections to servers delivering multimedia content
JP2001266159A (ja) * 2000-03-17 2001-09-28 Toshiba Corp 物体領域情報生成方法及び物体領域情報生成装置並びに近似多角形生成方法及び近似多角形生成装置
US7082166B2 (en) * 2000-04-17 2006-07-25 Pts Corporation Decoder for decoding segment-based encoding of video data using segmentation performed at a decoder
US6888894B2 (en) * 2000-04-17 2005-05-03 Pts Corporation Segmenting encoding system with image segmentation performed at a decoder and encoding scheme for generating encoded data relying on decoder segmentation
US6856700B1 (en) 2000-05-24 2005-02-15 Microsoft Corporation Palettized image compression
US7084877B1 (en) 2000-06-06 2006-08-01 General Instrument Corporation Global motion estimation for sprite generation
US6486881B2 (en) * 2000-06-15 2002-11-26 Lifef/X Networks, Inc. Basis functions of three-dimensional models for compression, transformation and streaming
US6643410B1 (en) * 2000-06-29 2003-11-04 Eastman Kodak Company Method of determining the extent of blocking artifacts in a digital image
DE60039689D1 (de) * 2000-07-10 2008-09-11 St Microelectronics Srl Verfahren zur Kompression digitaler Bilder
US6795068B1 (en) * 2000-07-21 2004-09-21 Sony Computer Entertainment Inc. Prop input device and method for mapping an object from a two-dimensional camera image to a three-dimensional space for controlling action in a game program
US6718066B1 (en) 2000-08-14 2004-04-06 The Hong Kong University Of Science And Technology Method and apparatus for coding an image object of arbitrary shape
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6937245B1 (en) * 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6980218B1 (en) * 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US7071914B1 (en) 2000-09-01 2006-07-04 Sony Computer Entertainment Inc. User input device and method for interaction with graphic images
US6842483B1 (en) 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
US6959113B2 (en) * 2000-09-29 2005-10-25 Pentax Corporation Arbitrary-shape image-processing device and arbitrary-shape image-reproducing device
JP2002116729A (ja) * 2000-10-04 2002-04-19 Internatl Business Mach Corp <Ibm> データ変換方法、画像表示方法、画像処理装置、画像表示装置、画像表示システムおよび画像処理システム
US20020041339A1 (en) * 2000-10-10 2002-04-11 Klaus Diepold Graphical representation of motion in still video images
US7091976B1 (en) 2000-11-03 2006-08-15 At&T Corp. System and method of customizing animated entities for use in a multi-media communication application
US6976082B1 (en) 2000-11-03 2005-12-13 At&T Corp. System and method for receiving multi-media messages
US7203648B1 (en) 2000-11-03 2007-04-10 At&T Corp. Method for sending multi-media messages with customized audio
US20080040227A1 (en) 2000-11-03 2008-02-14 At&T Corp. System and method of marketing using a multi-media communication system
US6990452B1 (en) 2000-11-03 2006-01-24 At&T Corp. Method for sending multi-media messages using emoticons
US6963839B1 (en) 2000-11-03 2005-11-08 At&T Corp. System and method of controlling sound in a multi-media communication application
AUPR212600A0 (en) * 2000-12-18 2001-01-25 Canon Kabushiki Kaisha Efficient video coding
AU773926B2 (en) * 2000-12-18 2004-06-10 Canon Kabushiki Kaisha Efficient video coding
US20020164070A1 (en) * 2001-03-14 2002-11-07 Kuhner Mark B. Automatic algorithm generation
US6909746B2 (en) * 2001-03-30 2005-06-21 Koninklijke Philips Electronics N.V. Fast robust data compression method and system
US7020672B2 (en) * 2001-03-30 2006-03-28 Koninklijke Philips Electronics, N.V. Reduced complexity IDCT decoding with graceful degradation
US6943827B2 (en) * 2001-04-16 2005-09-13 Kddi Corporation Apparatus for monitoring quality of picture in transmission
US6901173B2 (en) * 2001-04-25 2005-05-31 Lockheed Martin Corporation Scene-based non-uniformity correction for detector arrays
US7103235B2 (en) * 2001-04-25 2006-09-05 Lockheed Martin Corporation Extended range image processing for electro-optical systems
US6973218B2 (en) * 2001-04-25 2005-12-06 Lockheed Martin Corporation Dynamic range compression
US8401336B2 (en) * 2001-05-04 2013-03-19 Legend3D, Inc. System and method for rapid image sequence depth enhancement with augmented computer-generated elements
WO2002090286A1 (en) 2001-05-04 2002-11-14 Alpb - Aditivos E Ligantes Para Betões, Lda. Lignosulfonate-based plasticizer admixtures
US8897596B1 (en) 2001-05-04 2014-11-25 Legend3D, Inc. System and method for rapid image sequence depth enhancement with translucent elements
MXPA03010039A (es) 2001-05-04 2004-12-06 Legend Films Llc Sistema y metodo para mejorar la secuencia de imagen.
US9286941B2 (en) 2001-05-04 2016-03-15 Legend3D, Inc. Image sequence enhancement and motion picture project management system
US9031383B2 (en) 2001-05-04 2015-05-12 Legend3D, Inc. Motion picture project management system
US6757648B2 (en) * 2001-06-28 2004-06-29 Microsoft Corporation Techniques for quantization of spectral data in transcoding
JP2003078817A (ja) * 2001-08-30 2003-03-14 Matsushita Electric Ind Co Ltd 画像合成方法、及び画像合成装置
US6882685B2 (en) 2001-09-18 2005-04-19 Microsoft Corporation Block transform and quantization for image and video coding
US7646816B2 (en) * 2001-09-19 2010-01-12 Microsoft Corporation Generalized reference decoder for image or video processing
US7671861B1 (en) * 2001-11-02 2010-03-02 At&T Intellectual Property Ii, L.P. Apparatus and method of customizing animated entities for use in a multi-media communication application
US6655214B2 (en) 2001-11-12 2003-12-02 U-E Systems, Inc. Ultrasonic sensor having enhanced dynamic range
EP1579392A3 (de) * 2001-12-14 2005-11-16 SGDL Systèmes Inc. Verfahren und einrichtung zur erzeugung von m-gradige formen in einem n-dimensionalen raum
US7460993B2 (en) * 2001-12-14 2008-12-02 Microsoft Corporation Adaptive window-size selection in transform coding
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100925968B1 (ko) * 2001-12-17 2009-11-09 마이크로소프트 코포레이션 컴퓨터 시스템에서 비디오 시퀀스의 복수의 비디오 화상을 처리하는 방법, 시스템 및 컴퓨터 판독가능 매체
CN100395959C (zh) * 2002-01-16 2008-06-18 科纳斯通集团有限公司 优化的数据传输系统和方法
DE60332175D1 (de) * 2002-01-22 2010-05-27 Microsoft Corp Verfahren und System zur Verhinderung von Startkode-Emulation und Stopfdaten
US7149247B2 (en) * 2002-01-22 2006-12-12 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US7602848B2 (en) * 2002-03-26 2009-10-13 General Instrument Corporation Methods and apparatus for efficient global motion compensation encoding and associated decoding
US7116831B2 (en) * 2002-04-10 2006-10-03 Microsoft Corporation Chrominance motion vector rounding
US7110459B2 (en) * 2002-04-10 2006-09-19 Microsoft Corporation Approximate bicubic filter
US7305034B2 (en) * 2002-04-10 2007-12-04 Microsoft Corporation Rounding control for multi-stage interpolation
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
TWI310137B (en) * 2002-04-19 2009-05-21 Microsoft Corp Methods and systems for preventing start code emulation at locations that include non-byte aligned and/or bit-shifted positions
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US7609767B2 (en) * 2002-05-03 2009-10-27 Microsoft Corporation Signaling for fading compensation
US7463684B2 (en) * 2002-05-03 2008-12-09 Microsoft Corporation Fading estimation/compensation
US7277486B2 (en) * 2002-05-03 2007-10-02 Microsoft Corporation Parameterization for fading compensation
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7224731B2 (en) * 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US7085420B2 (en) * 2002-06-28 2006-08-01 Microsoft Corporation Text detection in continuous tone image segments
US7280700B2 (en) 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7072512B2 (en) * 2002-07-23 2006-07-04 Microsoft Corporation Segmentation of digital video and images into continuous tone and palettized regions
DK1400954T3 (da) 2002-09-04 2008-03-31 Microsoft Corp Entropi-kodning ved tilpasning af kodning mellem niveau- og runlængde/niveau-moduser
US7421129B2 (en) * 2002-09-04 2008-09-02 Microsoft Corporation Image compression and synthesis for video effects
US7379496B2 (en) * 2002-09-04 2008-05-27 Microsoft Corporation Multi-resolution video coding and decoding
US7433824B2 (en) 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
AU2003277775A1 (en) * 2002-11-08 2004-06-07 Jan Babic Device providing simultaneous visibility of pictures in a field of 360 degrees around the device
US6831868B2 (en) * 2002-12-05 2004-12-14 Intel Corporation Byte aligned redundancy for memory array
US7050078B2 (en) 2002-12-19 2006-05-23 Accenture Global Services Gmbh Arbitrary object tracking augmented reality applications
US7039247B2 (en) * 2003-01-31 2006-05-02 Sony Corporation Graphic codec for network transmission
KR101075214B1 (ko) * 2003-02-13 2011-10-19 텔랍 인코퍼레이션 벌크 백
JP4194029B2 (ja) * 2003-02-26 2008-12-10 Kddi株式会社 画像劣化自動検出装置
US6923264B2 (en) * 2003-03-05 2005-08-02 Halliburton Energy Services, Inc. Methods of fracturing subterranean zones, fracturing fluids and breaker activators therefor
JP3810381B2 (ja) 2003-04-25 2006-08-16 オリンパス株式会社 画像表示装置、画像表示方法および画像表示プログラム
CN101264001B (zh) * 2003-04-25 2010-11-10 奥林巴斯株式会社 图像显示装置
JP4098662B2 (ja) * 2003-04-30 2008-06-11 任天堂株式会社 塗り絵画像生成装置、プログラム及び方法
US7558320B2 (en) * 2003-06-13 2009-07-07 Microsoft Corporation Quality control in frame interpolation with motion analysis
US7380028B2 (en) * 2003-06-13 2008-05-27 Microsoft Corporation Robust delivery of video data
US7408986B2 (en) * 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
US7471726B2 (en) * 2003-07-15 2008-12-30 Microsoft Corporation Spatial-domain lapped transform in digital media compression
US20050013494A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US8218624B2 (en) 2003-07-18 2012-07-10 Microsoft Corporation Fractional quantization step sizes for high bit rates
US7830963B2 (en) * 2003-07-18 2010-11-09 Microsoft Corporation Decoding jointly coded transform type and subblock pattern information
US7580584B2 (en) 2003-07-18 2009-08-25 Microsoft Corporation Adaptive multiple quantization
US7738554B2 (en) 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7499495B2 (en) 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7502415B2 (en) * 2003-07-18 2009-03-10 Microsoft Corporation Range reduction
US7426308B2 (en) * 2003-07-18 2008-09-16 Microsoft Corporation Intraframe and interframe interlace coding and decoding
US7602851B2 (en) 2003-07-18 2009-10-13 Microsoft Corporation Intelligent differential quantization of video coding
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7822123B2 (en) * 2004-10-06 2010-10-26 Microsoft Corporation Efficient repeat padding for hybrid video sequence with arbitrary video resolution
US7609762B2 (en) 2003-09-07 2009-10-27 Microsoft Corporation Signaling for entry point frames with predicted first field
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US7839930B2 (en) * 2003-11-13 2010-11-23 Microsoft Corporation Signaling valid entry points in a video stream
US7577198B2 (en) * 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US7961786B2 (en) * 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US7852919B2 (en) 2003-09-07 2010-12-14 Microsoft Corporation Field start code for entry point frames with predicted first field
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US8009739B2 (en) * 2003-09-07 2011-08-30 Microsoft Corporation Intensity estimation/compensation for interlaced forward-predicted fields
KR101103867B1 (ko) * 2003-09-07 2012-01-12 마이크로소프트 코포레이션 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체
US7924921B2 (en) * 2003-09-07 2011-04-12 Microsoft Corporation Signaling coding and display options in entry point headers
US7620106B2 (en) 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US8345754B2 (en) * 2003-09-07 2013-01-01 Microsoft Corporation Signaling buffer fullness
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US8085844B2 (en) * 2003-09-07 2011-12-27 Microsoft Corporation Signaling reference frame distances
US8213779B2 (en) * 2003-09-07 2012-07-03 Microsoft Corporation Trick mode elementary stream and receiver system
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8625680B2 (en) * 2003-09-07 2014-01-07 Microsoft Corporation Bitstream-controlled post-processing filtering
US7599438B2 (en) 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7369709B2 (en) * 2003-09-07 2008-05-06 Microsoft Corporation Conditional lapped transform
US7577200B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Extended range variable length coding/decoding of differential motion vector information
US8582659B2 (en) 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US7616692B2 (en) 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US8107531B2 (en) * 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
US8014450B2 (en) 2003-09-07 2011-09-06 Microsoft Corporation Flexible range reduction
US7317839B2 (en) 2003-09-07 2008-01-08 Microsoft Corporation Chroma motion vector derivation for interlaced forward-predicted fields
US7782954B2 (en) * 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US7266255B1 (en) * 2003-09-26 2007-09-04 Sun Microsystems, Inc. Distributed multi-sample convolution
US7215338B2 (en) * 2003-10-02 2007-05-08 Given Imaging Ltd. System and method for presentation of data streams
US8133115B2 (en) * 2003-10-22 2012-03-13 Sony Computer Entertainment America Llc System and method for recording and displaying a graphical path in a video game
US7295700B2 (en) * 2003-10-24 2007-11-13 Adobe Systems Incorporated Object extraction based on color and visual texture
TWI273778B (en) * 2003-11-10 2007-02-11 Sunplus Technology Co Ltd Method to merge the system data in image memory system
US7454068B2 (en) * 2003-11-12 2008-11-18 International Business Machines Corporation System and method for providing black white image compression
US20050120340A1 (en) * 2003-12-01 2005-06-02 Skazinski Joseph G. Apparatus, system, and method for automated generation of embedded systems software
US7653265B2 (en) * 2004-01-16 2010-01-26 Nvidia Corporation Video image processing with utility processing stage
US9292904B2 (en) 2004-01-16 2016-03-22 Nvidia Corporation Video image processing with parallel processing
US7760968B2 (en) * 2004-01-16 2010-07-20 Nvidia Corporation Video image processing with processing time allocation
US7308159B2 (en) * 2004-01-16 2007-12-11 Enuclia Semiconductor, Inc. Image processing system and method with dynamically controlled pixel processing
US7515758B2 (en) * 2004-02-03 2009-04-07 International Business Machines Corporation Black white image compression having print density control
US7447331B2 (en) * 2004-02-24 2008-11-04 International Business Machines Corporation System and method for generating a viewable video index for low bandwidth applications
US7751482B1 (en) * 2004-02-27 2010-07-06 Vbrick Systems, Inc. Phase correlation based motion estimation in hybrid video compression
US8000392B1 (en) 2004-02-27 2011-08-16 Vbrick Systems, Inc. Phase correlation based motion estimation in hybrid video compression
US7649539B2 (en) * 2004-03-10 2010-01-19 Microsoft Corporation Image formats for video capture, processing and display
US20050232497A1 (en) * 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
US7487193B2 (en) * 2004-05-14 2009-02-03 Microsoft Corporation Fast video codec transform implementations
US7801383B2 (en) 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US8442108B2 (en) * 2004-07-12 2013-05-14 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
US8340177B2 (en) * 2004-07-12 2012-12-25 Microsoft Corporation Embedded base layer codec for 3D sub-band coding
US8374238B2 (en) * 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
US8902971B2 (en) 2004-07-30 2014-12-02 Euclid Discoveries, Llc Video compression repository and model reuse
US9532069B2 (en) 2004-07-30 2016-12-27 Euclid Discoveries, Llc Video compression repository and model reuse
US9578345B2 (en) 2005-03-31 2017-02-21 Euclid Discoveries, Llc Model-based video encoding and decoding
WO2008091483A2 (en) * 2007-01-23 2008-07-31 Euclid Discoveries, Llc Computer method and apparatus for processing image data
US9743078B2 (en) 2004-07-30 2017-08-22 Euclid Discoveries, Llc Standards-compliant model-based video encoding and decoding
US20060028562A1 (en) * 2004-08-09 2006-02-09 Martin Schmitz Fast area-selected filtering for pixel-noise and analog artifacts reduction
US7483572B2 (en) * 2004-08-25 2009-01-27 Mitsubishi Electric Research Laboratories, Inc. Recovering a non-linear warping function from images
US20060071933A1 (en) 2004-10-06 2006-04-06 Sony Computer Entertainment Inc. Application binary interface for multi-pass shaders
US7839933B2 (en) * 2004-10-06 2010-11-23 Microsoft Corporation Adaptive vertical macroblock alignment for mixed frame video sequences
US8243820B2 (en) * 2004-10-06 2012-08-14 Microsoft Corporation Decoding variable coded resolution video with native range/resolution post-processing operation
US9071847B2 (en) * 2004-10-06 2015-06-30 Microsoft Technology Licensing, Llc Variable coding resolution in video codec
US7421139B2 (en) * 2004-10-07 2008-09-02 Infoprint Solutions Company, Llc Reducing errors in performance sensitive transformations
US20060104356A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Timing for decoder buffer examination
US7471850B2 (en) * 2004-12-17 2008-12-30 Microsoft Corporation Reversible transform for lossy and lossless 2-D data compression
US7428342B2 (en) * 2004-12-17 2008-09-23 Microsoft Corporation Reversible overlap operator for efficient lossless data compression
US7305139B2 (en) * 2004-12-17 2007-12-04 Microsoft Corporation Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform
US20060146932A1 (en) * 2004-12-30 2006-07-06 Krit Panusopone Method and apparatus for providing motion estimation with weight prediction
US8634413B2 (en) 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US7738740B2 (en) * 2005-01-13 2010-06-15 Nvidia Corporation Video processing system and method with dynamic tag architecture
US7869666B2 (en) * 2005-01-13 2011-01-11 Nvidia Corporation Video processing system and method with dynamic tag architecture
US7853044B2 (en) * 2005-01-13 2010-12-14 Nvidia Corporation Video processing system and method with dynamic tag architecture
US20060152627A1 (en) * 2005-01-13 2006-07-13 Ruggiero Carl J Video processing system and method with dynamic tag architecture
US20060215036A1 (en) * 2005-03-25 2006-09-28 Multivision Intelligent Surveillance (Hk) Ltd. Method and apparatus for video stabilization
US20060222073A1 (en) * 2005-03-29 2006-10-05 Guillaume Mercier Authoring running marks in compressed data
US7511738B1 (en) * 2005-03-31 2009-03-31 Lockheed Martin Corporation Massively-parallel three-axis stabilization of focal plane data
US8942283B2 (en) * 2005-03-31 2015-01-27 Euclid Discoveries, Llc Feature-based hybrid video codec comparing compression efficiency of encodings
US7830552B2 (en) * 2005-04-15 2010-11-09 International Business Machines Corporation Black white image scaling having print density control and polarity detection
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US20060271855A1 (en) * 2005-05-27 2006-11-30 Microsoft Corporation Operating system shell management of video files
US7636126B2 (en) * 2005-06-22 2009-12-22 Sony Computer Entertainment Inc. Delay matching in audio/video systems
US7546240B2 (en) * 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US7693709B2 (en) 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7599840B2 (en) 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7684981B2 (en) 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7639873B2 (en) * 2005-07-28 2009-12-29 Microsoft Corporation Robust shot detection in a video
US7565018B2 (en) 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US8599925B2 (en) 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
US8036274B2 (en) * 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
US20070060798A1 (en) * 2005-09-15 2007-03-15 Hagai Krupnik System and method for presentation of data streams
US7689052B2 (en) * 2005-10-07 2010-03-30 Microsoft Corporation Multimedia signal processing using fixed-point approximations of linear transforms
US20070124766A1 (en) * 2005-11-30 2007-05-31 Broadcom Corporation Video synthesizer
US7646922B2 (en) * 2005-12-30 2010-01-12 Honeywell International Inc. Object classification in video images
US7956930B2 (en) * 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US7965774B2 (en) * 2006-01-06 2011-06-21 International Business Machines Corporation Method for visual signal extrapolation or interpolation
US8265145B1 (en) 2006-01-13 2012-09-11 Vbrick Systems, Inc. Management and selection of reference frames for long term prediction in motion estimation
JP2007257078A (ja) * 2006-03-20 2007-10-04 Fujitsu Ltd 画像検索装置
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8059721B2 (en) 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US8503536B2 (en) 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8130828B2 (en) 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US7974340B2 (en) 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US7965859B2 (en) 2006-05-04 2011-06-21 Sony Computer Entertainment Inc. Lighting control of a user environment via a display device
US7880746B2 (en) 2006-05-04 2011-02-01 Sony Computer Entertainment Inc. Bandwidth management through lighting control of a user environment via a display device
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US8880571B2 (en) * 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
US20080084932A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation Controlling loop filtering for interlaced video frames
US8078004B2 (en) * 2006-11-09 2011-12-13 University Of Delaware Geometric registration of images by similarity transformation using two reference points
KR101141086B1 (ko) * 2006-11-14 2012-05-03 퀄컴 인코포레이티드 채널 전환용 시스템 및 방법
US8947452B1 (en) * 2006-12-07 2015-02-03 Disney Enterprises, Inc. Mechanism for displaying visual clues to stacking order during a drag and drop operation
US8494053B2 (en) * 2007-01-03 2013-07-23 International Business Machines Corporation Method and apparatus of temporal filtering for side information interpolation and extrapolation in Wyner-Ziv video compression systems
US20080212895A1 (en) * 2007-01-09 2008-09-04 Lockheed Martin Corporation Image data processing techniques for highly undersampled images
JP2010517427A (ja) * 2007-01-23 2010-05-20 ユークリッド・ディスカバリーズ・エルエルシー 個人向けのビデオサービスを提供するシステムおよび方法
US8553782B2 (en) * 2007-01-23 2013-10-08 Euclid Discoveries, Llc Object archival systems and methods
US8238424B2 (en) 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8054886B2 (en) 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
US8942289B2 (en) * 2007-02-21 2015-01-27 Microsoft Corporation Computational complexity and precision control in transform-based digital media codec
US8184710B2 (en) 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US8107571B2 (en) * 2007-03-20 2012-01-31 Microsoft Corporation Parameterized filters and signaling techniques
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
KR100884066B1 (ko) * 2007-03-30 2009-02-19 한국전자통신연구원 Svd 기반의 영상 비교시스템 및 방법
US8442337B2 (en) 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
US7761290B2 (en) 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US7774205B2 (en) 2007-06-15 2010-08-10 Microsoft Corporation Coding of sparse digital media spectral data
US8798148B2 (en) * 2007-06-15 2014-08-05 Physical Optics Corporation Apparatus and method employing pre-ATR-based real-time compression and video frame segmentation
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
DE102007033316A1 (de) 2007-07-16 2009-01-22 Atvisican Ag Verfahren zum Vektorisieren von Videobildern
US20090046938A1 (en) * 2007-08-15 2009-02-19 Lockheed Martin Corporation Character contour correction
AU2007214319A1 (en) * 2007-08-30 2009-03-19 Canon Kabushiki Kaisha Improvements for Spatial Wyner Ziv Coding
JP4882956B2 (ja) * 2007-10-22 2012-02-22 ソニー株式会社 画像処理装置および画像処理方法
US8457958B2 (en) 2007-11-09 2013-06-04 Microsoft Corporation Audio transcoder using encoder-generated side information to transcode to target bit-rate
US8665958B2 (en) * 2008-01-29 2014-03-04 Electronics And Telecommunications Research Institute Method and apparatus for encoding and decoding video signal using motion compensation based on affine transformation
WO2009096721A2 (en) * 2008-01-29 2009-08-06 Electronics And Telecommunications Research Institute Method and apparatus for encoding and decoding video signal using motion compensation based on affine transformation
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
US8711948B2 (en) 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8189933B2 (en) 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8164862B2 (en) * 2008-04-02 2012-04-24 Headway Technologies, Inc. Seed layer for TMR or CPP-GMR sensor
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8369638B2 (en) 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8447591B2 (en) * 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
CA2724890A1 (en) 2008-06-18 2009-12-23 The Smartpill Corporation System and method of evaluating a subject with an ingestible capsule
US20130022114A1 (en) * 2008-06-23 2013-01-24 Mediatek Inc. Method and related apparatuses for decoding multimedia data
US8878870B1 (en) * 2008-08-01 2014-11-04 Marvell International Ltd. Graphic processing techniques and configurations
US8406307B2 (en) 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8275209B2 (en) * 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
JP2010114576A (ja) * 2008-11-05 2010-05-20 Seiko Epson Corp 画像処理装置
US8094931B2 (en) * 2008-12-09 2012-01-10 Himax Technologies Limited Method of color components compression
US8311115B2 (en) 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
US8396114B2 (en) 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US8270473B2 (en) * 2009-06-12 2012-09-18 Microsoft Corporation Motion based dynamic resolution multiple bit rate video encoding
JP5316882B2 (ja) * 2009-11-12 2013-10-16 清水建設株式会社 梁の振動低減機構
US10786736B2 (en) 2010-05-11 2020-09-29 Sony Interactive Entertainment LLC Placement of user information in a game space
US8705616B2 (en) 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US8417045B2 (en) * 2010-07-29 2013-04-09 Infoprint Solutions Company Llc Mechanism for processing order-16 discrete cosine transforms
US8787443B2 (en) 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US8730232B2 (en) 2011-02-01 2014-05-20 Legend3D, Inc. Director-style based 2D to 3D movie conversion system and method
US9407904B2 (en) 2013-05-01 2016-08-02 Legend3D, Inc. Method for creating 3D virtual reality from 2D images
US9282321B2 (en) 2011-02-17 2016-03-08 Legend3D, Inc. 3D model multi-reviewer system
US9288476B2 (en) 2011-02-17 2016-03-15 Legend3D, Inc. System and method for real-time depth modification of stereo images of a virtual reality environment
US9241147B2 (en) 2013-05-01 2016-01-19 Legend3D, Inc. External depth map transformation method for conversion of two-dimensional images to stereoscopic images
US9113130B2 (en) 2012-02-06 2015-08-18 Legend3D, Inc. Multi-stage production pipeline system
US9042458B2 (en) 2011-04-01 2015-05-26 Microsoft Technology Licensing, Llc Multi-threaded implementations of deblock filtering
US8873816B1 (en) 2011-04-06 2014-10-28 Given Imaging Ltd. Method and system for identification of red colored pathologies in vivo
US9342817B2 (en) 2011-07-07 2016-05-17 Sony Interactive Entertainment LLC Auto-creating groups for sharing photos
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US11089343B2 (en) 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
WO2013164826A1 (en) 2012-05-04 2013-11-07 Given Imaging Ltd. System and method for automatic navigation of a capsule based on image stream captured in-vivo
CN104350742B (zh) 2012-06-29 2018-07-06 基文影像公司 用于显示图像流的系统和方法
US20140009563A1 (en) * 2012-07-03 2014-01-09 Google Inc. Non-video codecs with video conferencing
US9384218B2 (en) 2012-08-21 2016-07-05 Emc Corporation Format identification for fragmented image data
US9007365B2 (en) 2012-11-27 2015-04-14 Legend3D, Inc. Line depth augmentation system and method for conversion of 2D images to 3D images
US9547937B2 (en) 2012-11-30 2017-01-17 Legend3D, Inc. Three-dimensional annotation system and method
US9349072B2 (en) 2013-03-11 2016-05-24 Microsoft Technology Licensing, Llc Local feature based image compression
US9007404B2 (en) 2013-03-15 2015-04-14 Legend3D, Inc. Tilt-based look around effect image enhancement method
US9438878B2 (en) 2013-05-01 2016-09-06 Legend3D, Inc. Method of converting 2D video to 3D video using 3D object models
US9324145B1 (en) 2013-08-08 2016-04-26 Given Imaging Ltd. System and method for detection of transitions in an image stream of the gastrointestinal tract
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US9942560B2 (en) 2014-01-08 2018-04-10 Microsoft Technology Licensing, Llc Encoding screen capture data
IN2014CH00165A (de) 2014-01-15 2015-07-17 Infosys Ltd
CA2942336A1 (en) 2014-03-10 2015-09-17 Euclid Discoveries, Llc Continuous block tracking for temporal prediction in video encoding
US10091507B2 (en) 2014-03-10 2018-10-02 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US10097851B2 (en) 2014-03-10 2018-10-09 Euclid Discoveries, Llc Perceptual optimization for model-based video encoding
US9594940B1 (en) 2014-08-11 2017-03-14 Synaptics Incorporated Fingerprint template compression
CN104363451B (zh) 2014-10-27 2019-01-25 华为技术有限公司 图像预测方法及相关装置
US10708571B2 (en) * 2015-06-29 2020-07-07 Microsoft Technology Licensing, Llc Video frame processing
US9955191B2 (en) 2015-07-01 2018-04-24 At&T Intellectual Property I, L.P. Method and apparatus for managing bandwidth in providing communication services
RU2015139563A (ru) * 2015-09-17 2017-03-22 Общество С Ограниченной Ответственностью "Яндекс" Способ и устройство для хранения и сжатия данных о пространственных объектах
US9609307B1 (en) 2015-09-17 2017-03-28 Legend3D, Inc. Method of converting 2D video to 3D video using machine learning
US10462490B2 (en) * 2015-11-06 2019-10-29 Raytheon Company Efficient video data representation and content based video retrieval framework
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
CN109691109B (zh) * 2016-09-23 2023-05-12 苹果公司 多视角成像系统和方法
US11412260B2 (en) * 2018-10-29 2022-08-09 Google Llc Geometric transforms for image compression
US20210127125A1 (en) * 2019-10-23 2021-04-29 Facebook Technologies, Llc Reducing size and power consumption for frame buffers using lossy compression
US10970855B1 (en) 2020-03-05 2021-04-06 International Business Machines Corporation Memory-efficient video tracking in real-time using direction vectors
US11055810B1 (en) * 2020-03-30 2021-07-06 Adobe Inc. Optimizing graphics geometry using similarity-based clustering
US20210152530A1 (en) * 2020-12-22 2021-05-20 Praveen Prasad Nair Tiered access to regions of interest in video frames
CN112990105B (zh) * 2021-04-19 2021-09-21 北京优幕科技有限责任公司 对用户评价的方法、装置、电子设备和存储介质
EP4254337A1 (de) 2023-01-17 2023-10-04 University of Maribor Verfahren zur kodierung und dekodierung binärer bilder unter verwendung von kettenkoden

Family Cites Families (87)

* 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
US3873971A (en) * 1973-10-31 1975-03-25 Motorola Inc Random error correcting system
US4307377A (en) * 1979-11-09 1981-12-22 Bell Telephone Laboratories, Incorporated Vector coding of computer graphics material
GB8311813D0 (en) * 1983-04-29 1983-06-02 West G A W Coding and storing raster scan images
GB2161006B (en) * 1984-04-27 1988-02-10 Canon Kk Character recognition apparatus
US4751742A (en) * 1985-05-07 1988-06-14 Avelex Priority coding of transform coefficients
US4727422A (en) * 1985-06-03 1988-02-23 Picturetel Corporation Method and apparatus for efficiently communicating image sequence having improved motion compensation
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
JPH0766446B2 (ja) * 1985-11-27 1995-07-19 株式会社日立製作所 移動物体像を抽出する方法
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
US4905295A (en) * 1986-11-13 1990-02-27 Ricoh Company, Ltd. Code sequence matching method and apparatus
US4783383A (en) * 1986-12-02 1988-11-08 Sanyo Electric Co., Ltd. Sealed type battery provided with safety valve means and method of manufacturing same
US4961231A (en) * 1987-01-20 1990-10-02 Ricoh Company, Ltd. Pattern recognition method
US5070465A (en) * 1987-02-25 1991-12-03 Sony Corporation Video image transforming method and apparatus
US4838685A (en) * 1987-04-03 1989-06-13 Massachusetts Institute Of Technology Methods and apparatus for motion estimation in motion picture processing
US4729020A (en) * 1987-06-01 1988-03-01 Delta Information Systems System for formatting digital signals to be transmitted
US5136659A (en) * 1987-06-30 1992-08-04 Kokusai Denshin Denwa Kabushiki Kaisha Intelligent coding system for picture signal
US5031225A (en) * 1987-12-09 1991-07-09 Ricoh Company, Ltd. Character recognition method for recognizing character in an arbitrary rotation position
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
US5034986A (en) * 1989-03-01 1991-07-23 Siemens Aktiengesellschaft Method for detecting and tracking moving objects in a digital image sequence having a stationary background
GB8909498D0 (en) * 1989-04-26 1989-06-14 British Telecomm Motion estimator
US5073955A (en) * 1989-06-16 1991-12-17 Siemens Aktiengesellschaft Method for recognizing previously localized characters present in digital gray tone images, particularly for recognizing characters struck into metal surfaces
US5175808A (en) * 1989-09-12 1992-12-29 Pixar Method and apparatus for non-affine image warping
JP2953712B2 (ja) * 1989-09-27 1999-09-27 株式会社東芝 移動物体検知装置
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
JP3037383B2 (ja) * 1990-09-03 2000-04-24 キヤノン株式会社 画像処理システム及びその方法
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 강진구 영상 신호에 있어서의 잡음 검출 알고리즘
JP2873338B2 (ja) * 1991-09-17 1999-03-24 富士通株式会社 動物体認識装置
JP2856229B2 (ja) * 1991-09-18 1999-02-10 財団法人ニューメディア開発協会 画像切り出し箇所検出方法
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
DE4138517A1 (de) * 1991-11-23 1993-05-27 Univ Hannover Einrichtung zur objekt-orientierten codierung von bildsignalen
US5430811A (en) * 1991-12-25 1995-07-04 Matsushita Electric Industrial Co., Ltd. Method for interpolating missing pixels and an apparatus employing the method
JP2790562B2 (ja) * 1992-01-06 1998-08-27 富士写真フイルム株式会社 画像処理方法
JP3068304B2 (ja) * 1992-01-21 2000-07-24 日本電気株式会社 動画像符号化方式および復号化方式
DE69322423T2 (de) * 1992-03-13 1999-06-02 Canon Kk Vorrichtung zur Detektion von Bewegungsvektoren
GB2266023B (en) * 1992-03-31 1995-09-06 Sony Broadcast & Communication Motion dependent video signal processing
US5283646A (en) * 1992-04-09 1994-02-01 Picturetel Corporation Quantizer control method and apparatus
US5706417A (en) * 1992-05-27 1998-01-06 Massachusetts Institute Of Technology Layered representation for image coding
GB9215102D0 (en) * 1992-07-16 1992-08-26 Philips Electronics Uk Ltd Tracking moving objects
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
JP3679426B2 (ja) * 1993-03-15 2005-08-03 マサチューセッツ・インスティチュート・オブ・テクノロジー 画像データを符号化して夫々がコヒーレントな動きの領域を表わす複数の層とそれら層に付随する動きパラメータとにするシステム
US5500933A (en) * 1993-04-28 1996-03-19 Canon Information Systems, Inc. Display system which displays motion video objects combined with other visual objects
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
EP0625853B1 (de) * 1993-05-21 1999-03-03 Nippon Telegraph And Telephone Corporation Bewegtbildkoder und -dekoder
DE69329332T2 (de) * 1993-05-26 2001-02-22 St Microelectronics Srl 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
FI94306C (fi) * 1993-07-15 1995-08-10 Nokia Technology Gmbh Menetelmä televisiokuvan pienten kuvasegmenttien liikevektoreiden määrittämiseksi
US5477272A (en) * 1993-07-22 1995-12-19 Gte Laboratories Incorporated Variable-block size multi-resolution motion estimation scheme for pyramid coding
JP2576771B2 (ja) * 1993-09-28 1997-01-29 日本電気株式会社 動き補償予測装置
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine
KR100287211B1 (ko) * 1994-08-30 2001-04-16 윤종용 양방향 움직임 추정방법 및 장치
US5574572A (en) * 1994-09-07 1996-11-12 Harris Corporation Video scaling method and device
EP0709809B1 (de) * 1994-10-28 2002-01-23 Oki Electric Industry Company, Limited Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation
CA2181388A1 (en) * 1994-11-17 1996-05-30 Blair Alfred Graham Multi-layer particles for rotational molding
EP0720383B1 (de) * 1994-12-30 2000-09-13 Daewoo Electronics Co., Ltd Verfahren und Vorrichtung zur Bewegungsvektorendetektion in einem Bildkodierer mit Bilddezimation
EP0721287A1 (de) * 1995-01-09 1996-07-10 Daewoo Electronics Co., Ltd Verfahren und Vorrichtung zur Kodierung eines Videosignals
KR0171146B1 (ko) * 1995-03-18 1999-03-20 배순훈 특징점을 이용한 움직임 벡터 검출 장치
KR0171118B1 (ko) * 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
KR0181027B1 (ko) * 1995-03-20 1999-05-01 배순훈 화소 단위 움직임 추정을 이용하는 영상처리 시스템
KR0171143B1 (ko) * 1995-03-20 1999-03-20 배순훈 육각그리드에서의 삼각구조 형성 장치
KR0171147B1 (ko) * 1995-03-20 1999-03-20 배순훈 그레디언트 변화를 이용한 특징점 선정장치
JP3612360B2 (ja) * 1995-04-10 2005-01-19 株式会社大宇エレクトロニクス 移動物体分割法を用いた動画像の動き推定方法
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
KR0181063B1 (ko) * 1995-04-29 1999-05-01 배순훈 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치
KR0171154B1 (ko) * 1995-04-29 1999-03-20 배순훈 특징점 기반 움직임 추정을 이용하여 비디오 신호를 부호화하는 방법 및 장치
US5654771A (en) * 1995-05-23 1997-08-05 The University Of Rochester Video compression system using a dense motion vector field and a triangular patch mesh overlay model
WO1997004662A1 (en) * 1995-07-26 1997-02-13 Wm. Wrigley Jr. Company Use of encapsulated aspartic acid sweeteners in coating syrups for coated pellet chewing gums
US5668608A (en) * 1995-07-26 1997-09-16 Daewoo Electronics Co., Ltd. Motion vector estimation method and apparatus for use in an image signal encoding system
KR0178229B1 (ko) * 1995-08-08 1999-05-01 배순훈 특징점에 근거한 화소단위 움직임 추정을 이용한 영상 처리 장치
US5692063A (en) * 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5778098A (en) * 1996-03-22 1998-07-07 Microsoft Corporation Sprite coding

Also Published As

Publication number Publication date
ATE440449T1 (de) 2009-09-15
EP1589766B1 (de) 2009-08-19
AU7388996A (en) 1997-04-28
WO1997013372A2 (en) 1997-04-10
US5825929A (en) 1998-10-20
US5784175A (en) 1998-07-21
DE69637977D1 (de) 2009-09-03
CA2432741A1 (en) 1997-04-10
US5970173A (en) 1999-10-19
EP0873653B1 (de) 2002-08-28
WO1997013372A3 (en) 1997-05-29
EP1122956A2 (de) 2001-08-08
CA2432741C (en) 2004-09-14
CA2432740C (en) 2004-09-14
US6026182A (en) 2000-02-15
CA2432740A1 (en) 1997-04-10
CA2233704A1 (en) 1997-04-10
ES2334507T3 (es) 2010-03-11
JP2008011552A (ja) 2008-01-17
US5995670A (en) 1999-11-30
EP1589765A3 (de) 2006-12-20
US5796855A (en) 1998-08-18
CA2432735C (en) 2005-05-24
US5959673A (en) 1999-09-28
EP1122956B1 (de) 2005-07-20
CA2432735A1 (en) 1997-04-10
ATE300153T1 (de) 2005-08-15
DE69623330T2 (de) 2003-05-15
EP1122956A3 (de) 2004-06-30
DE69638007D1 (de) 2009-10-01
EP1589766A3 (de) 2008-07-09
EP1589766A2 (de) 2005-10-26
JP4242452B2 (ja) 2009-03-25
US5949919A (en) 1999-09-07
EP1589765A2 (de) 2005-10-26
DE69623330D1 (de) 2002-10-02
JPH11512911A (ja) 1999-11-02
EP1589765B1 (de) 2009-07-22
DE69634962D1 (de) 2005-08-25
JP2008011551A (ja) 2008-01-17
PT1589766E (pt) 2009-11-24
ATE223134T1 (de) 2002-09-15
US5933535A (en) 1999-08-03
EP0873653A2 (de) 1998-10-28
CA2233704C (en) 2003-09-16

Similar Documents

Publication Publication Date Title
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE69831961T2 (de) Bildobjekterzeugungsverfahren für objektbasierte kodierungssysteme unter verwendung von masken und gerundeten mittelwerten
DE19626615C2 (de) Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet
DE69722040T2 (de) 2-d gittergeometrie und bewegungsvektorkompression
US5799113A (en) Method for expanding contracted video images
DE602004004379T2 (de) Verfahren und einrichtungen zur codierung und decodierung einer bildsequenz mittels bewegungs-/texturzerlegung und wavelet-codierung
DE69736852T2 (de) Codierung- und Decodierungssystem für bewegte Bilder mit beliebig geformten Objekten
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE19626600A1 (de) Reversible-Wavelet-Transformationen und eingebettete Kodestrom-Manipulation
DE69937833T2 (de) Verfahren und vorrichtung zur skalierbaren formkodierung
DE102004056538A1 (de) Schrittweise Navigation in einem medizinischen Volumenbild
EP0985317B1 (de) Verfahren zur codierung und decodierung eines digitalisierten bildes
DE69918980T2 (de) Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung
EP1116184B1 (de) Verfahren und anordnung zur bearbeitung eines digitalisierten bildes mit bildpunkten
EP1110407B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
EP0981910B1 (de) Verfahren und vorrichtung zur codierung eines digitalisierten bildes
EP0786186B1 (de) Segmentadaptive zweidimensionale orthogonale transformationskodierung für ein digitales fernsehsystem
EP0981909B1 (de) Verfahren und vorrichtung zur codierung und decodierung eines digitalisierten bildes
WO2001049038A1 (de) Verfahren, anordnung und computerprogrammerzeugnis zur prädiktion bei der codierung eines in bildblöcke unterteilten bildes
DE10301572B4 (de) Verfahren zum Komprimieren einer Folge von Bildern
DE10007171A1 (de) Verfahren und Anordnung zur Codierung bzw. zur Codierung und Decodierung einer Zahlenfolge
DE19944300C2 (de) Verfahren, Anordnung und Computerprogrammerzeugnis zur Bewegungsschätzung bei der Codierung von einem Bildobjekt in einem Bild
EP0970586A1 (de) Verfahren und anordnung zur rechnergestützten bewegungsschätzung eines elements eines zu codierenden bildes
DE10143062C2 (de) Verfahren und Vorrichtung zur Codierung oder Codierung und Übertragung digitaler Videoinformationen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition