DE69623330T2 - Merkmalbasiertes videokompressionsverfahren - Google Patents
Merkmalbasiertes videokompressionsverfahrenInfo
- Publication number
- DE69623330T2 DE69623330T2 DE69623330T DE69623330T DE69623330T2 DE 69623330 T2 DE69623330 T2 DE 69623330T2 DE 69623330 T DE69623330 T DE 69623330T DE 69623330 T DE69623330 T DE 69623330T DE 69623330 T2 DE69623330 T2 DE 69623330T2
- Authority
- DE
- Germany
- Prior art keywords
- pixel
- pixels
- block
- frame
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000007906 compression Methods 0.000 title description 120
- 238000000034 method Methods 0.000 claims abstract description 227
- 230000033001 locomotion Effects 0.000 claims description 121
- 239000013598 vector Substances 0.000 claims description 54
- 238000003491 array Methods 0.000 claims description 12
- 238000006073 displacement reaction Methods 0.000 claims description 2
- 230000007717 exclusion Effects 0.000 claims 1
- 230000006835 compression Effects 0.000 description 118
- 230000009466 transformation Effects 0.000 description 113
- 230000000875 corresponding effect Effects 0.000 description 108
- 230000006870 function Effects 0.000 description 49
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 42
- 238000003384 imaging method Methods 0.000 description 42
- 230000008569 process Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 32
- 238000013213 extrapolation Methods 0.000 description 20
- 239000007787 solid Substances 0.000 description 20
- 238000013507 mapping Methods 0.000 description 19
- 230000011218 segmentation Effects 0.000 description 15
- 238000011426 transformation method Methods 0.000 description 12
- 238000013519 translation Methods 0.000 description 12
- 230000014616 translation Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000000844 transformation Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 239000002131 composite material Substances 0.000 description 6
- 230000006872 improvement Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000000717 retained effect Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/20—Contour coding, e.g. using detection of edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation 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/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
- G06V10/7515—Shifting the patterns to accommodate for positional errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
- H04N19/23—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/543—Motion estimation other than block-based using regions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/563—Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/649—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Television Systems (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Image Processing (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Steroid Compounds (AREA)
- Picture Signal Circuits (AREA)
- Auxiliary Devices For And Details Of Packaging Control (AREA)
- Vending Machines For Individual Products (AREA)
Description
- Die Erfindung betrifft ein Verfahren zum Komprimieren digitaler Videosignale, insbesondere ein objekt-basiertes digitales Videokodierungsverfahren mit Fehlerrückkoppelung zur Steigerung der Genauigkeit.
- Videospielfilmanzeigen basierend auf analogen Videosignalen sind seit langem in Form von Fernsehern verfügbar. Mit jüngsten Verbesserungen bei den Computerverarbeitungsfähigkeiten und bei der Erschwinglichkeit sind Videospielfilmanzeigen basierend auf digitalen Videosignalen breiter verfügbar geworden. Digitale Videosysteme können bedeutende Verbesserungen gegenüber herkömmlichen analogen Videosystemen beim Erzeugen, Verändern, Übertragen, Speichern und Abspielen von Videofilmsequenzen bieten.
- Digitale Videoanzeigen umfassen große Anzahlen von Abbildungsrahmen, die nacheinander mit Frequenzen zwischen 30 und 75 Hz abgespielt oder verarbeitet werden. Jeder Abbildungsrahmen ist noch eine Abbildung, welche aus einer Anordnung von Pixeln gebildet ist, die der Anzeigeauflösung des bestimmten Systems entsprechen. Beispielsweise weisen VHS- basierte Systeme Anzeigeauflösungen von 320 · 480 Pixeln, NTSC-basierte Systeme Anzeigeauflösungen von 720 · 486 Pixeln und in der Entwicklung befindliche Hochauflösungsfernsehsysteme (HDTV) Anzeigeauflösungen von 1360 · 1024 Pixeln auf.
- Die Menge von rohen Digitalinformationen, die in einer Videosequenz umfaßt sind, ist gewaltig. Die Speicherung und Übertragung von diesen Mengen von Videoinformation ist mit einer gewöhnlichen Personalcomputerausrüstung unausführbar. Mit Bezug auf ein digitalisiertes Formular mit einem relativ niedrig aufgelösten VHS-Abbildungsformat mit einer 320 · 480 Pixelauflösung würde ein Film mit einer Gesamtlänge von zwei Stunden Dauer mit 100 Gigabytes digitaler Videoinformationen korrespondieren. Zum Vergleich weisen herkömmliche optische Compaktdisks Kapazitäten von etwa 0,6 Gigabytes, magnetische Harddisks Kapazitäten von 1-2 Gigabytes und in der Entwicklung befindliche optische Compaktdisks Kapazitäten von bis zu 8 Gigabytes auf.
- Als Reaktion auf die Begrenzungen beim Speichern oder Übertragen solch gewaltiger Mengen von digitaler Videoinformation sind verschiedene Videokompressionsstandards oder Verfahren etabliert worden, einschließlich MPEG-1, MPEG-2 und H.26X. Diese herkömmlichen Videokompressionstechniken nutzen Ähnlichkeiten zwischen aufeinanderfolgenden Abbildungsrahmen, die als zeitliche oder Zwischenrahmenkorrelation bezeichnet werden, um eine Zwischenrahmenkompression zu schaffen, bei der pixelbasierte Repräsentationen von Abbildungsrahmen in Bewegungsrepräsentationen konvertiert werden. Zusätzlich nutzen herkömmliche Videokompressionstechniken Ähnlichkeiten innerhalb eines Abbildungsrahmens, die als räumliche oder Innerrahmenkorrelation bezeichnet werden, um eine Innerrahmenkompression zu schaffen, bei der die Bewegungsrepräsentation innerhalb eines Abbildungsrahmens weiter komprimiert wird. Die Innerrahmenkompression basiert auf herkömmlichen Verfahren zur Kompression von unbewegten Bildern, zum Beispiel auf einer diskreten Cosinustransformation (DCT).
- Obwohl sich der MPEG-1, der MPEG-2 und der H.26X Videokompressionsstandard in bestimmten Ausführungen unterscheiden, sind sie in einer Anzahl von Hinsichten ähnlich. Die folgende Beschreibung des MPEG-2-Kompressionsstandards ist allgemein auf die anderen anwendbar.
- Der MPEG-2-Standard liefert eine Zwischenrahmenkompression und eine Innerrahmenkompression, die auf quadratischen Blöcken oder Anordnungen von Pixeln in den Videoabbildungen basiert. Eine Videoabbildung wird in Blöcke mit 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.
- Die europäische Patentanmeldung 94401130.3, mit der Veröffentlichungsnummer EP 0 625 853 A2 beschreibt einen Videokodierer, der Konturinformation für Videorahmen extrahiert (d. h. Kanten ermittelt). Der Kodierer verwendet die Konturinformation, um die Videorahmen in Regionen zu teilen. Der Kodierer bestimmt Bewegungsparameter, die eine Region in einem Rahmen auf Basis einer Region in einem vorherigen Rahmen voraussagen.
- 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 Kodierverfahren 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:
- Fig. 1 ein Blockdiagramm eines Computersystems, das verwendet werden kann, um ein Verfahren und eine Vorrichtung auszuführen, die die Erfindung verkörpern;
- Fig. 2A und 2B vereinfachte Darstellungen eines Anzeigeschirms einer Videoanzeigevorrichtung, die zwei aufeinanderfolgende Abbildungsrahmen zeigt, die mit einem Videosignal korrespondieren;
- Fig. 3A ein verallgemeinertes funktionelles Blockdiagramm eines Videokompressionskodierverfahrens zum Komprimieren digitalisierter Videosignale, die die Anzeigebewegung in einer Videosequenz von mehreren Abbildungsrahmen repräsentieren;
- Fig. 3B ein funktionelles Blockdiagramm eines Hauptkodierverfahrens gemäß der Erfindung;
- Fig. 4 ein funktionelles Blockdiagramm eines Objektsegmentierungsverfahrens zum Segmentieren ausgewählter Objekte aus einem Abbildungsrahmen einer Videosequenz;
- Fig. 5A eine vereinfachte Darstellung eines Anzeigeschirms der Videoanzeigevorrichtung nach Fig. 2A;
- Fig. 5B eine vergrößerte Darstellung eines Abschnitts des Anzeigeschirms nach Fig. 5A;
- Fig. 6A eine funktionelles Blockdiagramm eines Polygonabgleichverfahrens zum Bestimmen eines Bewegungsvektors für einander entsprechende Paare von Pixeln korrespondierender Objekte aufeinanderfolgender Abbildungsrahmen;
- Fig. 7A und 7B vereinfachte Darstellungen eines Anzeigeschirms, der zwei aufeinanderfolgende Abbildungsrahmen mit zwei korrespondierenden Objekten zeigt;
- Fig. 8A ein funktionelles Blockdiagramm eines alternativen Pixelblockkorrelationsverfahrens;
- Fig. 9A eine schematische Darstellung eines ersten Pixelblocks, der zum Identifizieren korrespondierender Pixel in verschiedenen Abbildungsrahmen verwendet wird;
- Fig. 9B eine schematische Darstellung einer Anordnung von Pixeln, die mit einer Suchfläche in einem vorherigen Abbildungsrahmen korrespondieren, wo die korrespondierenden Pixel gesucht werden;
- Fig. 9C-9G schematische Darstellungen des ersten Pixelblocks, der über die Pixelanordnung nach Fig. 9B abgetastet wird, um die korrespondierenden Pixel zu identifizieren;
- Fig. 10A eine schematische Darstellung eines zweiten Pixelblocks, der zum Identifizieren korrespondierender Pixel in verschiedenen Abbildungsrahmen verwendet wird;
- Fig. 10B -10F schematische Darstellungen des zweiten Pixelblocks, der über die Pixelanordnung nach Fig. 9B abgetastet wird, um die korrespondierenden Pixel zu identifizieren;
- Fig. 11A eine schematische Darstellung eines dritten Pixelblocks, der zum Identifizieren korrespondierender Pixel in verschiedenen Abbildungsrahmen verwendet wird;
- Fig. 11B-11F schematische Darstellung des dritten Pixelblocks, der über die Pixelanordnung nach Fig. 9B abgetastet wird;
- Fig. 12 ein funktionelles Blockdiagramm eines mehrdimensionalen Transformationsverfahrens, das das Erzeugen einer Abbildung zwischen Objekten in dem ersten und dem zweiten aufeinanderfolgenden Abbildungsrahmen und das Quantisieren der Abbildung zum Übertragen oder Speichern umfaßt;
- Fig. 13 eine vereinfachte Darstellung eines Anzeigeschirms, der den Abbildungsrahmen nach Fig. 7B für Zwecke einer Darstellung des mehrdimensionalen Transformationsverfahrens nach Fig. 12 zeigt;
- Fig. 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 Fig. 12 bestimmt worden sind;
- Fig. 15 ein funktionelles Blockdiagramm eines Transformationsblockoptimierungsverfahrens, das bei einer alternativen Ausführungsform des mehrdimensionalen Transformationsverfahrens nach Fig. 12 verwendet wird;
- Fig. 16 eine vereinfachte unvollständige Darstellung eines Anzeigeschirms, der einen Abbildungsrahmen nach Fig. 7B für Zwecke der Darstellung des Transformationsblockoptimierungsverfahrens nach Fig. 15 zeigt;
- Fig. 17A und 17B ein funktionelles Blockdiagramm eines Vorkompressionsextrapolationsverfahrens zum Extrapolieren von Abbildungsmerkmalen beliebiger Gestaltung auf eine vordefinierte Gestaltung, um eine Komprimierung zu erleichtern;
- Fig. 18A-18D Darstellungen eines Anzeigeschirms, auf dem ein einfaches Objekt dargestellt ist, um verschiedene Aspekte des Extrapolationsverfahrens nach Fig. 14 zu zeigen;
- Fig. 19A und 19B funktionelle Blockdiagramme eines Kodierverfahrens bzw. eines Dekodierverfahrens, welche ein Laplace-Pyramidenkodierverfahren gemäß der Erfindung anwenden;
- Fig. 20A-20D vereinfachte Darstellungen der Farbbestandteilwerte eines beliebigen Satzes oder einer Anordnung von Pixeln, die gemäß des Kodierverfahrens nach Fig. 19A verarbeitet werden;
- Fig. 21 ein funktionelles Blockdiagramm eines Bewegungsvektorkodierverfahrens gemäß der Erfindung;
- Fig. 22 ein funktionelles Blockdiagramm eines alternativen quantisierten Objektkodier-Dekodierverfahrens;
- Fig. 23A ein verallgemeinertes funktionelles Blockdiagramm eines Videokompressionsdekodierverfahrens, das an das Kodierverfahren nach Fig. 3 angepaßt ist;
- Fig. 23B ein funktionelles Diagramm eines Hauptobjektdekodierverfahrens gemäß der Erfindung;
- Fig. 24A eine diagrammartige Darstellung eines gewöhnlichen Kettencodeformats;
- Fig. 24B eine vereinfachte Darstellung einer beispielhaften Kontur zum Bearbeiten mit dem Kettencodeformat nach Fig. 24A;
- Fig. 25A ein funktionelles Blockdiagramm eines Kettencodeverfahrens der Erfindung;
- Fig. 25B eine diagrammartige Darstellung eines Kettencodeformats der Erfindung;
- Fig. 25C eine diagrammartige Darstellung einer Spezialfall- Kettencodemodifikation, die bei dem Verfahren nach Fig. 25A verwendet wird;
- Fig. 26 ein funktionelles Blockdiagramm einer Schemenerzeugungs- oder eines Schemenkodierverfahrens;
- Fig. 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 Fig. 26 überlagert sind;
- Fig. 28 ein funktionelles Blockdiagramm eines Schemendekodierverfahrens, welches mit dem Kodierverfahren nach Fig. 26 korrespondiert.
- Fig. 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 Datenbits 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.
- Fig. 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örperobjekte 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.
- Fig. 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 Fig. 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 Fig. 2A wnd 2B werden zum Beispiel die rechteckigen Körperobjekte 56a und 56b und die Pyramidenobjekte 58a und 58b getrennt in Segmente aufgeteilt. Die segmentierten Objekte werden von binären oder Mehrbit- (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 Fig. 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.
- Fig. 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 Fig. 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 Fig. 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 Fig. 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.
- 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.
- Fig. 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.
- Fig. 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. Fig. 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 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 Fig. 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 {I&sub0;, I&sub1;, ..., Im- 1} bezeichnet und die n-Anzahl vom Clusterzentrum-Vektoren, die mit den Pixeln in der äußeren Kontur 156 korrespondieren, werden als {O&sub0;, O&sub1;, ..., 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 dem Inneren 144 des Objekts oder dem Äußeren gemäß dem minimalen fünfdimensionalen Abstand zu einem der Clusterzentrum-Vektoren Ii und Oj verknüpft.
- Ein Funktionsblock 162 deutet an, daß ein Nutzer mindestens zwei und vorzugsweise mehr (z. B. 4 bis 6) Merkmalpunkte in jedem Objekt eines ursprünglichen Rahmens oder Schlüsselrahmens auswählt. Vorzugsweise sind die Merkmalspunkte relativ unverwechselbare Aspekte des Objekts. Mit Bezug auf das rechteckige Festkörperabbildungsmerkmal 36 könnten zum Beispiel die Ecken 70a-70c 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 70a-70c) 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.
- Fig. 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 Fig. 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 Fig. 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 21 Ob (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 Pixellblock 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 21 Ob 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 Fig. 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 21 Ob 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:
- E = ( rij-rij' + gij-gij' + bij-bij' ),
- 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 n² · m² Berechnungen benötigt, um jedes korrespondierende vorherige Pixel in dem vorherigen Objekt 204a zu identifizieren.
- Fig. 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 Fig. 9A-9G und 10A-10G beschrieben, die beliebige Gruppen von Pixeln repräsentieren, die mit aufeinanderfolgenden Abbildungsrahmen 202a und 202b korrespondieren. Insbesondere ist Fig. 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. Fig. 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 Fig. 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 Fig. 7A gezeigt) wie bei einem herkömmlichen Blockabgleichverfahren abgetastet wird. Die Fig. 9C-9G stellen schematisch fünf der schätzungsweise q² 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 Fig. 9C-9G angedeutet sind, indem auf die korrelierten Pixel Bezug genommen wird. Zur Illustration zeigt Fig. 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 Fig. 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 Fig. 9E-9G zeigen ähnliche Spaltenkorrelationen mit dem Pixelblock 262 an drei beispielhaften aufeinanderfolgenden Abtastpositionen relativ zu der Pixelanordnung 266.
- Das Abtasten des ursprünglichen Pixelblocks 262 über die Pixelanordnung 266 bietet eine gespeicherte Anordnung oder eine Datenbasis von Spaltenkorrelationen. Mit dem Pixelblock 262, der eine r-Anzahl von Spalten 264 aufweist, und der Pixelanordnung 266 mit q · q Pixeln umfaßt die Spaltenkorrelationsdatenbank ungefähr eine Anzahl rq² 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 Fig. 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 (Fig. 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 (Fig. 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 Fig. 9C-9G repräsentieren die Fig. 10B-10G das Abtasten des Pixelblocks 276 über die Pixelanordnung 266.
- Ein Funktionsblock 286 deutet an, daß für eine Spalte 278 eine Spaltenkorrelation an jeder Abtastposition bestimmt und gespeichert wird. Entsprechend werden Spaltenkorrelationen 288(1)-288(5) mit Bezug auf die abgetasteten Positionen von Spalte 278 ausgeführt, wie entsprechend in Fig. 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 Fig. 9C die gleiche wie die Spaltenkorrelation 270'(1) nach Fig. 10C. Ähnlich sind die Spaltenkorrelationen 270'(2), 270'(3), 270'(5)-270'(8) und 270'(15)- 270'(18) nach Fig. 10D bis 10F die gleichen wie die entsprechenden Spaltenkorrelationen nach Fig. 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 (Fig. 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 Fig. 9A sind. Insbesondere umfassen die Spalten 296 Pixel A'-E', die nicht in den Spalten 264 umfaßt sind. Solch eine schrittweise Definition des nachfolgenden Pixelblocks 294 ist im wesentlichen die gleiche, die bei herkömmlichen Blockabgleichverfahren verwendet wurde.
- Ein Funktionsblock 298 deutet an, daß der Pixelblock 294 über die Pixelanordnung 266 ( Fig. 9B) in der Weise abgetastet wird, die oben mit Bezug auf die Funktionsblöcke 268 und 276 beschrieben worden ist. Fig. 11B-11F 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 Fig. 11B-11F gezeigt sind.
- Jede der Spaltenkorrelationen 302(1)-302(18) kann in abgekürzter Weise mit Bezug auf die Spaltenkorrelationen, die bezüglich des Pixelblocks 262 (Fig. 9A) ausgeführt wurden, berechnet werden.
- Zum Beispiel umfassen die Spaltenkorrelationen 302(4)-302(8) nach Fig. 11D Unterspaltenkorrelationen 304'(4)-304'(8), die die gleichen wie Unterspaltenkorrelationen 304(4)- 304(8) nach Fig. 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 O5E 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 Fig. 9-11 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.
- Fig. 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 Fig. 3 verwendet. Ein Transformationsverfahren 350 wird mit Bezug auf Fig. 7A und 13 beschrieben, von denen das letztere, ähnlich wie Fig. 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 + f,
- und 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 2¹&sup0; 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:
- Vorzugsweise werden diese Gleichungen mittels eines herkömmlichen Singularwertzerlegungsverfahrens (conventional singular value decomposition - SVD) gelöst, das einen minimalen kleinsten quadratischen Fehler für die Annäherung der dichten Bewegungsvektoren liefert. Ein herkömmliches SVD-Verfahren ist zum Beispiel in dem Buch "Numerical Recipes in C" von Press et al., Cambridge University Press, (1992) beschrieben.
- Wie oben beschrieben wurde, sind die zweidimensionalen affinen Transformationsgleichungen in der Lage, eine Verschiebung, eine Rotation, eine Vergrößerung und eine Scherung der Transformationsblöcke 356 zwischen aufeinanderfolgenden Abbildungsrahmen 202a und 202b zu repräsentieren. Im Gegensatz dazu verwenden herkömmliche Bewegungstransformationsverfahren, die in früheren Kompressionsstandards verwendet wurden, vereinfachte Transformationsgleichungen der Form:
- xi' = xi + g
- yi' = yi + h.
- Die früheren vereinfachten Transformationsgleichungen stellen die Bewegung mittels nur zweier Koeffizienten g und h dar, die nur ein Drittel der Menge an Information (d. h. Koeffizienten) repräsentieren, die mittels der bevorzugten mehrdimensionalen Transformationsgleichungen erhalten wird. Um eine überlegene Kompression der Information zu erhalten, die mittels des Transformationsverfahrens 350 relativ zu herkömmlichen Kompressionsverfahren erhalten wird, sind die Abmessungen des Transformationsblocks 356 vorzugsweise mehr als dreimal größer als die entsprechenden 16 · 16 Pixelblöcke, die bei MPEG-1 und MPEG-2 Kompressionsverfahren angewendet werden. Die bevorzugten 32 · 32 Pixelabmessungen der Transformationsblöcke 356 umfassen viermal die Anzahl der Pixel, die in den Transformationsblöcken nach herkömmlichen Transformationsverfahren verwendet werden. Die größeren Abmessungen der Transformationsblöcke 356 zusammen mit der verbesserten Genauigkeit, mit der die Koeffizienten der affinen Transformation die Bewegung der Transformationsblöcke 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. Fig. 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 364a-364c werden mittels Pixelkoordinaten (x&sub1;, y&sub1;), (x&sub2;, y&sub2;) bzw. (x&sub3;, y&sub3;) repräsentiert. Basierend auf der dichten Bewegungsschätzung nach Funktionsblock 352 weisen die Pixel 364a-364c entsprechende korrespondierende Pixel (xi', yi'), (x&sub2;', y&sub2;') und (x&sub3;', y&sub3;') 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 364a-364c 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 Fig. 14 gezeigt ist, sind die Pixel 364a-364c 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, Yi) von dem Objekt 204b und das entsprechende Pixel (x&sub1;', y&sub1;') von dem Objekt 204a, um vereinfachte affine Transformationsgleichungen der folgenden Form zu lösen:
- x&sub1;' = y&sub1; + c
- y&sub1;' = y&sub1; + 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 (x&sub1;, y&sub1;) (z. B. Pixel 364a) und (x&sub2;, y&sub2;) (d. h. entweder Pixel 364b oder 364c) von dem Objekt 204b und die entsprechenden Pixel (x&sub1;', y&sub1;' und x&sub2;', y&sub2;') vom Objekt 204a, um vereinfachte affine Transformationsgleichungen der Form:
- xi' = axi + c
- yi' = eyi + f,
- zu 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 + f
- sind 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 (x&sub3;, y&sub3;) von Objekt 204b, des korrespondierenden Pixels (x&sub3;', y&sub3;') 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 (Fig. 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.
- Fig. 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 Fig. 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 (Fig. 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 380a-380d 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 Signalrauschabstand ist. Diese Abfrage repräsentiert eine Feststellung, daß eine weitere Unterteilung des gegenwärtigen Transformationsblocks (z. B. des Transformationsblocks 374) die Genauigkeit der affinen Transformationen um mindestens den Schwellwert verbessern würde. Wann immer der zukünftige Signalrauschabstand mindestens um den Schwellwertbetrag größer als der gegenwärtige Signalrauschabstand ist, fährt der Abfrageblock mit einem Funktionsblock 384 und andernfalls mit einem Funktionsblock 388 fort.
- Ein Funktionsblock 384 deutet an, daß die Unterblöcke 380a-380d 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 386a-386d 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.
- Fig. 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 Fig. 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 Fig. 18A-18D 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 Fig. 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 (Fig. 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 Fig. 18B angedeutet ist, repräsentiert eine Region 418 horizontale Pixelsegmente, die Farbbestandteilwerte von null aufweisen, die an beiden Enden von dem Umfang 408 eingegrenzt werden. Regionen 420 repräsentieren horizontale Pixelsegmente, die Farbbestandteilwerte von null aufweisen und nur an einem Ende von dem Umfang 408 eingegrenzt werden. Ein Funktionsblock 416 fährt mit dem Funktionsblock 426 für die Regionen 418 fort, in dem die Pixelsegmente Farbbestandteilwerte von null aufweisen und an beiden Enden von dem Umfang 408 des Objekts 402 eingegrenzt werden, und fährt andernfalls mit einem Funktionsblock 422 fort.
- Der Funktionsblock 422 deutet an, daß den Pixeln in jedem horizontalen Pixelsegment einer Region 420 die Farbbestandteilwerte von einem Pixel 424 (nur exemplarische sind gezeigt) in den entsprechenden horizontalen Linien und dem Umfang des Objekts 402 zugewiesen werden. Alternativ sind die Farbestandteilwerte, die den Pixeln in den Regionen 420 zugewiesen werden, funktionell mit den Farbbestandteilwerten des Pixels 424 verwandt.
- Ein Funktionsblock 426 deutet an, daß den Pixeln in jedem horizontalen Pixelsegment in der Region 418 Farbbestandteilwerte zugewiesen werden, die mit einem Durchschnitt der Farbbestandteilwerte von Pixeln 428a und 428b, die sich in den entsprechenden horizontalen Linien und auf dem Umfang 408 befinden, korrespondieren und vorzugsweise gleich dem Durchschnitt sind.
- Ein Funktionsblock 430 deutet an, daß vertikale Linien von Pixeln innerhalb der Extrapolationsblockgrenze 406 abgetastet werden, um vertikale Linien mit vertikalen Pixelsegmenten zu identifizieren, die sowohl null als auch nicht null Farbbestandteilwerte aufweisen.
- Ein Funktionsblock 432 repräsentiert eine Abfrage, ob vertikale Pixelsegmente in vertikalen Linien mit Farbbestandteilwerten von null an beiden Enden von dem Umfang 408 des Objekts 402 eingegrenzt werden. Wie in Fig. 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 Farbbestandteilwerte zugewiesen werden, die mit einem Durchschnitt der Farbbestandteilwerte, die angrenzenden Pixeln zugewiesen sind, verwandt und vorzugsweise gleich zu dem Durchschnitt sind. Wie in Fig. 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 Objektextrapolationsverfahrens 400 ist, daß es sanft variierende Farbbestandteilwerte Pixeln zuweist, die nicht von dem Objekt 402 umfaßt sind, und optimiert daher die Kompressionsfähigkeiten und die Genauigkeit der herkömmlichen Standbildabbildungskompressionsverfahren. Im Gegensatz dazu wenden Nullauffüllungs- und Spiegelabbildungsverfahren nach dem Stand der Technik, wie sie von Chang et al. in dem Werk "Transform Coding of Arbitrarily-Shaped Image Segments", ACM Multimedia, Seiten 83-88, Juni 1993, beschrieben sind, die Kompression auf extrapolierte Objekte an, die mit Pixeln mit Nullfarbbestandteilwerten aufgefüllt sind, wie jene, die in dem Funktionsblock 410 angewendet werden. Die drastische Abbildungsänderung, die zwischen einem Objekt und den null-gefüllten Regionen auftritt, fügt Hochfrequenzänderungen ein, die schwer zu unterdrücken sind oder Abbildungsartefakte nach der Kompression einfügen. Das Objektextrapolationsverfahren 400 überwindet solche Nachteile.
- Fig. 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 Fig. 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 (Fig. 3) beschrieben.
- Ein erster Dezimierungsfilter 502 empfängt Pixelinformationen, die mit einem geschätzten Fehler 510 korrespondieren (Fig. 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 Fig. 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 506a-506c liefert der Dezimierungsfilter 502 die entsprechenden Werte von 8, 9 und 10, die als die ersten drei Pixel 512 in Fig. 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 {a&sub0;, a&sub1;, ..., 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. Fig. 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-Ppixel sich nicht zwischen einem gegenüberliegenden Paar Nicht-Nullwert-Pixeln befindet. Zur Darstellung repräsentiert Fig. 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 I&sub0; 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 L&sub2; 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 I&sub1; erster Ordnung zu bilden.
- Die Abbildungsbestandteile I&sub0;, I&sub1; und L&sub2; sind entsprechend
- Sätze von Farbbestandteilwerten, die die Farbbestandteilwerte für eine n · n Anordnung von Pixeln 504 repräsentieren.
- Der Abbildungsbestandteil I&sub0; 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 I&sub1; und L&sub2; repräsentieren Niederfrequenzaspekte der ursprünglichen Abbildung. Die Abbildungskomponenten I&sub0;, I&sub1; und L&sub2; liefern eine relative Kompression der ursprünglichen Abbildung. Die Abbildungsbestandteile I&sub0; und I&sub1; 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 L&sub2; ist nicht leicht komprimierbar, da er im wesentlichen niederfrequente Abbildungsmerkmale umfaßt, jedoch weist der Satz eine relativ kleine Größe auf.
- Fig. 19B ist ein funktionelles Blockdiagramm eines Dekodierverfahrens 536, das die Abbildungsbestandteile I&sub0;, I&sub1; und L&sub2; 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 L&sub2; 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 Fig. 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 b 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 Ja 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.
- 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 (Fig. 3) dichte Bewegungsvektorfelder, bei denen die Bewegungsvektoren für alle oder fast alle Pixel eines Objekts bestimmt werden. Solche dichten Bewegungsvektorfelder verbessern die Genauigkeit erheblich, mit denen die Bewegung zwischen den korrespondierenden Pixeln repräsentiert wird. Obwohl die gesteigerte Genauigkeit die mit der herkömmlichen spärlichen Bewegungsvektorfeldrepräsentation verknüpften Fehler erheblich reduzieren kann, stellen die zusätzlichen Informationen, die in den dichten Bewegungsvektorfeldern umfaßt sind, eine Zunahme der Menge von Informationen dar, die eine Videosequenz repräsentieren. In Übereinstimmung mit dieser Erfindung werden die dichten Bewegungsvektorfelder daher selbst komprimiert oder kodiert, um das Kompressionsverhältnis zu verbessern, welches mittels dieser Erfindung geliefert wird.
- Fig. 21 ist ein funktionelles Blockdiagramm eines Bewegungsvektorkodierverfahrens S60 zum Kodieren oder Komprimieren von Bewegungsvektorfeldern und vorzugsweise dichten Bewegungsvektorfeldern, zum Beispiel solchen, die in Übereinstimmung mit der dichten Bewegungstransformation 96 nach Fig. 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 Fig. 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 Fig. 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 Fig. 3 beschrieben.
- Das Videokompressionskodierverfahren 64 nach Fig. 3A verwendet das quantisierte vorherige Objekt 126, welches mit Bezug auf einen vorherigen Rahmen N-1 bestimmt worden ist, um ein entsprechendes Objekt in dem nächsten nachfolgenden Rahmen N zu kodieren. Als eine Konsequenz benötigt das Kodierverfahren 64, daß das quantisierte vorherige Objekt 126 in einem zugänglichen Speicherpuffer gespeichert ist. Bei herkömmlichen Videoanzeigeauflösungen würde solch ein Speicherpuffer eine Kapazität von mindestens einem halben Megabyte benötigen, um das quantisierte vorherige Objekt 126 für einen einzelnen Videorahmen zu speichern. Anzeigeformate höherer Auflösung würden entsprechend größere Speicherpuffer benötigen.
- Eine Fig. 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 Fig. 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 Codeverfahren 600 ähnlich auf das Dekodierverfahren angewendet werden kann, das mit dem Videokompressionskodierverfahren 64 korrespondiert.
- Das Videokompressionskodierverfahren 64 nach Fig. 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 (Fig. 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.
- Fig. 23A ist ein funktionelles Blockdiagramm eines Videokompressionsdekodierverfahrens 700 zum Dekomprimieren von Videoinformation, die von dem Videokompressionskodierverfahren 64 nach Fig. 3 erzeugt worden ist. Zum Zwecke der Konsistenz mit der Beschreibung des Kodierverfahrens 64 wird das Dekodierverfahren 700 mit Bezug auf Fig. 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 (Fig. 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.
- Fig. 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äß Fig. 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 Fig. 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 (Fig. 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 (Fig. 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 (Fig. 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 (Fig. 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.
- Masken, Objekte, Schemen und andere graphische Merkmale werden gewöhnlich mittels ihrer Konturen repräsentiert. Wie in Fig. 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.
- Fig. 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 802a-802h. 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 Fig. 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 Fig. 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 Fig. 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 Fig. 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 826a-826c sind relativ zu einer vorausgehenden Ausrichtungsrichtung 828 zwischen einem gegenwärtigen Pixel 830 und einem angrenzenden Pixel 832 definiert, daß das vorhergehende Pixel indem Kettencode repräsentiert.
- Die vorausgehende Ausrichtungsrichtung 828 kann sich in irgendeine der Richtungen 802 erstrecken, die in Fig. 24A gezeigt sind, sie ist jedoch in einer bestimmten Orientierung (d. h. rechts, horizontal) für Zwecke der Darstellung gezeigt. Die Richtung 628a ist daher als die gleiche Richtung 828 definiert. Die Richtungen 826b und 826c unterscheiden sich von der Richtung 828 mittels eines nach links gerichteten oder eines nach rechts gerichteten Versatzes von einem Pixel. Es ist experimentell festgestellt worden, daß etwas mehr als 50% der Kettencodes 824 mit der Vorwärtsrichtung 826 und etwas weniger als 25% der Kettencodes 824 mit jeder der Richtungen 826b und 826c korrespondieren.
- Ein Funktionsblock 836 repräsentiert eine Anfrage, ob das nächste angrenzende Pixel in der Kontur sich an eine der Richtungen 826 anpaßt. Wann immer das nächste angrenzende Pixel in der Kontur sich an eine der Richtungen 826 anpaßt, fährt der Funktionsblock 836 mit einem Funktionsblock 838 und andernfalls mit einem Funktionsblock 840 fort.
- Ein Funktionsblock 838 deutet an, daß dem nächsten angrenzenden Pixel ein Kettencode 824 zugewiesen wird, der mit seiner Richtung 826 relativ zu der Richtung 828, entlang welcher das angrenzende vorausgehende Paar von Pixeln ausgerichtet ist, korrespondiert.
- Ein Funktionsblock 840 deutet an, daß eine Pixelsequenz, die sich an eine der Richtungen 826 anpaßt, gegen die tatsächliche sich nicht anpassende Pixelsequenz ausgetauscht wird. Basierend auf Experimenten ist festgestellt worden, daß solche Ersetzungen typischerweise in weniger als 0,2% der Pixelsequenzen in einer Kontur auftreten und mittels einer von sechs Spezialfallmodifizierungen in Einklang gebracht werden können.
- Eine Fig. 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 X¹, X², 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 X¹ und X² 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 842b-842f konvertieren ähnlich nicht konforme Pixelsequenzen 844b-844f in entsprechende konforme Sequenzen 846b-846f.
- Die Pixelsequenzmodifikationen 842 lassen Pixel aus, die Richtungsausrichtungen verursachen, die sich um 90º oder mehr relativ zu den Ausrichtungen von angrenzenden vorausgehenden Pixeln X¹ und X² 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 824a-824c, die mit den Richtungen 826a-826c korrespondieren, die für etwa 50% und 25% der Pixel in der Kontur auftreten, werden entsprechende Huffmanncodes von 0, 11 und 10 zugewiesen. Solche Huffmanncodes erster Ordnung ermöglichen dem Kettenverfahren 810, Konturen mit einer Bitrate von weniger als 1,5 Bits pro Pixel in der Kontur darzustellen. Eine solche Bitrate repräsentiert ungefähr eine 50%-ige Kompressionsverhältnisverbesserung gegenüber herkömmlichen Kettencodeverfahren.
- Der Fachmann wird schätzen, daß Huffmanncodes höherer Ordnung höhere Kompressionsverhältnisse liefern können. Huffmanncodes höherer Ordnung umfassen zum Beispiel das Zuweisen vorbestimmter Werte zu vorausgewählten Sequenzen der Huffmanncodes erster Ordnung.
- 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 Dreiecken bilden, werden mittels des Verbindens der angrenzenden Verdrehungspunkte gebildet. Die Verdrehungspunkte sind die Eckpunkte der Dreiecke. Der gegenwärtige Ort von jedem Dreieck auf der gegenwärtigen Bitmap wird bestimmt und auf der Speichervorrichtung gespeichert. Ein Abschnitt der Daten der gegenwärtigen Bitmap, der die erste Abbildung innerhalb des gegenwärtigen Orts jedes Dreiecks definiert, wird für die weitere Benutzung zurückbehalten.
- Eine nachfolgende Bitmap, die eine zweite Abbildung der gegenwärtigen Bitmapreihe definiert, wird von der Abbildungsquelle empfangen und die Figuren und Teile der Figur werden von dem Operator identifiziert. Als nächstes wird das gegenwärtige Gitter von Dreiecken von der gegenwärtigen Bitmap der nachfolgenden Bitmap überlagert. Die Verdrehungspunkte von einem gegenwärtigen Gitter von Dreiecken werden neu angeordnet, um mit den Merkmalen der entsprechenden Figur auf der nachfolgenden Bitmap zusammenzufallen. Die neu angeordneten Verdrehungspunkte bilden ein nachfolgendes Gitter von Dreiecken auf der nachfolgenden Bitmap der zweiten Abbildung. Der nachfolgende Ort für jedes Dreieck in der nachfolgenden Bitmap wird bestimmt und in der Speichervorrichtung gespeichert. Ein Abschnitt von Daten der nachfolgenden Bitmap, die die zweite Abbildung innerhalb des nachfolgenden Orts jedes Dreiecks definiert, wird für eine weitere Nutzung zurückbehalten.
- Das Verfahren zum Bestimmen und Speichern des gegenwärtigen und nachfolgenden Orts für jedes Dreieck wird für mehrere aufeinanderfolgende Bitmaps der gegenwärtigen Bitmapreihe wiederholt. Wenn das Verfahren abgeschlossen ist, wird eine Durchschnittsabbildung für jedes Dreieck in der gegenwärtigen 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 Ort für jedes Dreieck der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Eine vorausgesagte Bitmap wird mittels des Berechnens einer Transformationslösung zum Transformieren der Durchschnittsabbildung für jedes Dreieck in der gegenwärtigen Bitmapreihe auf den gegenwärtigen Ort für jedes Dreieck der gegenwärtigen Bitmap berechnet und die Transformationslösung auf die Durchschnittsabbildung von jedem Dreieck angewendet. Diese vorausgesagte Bitmap wird an den Monitor zum Anzeigen übergeben.
- In Verbindung mit einer Wiedergabe eines genau festgelegten Bewegungsvideos (einem Videospiel), bei dem die Abbildungen mittels eines Steuerprogramms beim Abspielen bestimmt werden, wird eine Schemabitmap in ihrer Gesamtheit auf einer Speichervorrichtung gespeichert. Die Schemabitmap umfaßt mehrere Datenbits, die eine Schemaabbildung definieren. Die Schemaabbildung wird auf einem Monitor angezeigt, und Teile des Schemas werden von einem Operator identifiziert und Verdrehungspunkte für die Schemateile ausgewählt.
- Ein Gitter von Dreiecken wird den Teilen der Schemabitmap überlagert. Die Dreiecke, die das Gitter von Dreiecken bilden, werden mittels des Verbindens angrenzender Verdrehungspunkte gebildet. Die Verdrehungspunkte sind die Ecken der Dreiecke. Der Ort von jedem der Dreiecke der Schemabitmap wird bestimmt und auf die Speichervorrichtung gespeichert.
- Während der Wiedergabe wird ein nachfolgender Ort für jedes Dreieck von einem Steuerprogramm empfangen. Die Schemabitmap und der nachfolgende Ort für jedes Dreieck auf der Schemabitmap werden von der Speichervorrichtung abgerufen und an den Anzeigeprozessor übergeben. Der nachfolgende Ort von jedem Dreieck wird auch an den Anzeigeprozessor übergeben.
- Eine Transformationslösung wird für jedes Dreieck auf der Schemabitmap berechnet. Eine nachfolgende Bitmap wird dann in dem Anzeigeprozessor erzeugt, indem die Transformationslösung für jedes Dreieck aus der Schemabitmap abgeleitet wird, die die Schemaabbildung innerhalb des Ortes jedes Dreiecks definiert. Der Anzeigeprozessor übergibt die nachfolgende Schemabitmap an einen Monitor zum Anzeigen. Jedes Verfahren auf Anforderung wird für jeden nachfolgenden Ort von jedem Dreieck wiederholt, das von dem Steuerprogramm angefordert wird.
- Wie in Fig. 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 Fig. 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 Ort für jedes Dreieck in der gegenwärtigen Bitmap. Der gegenwärtige Ort jedes Dreiecks auf der gegenwärtigen Bitmap ist mittels des Orts der Verdrehungspunkte bestimmt, die die Eckpunkte des Dreiecks bilden. Bei einem Schritt 912 wird der gegenwärtige Ort des Dreiecks auf die Speichervorrichtung gespeichert. Ein Abschnitt der Daten, die von der gegenwärtigen Bitmap abgeleitet wurden, der die erste Abbildung innerhalb des gegenwärtigen Orts für jedes Dreieck bestimmt, wird bei einem Schritt 914 zurückbehalten.
- Als nächstes wird bei einem Schritt 916 eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe von der CPU 22 empfangen. Die nachfolgende Bitmap umfaßt mehrere Datenbits, welche eine zweite Abbildung der gegenwärtigen Bitmapreihe definieren. Die zweite Abbildung kann oder kann nicht die Figuren umfassen, die mit den Figuren in der ersten Abbildung korrespondieren. Für die folgenden Schritte wird angenommen, daß die zweite Abbildung Figuren aufweist, die mit den Figuren in der ersten Abbildung korrespondieren. Bei einem Schritt 918, wird das gegenwärtige Gitter von Dreiecken auf die nachfolgende Bitmap überlagert. Die zweite Abbildung mit dem überlagerten Dreiecksgitter wird dem Operator auf dem Monitor 28 angezeigt.
- Bei einem Schritt 920 werden die Verdrehungspunkte von dem Operator mit Unterstützung durch das Computersystem 20 neu angeordnet, um mit den entsprechenden Merkmalen auf der nachfolgenden Bitmap zusammenzufallen. Das Computersystem 20 ordnet die Verdrehung mittels der Verwendung des Blockabgleichens neu an. Irgendwelche Fehler werden von dem Operator korrigiert. Die neuangeordneten Verdrehungspunkte eines nachfolgenden Gitters von Dreiecken sind in Fig. 27B gezeigt. Die neuangeordneten Verdrehungspunkte sind die Eckpunkte der Dreiecke. Genauer umfaßt die zweite Abbildung der nachfolgenden Bitmap von Person 970 den Kopf 972, den Torso 974, den rechten Arm 976, den linken Arm 978, das rechte Bein 980 und das linke Bein 982. In der zweiten Abbildung ist der rechte Arm 980 jedoch angehoben. Die gegenwärtigen Gitter der ersten Abbildung sind über jedem Teil überlagert worden und ihre Verdrehungspunkte neu angeordnet worden, um mit den entsprechenden Merkmalen auf der zweiten Abbildung zusammenzufallen. Die neu angeordneten Verdrehungspunkte definieren die nachfolgenden Gitter von Dreiecken. Die nachfolgenden Gitter umfassen Dreiecke, die mittels des Verbindens der neuangeordneten Verdrehungspunkte gebildet sind. Somit bilden die neuangeordneten Verdrehungspunkte Eckpunkte der Dreiecke in den nachfolgenden Gittern.
- Fortfahrend mit einem Schritt 922 wird ein nachfolgender Ort für jedes Dreieck der nachfolgenden Bitmap mittels des Computersystems 20 bestimmt. Bei einem Schritt 924 wird der nachfolgende Ort jedes Dreiecks auf der nachfolgenden Bitmap auf der Speichervorrichtung gespeichert. Ein Abschnitt der Daten, die von der nachfolgenden Bitmap abgeleitet wurden, der die zweite Abbildung innerhalb des nachfolgenden Orts von jedem Dreieck definiert, wird bei einem Schritt 926 zurückbehalten. Der Schritt 928 führt zu einem Entscheidungsschritt 928, wo festgelegt wird, ob eine nächste nachfolgende Bitmap existiert.
- 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 Ort für jedes Dreieck auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Eine affine Transformationslösung zum Transformieren der Durchschnittsabbildung jedes Dreiecks auf den gegenwärtigen Ort des Dreiecks auf der gegenwärtigen Bitmap wird dann mittels des Computersystems bei einem Schritt 938 berechnet. Bei einem Schritt 940 wird eine vorausgesagte Bitmap mittels des Anwendens der Transformationslösung auf die Durchschnittsabbildung von jedem Dreieck auf den gegenwärtigen Ort jedes Dreiecks auf der gegenwärtigen Bitmap erzeugt. Die vorausgesagte Bitmap wird mit der gegenwärtigen Bitmap bei einem Schritt 942 verglichen.
- Bei einem Schritt 944 wird eine Korrekturbitmap erzeugt. Die korrigierte Bitmap umfaßt die Datenbits der gegenwärtigen Bitmap, die nicht genau von der vorausgesagten Bitmap vorausgesagt wurden. Die korrigierte Bitmap wird auf die Speichervorrichtung bei einem Schritt 948 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 Ort jedes Dreiecks auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen wird. Falls eine nächste nachfolgende Bitmap nicht existiert, wird dem Nein-Zweig des Entscheidungsschritts 950 zu einem Entscheidungsschritt 954 gefolgt, bei dem bestimmt wird, ob eine nachfolgende Bitmapreihe existiert. Fallseine 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 Entscheidungsschritts 954 zu einem Schritt 958 gefolgt, wo die CPU 22 die nachfolgende Bitmapreihe als die gegenwärtige Bitmapreihe empfängt. Der Schritt 956 kehrt zu dem Schritt 902 zurück, wo die Figuren der ersten Abbildung der gegenwärtigen Bitmapreihe von einem Operator identifiziert werden.
- Das Verfahren nach Fig. 26 beschreibt die Erzeugung eines Schemas oder eines Hauptobjekts 90 für die Verwendung durch das Kodierverfahren 64 nach Fig. 3. Das Verfahren nutzt das Hauptobjekt 90, um vorausgesagte Objekte 102 zu bilden, wie mit Bezug auf Fig. 28 beschrieben wird. Wie in Fig. 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 (Fig. 1) optional einen Anzeigeprozessor oder andere gewidmete Bauteile zum Ausführen der Verfahren dieser Erfindung umfassen kann. Fortfahrend mit einem Schritt 1006 wird der gegenwärtige Ort jedes Dreiecks auf der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen. Der gegenwärtige Ort jedes Dreiecks wird an den Anzeigeprozessor bei einem Schritt 1008 übergeben.
- Als nächstes wird eine affine Transformationslösung zum Transformieren der Durchschnittsabbildung jedes Dreiecks auf den gegenwärtigen Ort jedes Dreiecks auf der gegenwärtigen Bitmap mittels des Anzeigeprozessors bei einem Schritt 1010 berechnet. Fortfahrend mit einem Schritt 1012 wird eine vorausgesagte Bitmap mittels des Anzeigeprozessors erzeugt, indem die Transformationslösung zum Transformieren der Durchschnittsabbildung jedes Dreiecks auf den gegenwärtigen Ort jedes Dreiecks auf der gegenwärtigen Bitmap angewendet wird.
- Bei einem Schritt 1014 wird eine Korrekturbitmap für die gegenwärtige Bitmap von der Speichervorrichtung abgerufen. Die Korrekturbitmap wird an den Anzeigeprozessor bei einem Schritt 716 übergeben. Eine Anzeigebitmap wird dann in dem Anzeigeprozessor mittels des Überlagerns der vorausgesagten Bitmap mit der Korrekturbitmap erzeugt. Der Anzeigeprozessor behält eine Kopie der Durchschnittsabbildung für jedes Dreieck und übergibt die Anzeigebitmap an den Rahmenspeicher zum Anzeigen auf dem Monitor.
- Als nächstes wird bei einem Entscheidungsschritt 1020 festgestellt, ob eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe existiert, falls eine nachfolgende Bitmap der gegenwärtigen Bitmapreihe existiert, wird dem Ja-Zweig des Entscheidungsschritts 1020 zu einem Schritt 1022 gefolgt. Bei dem Schritt 1022 wird die nachfolgende Bitmap die gegenwärtige Bitmap. Der Schritt 1022 kehrt zu dem Schritt 1006 zurück, wo der Ort für jedes Dreieck der gegenwärtigen Bitmap von der Speichervorrichtung abgerufen wird.
- Es wird zudem 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 (18)
1. Verfahren zum Ausführen einer Blockabgleich-Bewegungsschätzung für einen
Pixelblock (210b) in einem objekt-basierten Videokodierer, wobei der Pixelblock
(210b) wenigstens ein Pixel innerhalb eines Videoobjekts (204b) eines ersten
Rahmens (202b) umfaßt, wobei das Ausführen das Setzen des Pixelblocks (210b) und
das Suchen nach einem entsprechenden Pixelblock (210a) in einer Suchfläche (212)
eines zweiten Rahmens (202a) umfaßt, und wobei das Suchen das Vergleichen des
Pixelblocks (210b) mit jedem von mehreren Kandidaten-Pixelblöcken in der
Suchfläche (212) umfaßt, dadurch gekennzeichnet, daß vom Vergleichen ein oder
mehrere Pixel (226) des Pixelblocks (210b) ausgeschlossen werden, die außerhalb des
Videoobjekts (204b) sind.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das
Ausschließen mittels Setzens von Ergebnissen des Vergleichens auf Null für jeden der
Pixel (226) ausgeführt wird, die außerhalb des Videoobjekts (204b) sind.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das
Vergleichen das Berechnen eines Fehlers des Pixelblocks (210b) relativ zu jedem der
Kandidaten-Pixelblöcke umfaßt, wobei keiner der Pixel (226), die außerhalb des
Videoobjekts (204b) sind, zu dem Fehler beiträgt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,
daß der Pixelblock (210b) und die Suchfläche (212) rechteckige Anordnungen von
Pixeln sind.
5. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet,
daß der zweite Rahmen (202a) in dem ersten Rahmen (202b) vorangeht.
6. Verfahren nach einem der vorangegangenen Ansprüche, dadurch
gekennzeichnet, daß die Bewegungsschätzung einen Bewegungsvektor für einen
laufenden Pixel (216) innerhalb des Videoobjekts (204b) aus einem entsprechenden Pixel
eines zweiten Videoobjekts (204a) des zweiten Rahmens (202a) bestimmt.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der
Pixelblock (210b) auf dem vorliegenden Pixel (216) zentriert ist.
8. Verfahren nach Anspruch 6 oder 7, gekennzeichnet durch das
Wiederholen des Ausführens der Block-Bewegungsschätzung für zusätzliche Pixel innerhalb
des Videoobjekts (204b).
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die.
Suchfläche (212) eine Pixelanordnung (266) umfaßt, wobei das Vergleichen frühere
Pixelkorrelationen zwischen der Pixelanordnung (266) und einem früheren Pixelblock nutzt
(260).
10. Computerlesbares Medium, auf dem von einem Computer ausführbare
Instruktionen gespeichert sind, um einen hierdurch programmierten Computer zu
veranlassen, das Verfahren nach einem der vorangehenden Ansprüche auszuführen.
11. Computerlesbares Medium, auf dem Instruktionen gespeichert sind, welche
von einem Computer ausführbar sind, um einen hierdurch programmierten Computer
zu veranlassen, ein Verfahren für eine Blockabgleich-Bewegungsschätzung für einen
Pixelblock (210b) in einem objekt-basierten Videokodierer auszuführen, wobei der
Pixelblock (210b) wenigstens ein Pixel innerhalb eines Videoobjekts (204b) eines
ersten Rahmens (202b) umfaßt und wobei das Ausführen das Bestimmen (208) des
Pixelblocks (210b) und das Bestimmen (234) eines Bewegungsvektors umfaßt, dadurch
gekennzeichnet,
daß der Pixelblock definiert wird (228), um Pixel (226) außerhalb des
Videoobjekts (204b) wegzulassen.
12. Computerlesbares Medium nach Anspruch 11, gekennzeichnet durch:
Identifizieren (214) eines laufenden Pixels (216) innerhalb des Videoobjekts (204b);
und
Identifizieren (232) eines früheren entsprechenden Pixels in einer Suchfläche
(212) eines zweiten Rahmens (202a), wobei der Bewegungsvektor eine Verschiebung
zwischen dem früheren entsprechenden Pixel und dem laufendem Pixel (216) anzeigt.
13. Computerlesbares Medium nach Anspruch 12, dadurch
gekennzeichnet, daß das Identifizieren (232) des früheren entsprechenden Pixel das Berechnen
eines Fehlers des Pixelblocks (210b) relativ zu jedem von mehreren Kandidaten-
Pixelblöcken der Suchfläche (212) umfaßt, wobei der Beitrag der weggelassenen Pixel
(226) zu den Fehlern Null ist.
14. Computerlesbares Medium nach Anspruch 12 oder 13, dadurch
gekennzeichnet, daß der Pixelblock (210b) und die Suchfläche (212) rechteckige
Anordnungen von Pixeln sind.
15. Computerlesbares Medium nach einem der Ansprüche 12 bis 14,
gekennzeichnet durch das Identifizieren (238) eines nächsten laufenden Pixels für die
Bewegungsschätzung.
16. Computerlesbares Medium nach Anspruch 12, dadurch
gekennzeichnet, daß die Suchfläche (212) eine Pixelanordnung (266) umfaßt und das während
des Identifizieren (232) des früheren entsprechenden Pixels frühere Pixelkorrelationen
zwischen der Pixelanordnung (266) und einem früheren Pixelblock genutzt werden
(260).
17. Computerlesbares Medium nach einem der Ansprüche 12 bis 16, dadurch
gekennzeichnet, daß der zweite Rahmen (202a) dem ersten Rahmen (202b)
vorangeht.
18. Computerlesbares Medium nach einem der Ansprüche 1 1 bis 17, dadurch
gekennzeichnet, daß nach dem Definieren (228) verbleibende Pixel des
Pixelblocks (210b) eine nicht-viereckige, polygonale Anordnung von Pixeln aufweisen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US503195P | 1995-10-05 | 1995-10-05 | |
PCT/US1996/015892 WO1997013372A2 (en) | 1995-10-05 | 1996-10-04 | Feature-based video compression method |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69623330D1 DE69623330D1 (de) | 2002-10-02 |
DE69623330T2 true DE69623330T2 (de) | 2003-05-15 |
Family
ID=21713781
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69634962T Expired - Lifetime DE69634962T2 (de) | 1995-10-05 | 1996-10-04 | Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes |
DE69623330T Expired - Lifetime DE69623330T2 (de) | 1995-10-05 | 1996-10-04 | Merkmalbasiertes videokompressionsverfahren |
DE69637977T Expired - Lifetime DE69637977D1 (de) | 1995-10-05 | 1996-10-04 | Transformationsblockoptimierung |
DE69638007T Expired - Lifetime DE69638007D1 (de) | 1995-10-05 | 1996-10-04 | Objektbasiertes Videodekompression für willkürlich geformte Bildsegmente |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69634962T Expired - Lifetime DE69634962T2 (de) | 1995-10-05 | 1996-10-04 | Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69637977T Expired - Lifetime DE69637977D1 (de) | 1995-10-05 | 1996-10-04 | Transformationsblockoptimierung |
DE69638007T Expired - Lifetime DE69638007D1 (de) | 1995-10-05 | 1996-10-04 | Objektbasiertes Videodekompression für willkürlich geformte Bildsegmente |
Country Status (10)
Country | Link |
---|---|
US (9) | US6026182A (de) |
EP (4) | EP1589765B1 (de) |
JP (3) | JP4242452B2 (de) |
AT (3) | ATE300153T1 (de) |
AU (1) | AU7388996A (de) |
CA (4) | CA2432740C (de) |
DE (4) | DE69634962T2 (de) |
ES (1) | ES2334507T3 (de) |
PT (1) | PT1589766E (de) |
WO (1) | WO1997013372A2 (de) |
Families Citing this family (383)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002091302A2 (en) | 2001-05-04 | 2002-11-14 | Legend Films, Llc | Image sequence enhancement system and method |
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 |
US6418424B1 (en) | 1991-12-23 | 2002-07-09 | Steven M. Hoffberg | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
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 |
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 |
CN1216199A (zh) | 1997-01-30 | 1999-05-05 | 松下电器产业株式会社 | 数字图象填补方法、图象处理装置及数据记录媒体 |
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 | 日本電気株式会社 | 映像表示装置 |
WO1999017551A1 (de) * | 1997-09-29 | 1999-04-08 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zur speicherung von mindestens einem digitalen bild |
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 |
US6400844B1 (en) | 1998-12-02 | 2002-06-04 | Xerox Corporation | Method and apparatus for segmenting data to create mixed raster content planes |
US6324305B1 (en) | 1998-12-22 | 2001-11-27 | Xerox Corporation | Method and apparatus for segmenting a composite image into 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 |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet 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 |
KR20020047031A (ko) * | 1999-04-17 | 2002-06-21 | 펄센트 코포레이션 | 효율적인 화상 처리 방법 및 장치 |
US7082162B2 (en) * | 1999-04-17 | 2006-07-25 | Pts Corporation | Segment-based encoding system including segment-specific metadata |
US7050503B2 (en) * | 1999-04-17 | 2006-05-23 | Pts Corporation | Segment-based encoding system using residue coding by basis function coefficients |
US6600786B1 (en) * | 1999-04-17 | 2003-07-29 | Pulsent Corporation | Method and apparatus for efficient video processing |
US7085319B2 (en) * | 1999-04-17 | 2006-08-01 | Pts Corporation | Segment-based encoding system using segment hierarchies |
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 |
US20010034788A1 (en) * | 2000-01-21 | 2001-10-25 | Mcternan Brennan J. | System and method for receiving packet data multicast in sequential looping fashion |
JP2001266159A (ja) * | 2000-03-17 | 2001-09-28 | Toshiba Corp | 物体領域情報生成方法及び物体領域情報生成装置並びに近似多角形生成方法及び近似多角形生成装置 |
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 |
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 |
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 |
EP1173026B1 (de) * | 2000-07-10 | 2008-07-30 | STMicroelectronics S.r.l. | 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 |
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 |
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 |
US6700586B1 (en) | 2000-08-23 | 2004-03-02 | Nintendo Co., Ltd. | Low cost graphics with stitching processing hardware support for skeletal animation |
US7538772B1 (en) * | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US6707458B1 (en) | 2000-08-23 | 2004-03-16 | Nintendo Co., Ltd. | Method and apparatus for texture tiling in a graphics system |
US7576748B2 (en) * | 2000-11-28 | 2009-08-18 | Nintendo Co. Ltd. | Graphics system with embedded frame butter having reconfigurable pixel formats |
US6937245B1 (en) * | 2000-08-23 | 2005-08-30 | Nintendo Co., Ltd. | Graphics system with embedded frame buffer having reconfigurable pixel formats |
US7196710B1 (en) * | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6811489B1 (en) | 2000-08-23 | 2004-11-02 | Nintendo Co., Ltd. | Controller interface for a graphics system |
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 |
US20080040227A1 (en) | 2000-11-03 | 2008-02-14 | At&T Corp. | System and method of marketing using a multi-media communication system |
US7203648B1 (en) | 2000-11-03 | 2007-04-10 | At&T Corp. | Method for sending multi-media messages with customized audio |
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 |
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 |
US20020165839A1 (en) * | 2001-03-14 | 2002-11-07 | Taylor Kevin M. | Segmentation and construction of segmentation classifiers |
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 |
US6973218B2 (en) * | 2001-04-25 | 2005-12-06 | Lockheed Martin Corporation | Dynamic range compression |
US7103235B2 (en) * | 2001-04-25 | 2006-09-05 | Lockheed Martin Corporation | Extended range image processing for electro-optical systems |
US8897596B1 (en) | 2001-05-04 | 2014-11-25 | Legend3D, Inc. | System and method for rapid image sequence depth enhancement with translucent elements |
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 |
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 |
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 |
US7460993B2 (en) * | 2001-12-14 | 2008-12-02 | Microsoft Corporation | Adaptive window-size selection in transform coding |
US6885368B2 (en) * | 2001-12-14 | 2005-04-26 | Sgdl Systems Inc. | Method and apparatus for generating m-degree forms in a n-dimension space |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
ES2664270T3 (es) | 2001-12-17 | 2018-04-18 | Microsoft Technology Licensing, Llc | Codificación por omisión de macrobloques |
MXPA04007916A (es) * | 2002-01-16 | 2005-05-16 | Cornerstone Group Ltd | Sistema y metodo optimizados para la transmision de datos. |
CN1618236A (zh) * | 2002-01-22 | 2005-05-18 | 微软公司 | 编码和解码视频数据以起动随机存取和接合的方法和*** |
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 |
US7110459B2 (en) * | 2002-04-10 | 2006-09-19 | Microsoft Corporation | Approximate bicubic filter |
US7116831B2 (en) * | 2002-04-10 | 2006-10-03 | Microsoft Corporation | Chrominance motion vector rounding |
US7620109B2 (en) * | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
US7305034B2 (en) * | 2002-04-10 | 2007-12-04 | Microsoft Corporation | Rounding control for multi-stage interpolation |
WO2003090470A2 (en) * | 2002-04-19 | 2003-10-30 | Microsoft Corporation | Methods and systems for preventing start code emulation at non-byte aligned and/or bit-shifted locations |
US7242713B2 (en) * | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
US7463684B2 (en) * | 2002-05-03 | 2008-12-09 | Microsoft Corporation | Fading estimation/compensation |
US7609767B2 (en) * | 2002-05-03 | 2009-10-27 | Microsoft Corporation | Signaling for fading 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 |
US7085420B2 (en) * | 2002-06-28 | 2006-08-01 | Microsoft Corporation | Text detection in continuous tone image segments |
US7016547B1 (en) * | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
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 |
PT2282310E (pt) | 2002-09-04 | 2012-04-13 | Microsoft Corp | Codificação entrópica por adaptação de modos de codificação entre codificação por nível e codificação por comprimento/nível de sequência |
US7433824B2 (en) | 2002-09-04 | 2008-10-07 | Microsoft Corporation | Entropy coding by adapting coding between level and run-length/level modes |
US7379496B2 (en) * | 2002-09-04 | 2008-05-27 | Microsoft Corporation | Multi-resolution video coding and decoding |
US7421129B2 (en) * | 2002-09-04 | 2008-09-02 | Microsoft Corporation | Image compression and synthesis for video effects |
WO2004042676A2 (en) * | 2002-11-08 | 2004-05-21 | 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 |
EP1592617B1 (de) * | 2003-02-13 | 2006-08-30 | Tellap Inc. | Schüttgutbehälter |
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 |
CN101288582A (zh) * | 2003-04-25 | 2008-10-22 | 奥林巴斯株式会社 | 图像显示装置和图像显示方法 |
JP3810381B2 (ja) | 2003-04-25 | 2006-08-16 | オリンパス株式会社 | 画像表示装置、画像表示方法および画像表示プログラム |
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 |
US7408986B2 (en) * | 2003-06-13 | 2008-08-05 | Microsoft Corporation | Increasing motion smoothness using frame interpolation with motion analysis |
US7380028B2 (en) * | 2003-06-13 | 2008-05-27 | Microsoft Corporation | Robust delivery of video data |
US7471726B2 (en) * | 2003-07-15 | 2008-12-30 | Microsoft Corporation | Spatial-domain lapped transform in digital media compression |
US20050013498A1 (en) | 2003-07-18 | 2005-01-20 | Microsoft Corporation | Coding of motion vector information |
US7602851B2 (en) | 2003-07-18 | 2009-10-13 | Microsoft Corporation | Intelligent differential quantization of video coding |
US7502415B2 (en) * | 2003-07-18 | 2009-03-10 | Microsoft Corporation | Range reduction |
US7580584B2 (en) | 2003-07-18 | 2009-08-25 | Microsoft Corporation | Adaptive multiple quantization |
US7426308B2 (en) | 2003-07-18 | 2008-09-16 | Microsoft Corporation | Intraframe and interframe interlace coding and decoding |
US7738554B2 (en) | 2003-07-18 | 2010-06-15 | Microsoft Corporation | DC coefficient signaling at small quantization step sizes |
US10554985B2 (en) | 2003-07-18 | 2020-02-04 | Microsoft Technology Licensing, Llc | DC coefficient signaling at small quantization step sizes |
US8218624B2 (en) | 2003-07-18 | 2012-07-10 | Microsoft Corporation | Fractional quantization step sizes for high bit rates |
US20050013494A1 (en) * | 2003-07-18 | 2005-01-20 | Microsoft Corporation | In-loop deblocking filter |
US7499495B2 (en) | 2003-07-18 | 2009-03-03 | Microsoft Corporation | Extended range motion vectors |
US7830963B2 (en) * | 2003-07-18 | 2010-11-09 | Microsoft Corporation | Decoding jointly coded transform type and subblock pattern information |
US7839930B2 (en) * | 2003-11-13 | 2010-11-23 | Microsoft Corporation | Signaling valid entry points in a video stream |
US7599438B2 (en) | 2003-09-07 | 2009-10-06 | Microsoft Corporation | Motion vector block pattern coding and decoding |
US7623574B2 (en) | 2003-09-07 | 2009-11-24 | Microsoft Corporation | Selecting between dominant and non-dominant motion vector predictor polarities |
US7924921B2 (en) * | 2003-09-07 | 2011-04-12 | Microsoft Corporation | Signaling coding and display options in entry point headers |
US7609762B2 (en) | 2003-09-07 | 2009-10-27 | Microsoft Corporation | Signaling for entry point frames with predicted first field |
US8625680B2 (en) * | 2003-09-07 | 2014-01-07 | Microsoft Corporation | Bitstream-controlled post-processing filtering |
US7317839B2 (en) | 2003-09-07 | 2008-01-08 | Microsoft Corporation | Chroma motion vector derivation for interlaced forward-predicted fields |
US7961786B2 (en) * | 2003-09-07 | 2011-06-14 | Microsoft Corporation | Signaling field type information |
US8009739B2 (en) * | 2003-09-07 | 2011-08-30 | Microsoft Corporation | Intensity estimation/compensation for interlaced forward-predicted fields |
US7577198B2 (en) * | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Number of reference fields for an interlaced forward-predicted field |
US7567617B2 (en) | 2003-09-07 | 2009-07-28 | Microsoft Corporation | Predicting motion vectors for fields of forward-predicted interlaced video frames |
US8345754B2 (en) * | 2003-09-07 | 2013-01-01 | Microsoft Corporation | Signaling buffer fullness |
US7724827B2 (en) * | 2003-09-07 | 2010-05-25 | Microsoft Corporation | Multi-layer run level encoding and decoding |
US7620106B2 (en) | 2003-09-07 | 2009-11-17 | Microsoft Corporation | Joint coding and decoding of a reference field selection and differential motion vector information |
US8014450B2 (en) * | 2003-09-07 | 2011-09-06 | Microsoft Corporation | Flexible range reduction |
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 |
US7822123B2 (en) * | 2004-10-06 | 2010-10-26 | Microsoft Corporation | Efficient repeat padding for hybrid video sequence with arbitrary video resolution |
US8085844B2 (en) * | 2003-09-07 | 2011-12-27 | Microsoft Corporation | Signaling reference frame distances |
US8107531B2 (en) * | 2003-09-07 | 2012-01-31 | Microsoft Corporation | Signaling and repeat padding for skip frames |
US7616692B2 (en) | 2003-09-07 | 2009-11-10 | Microsoft Corporation | Hybrid motion vector prediction for interlaced forward-predicted fields |
US8582659B2 (en) | 2003-09-07 | 2013-11-12 | Microsoft Corporation | Determining a decoding time stamp from buffer fullness |
US7688894B2 (en) * | 2003-09-07 | 2010-03-30 | Microsoft Corporation | Scan patterns for interlaced video content |
JP5280003B2 (ja) * | 2003-09-07 | 2013-09-04 | マイクロソフト コーポレーション | 映像コーデックにおけるスライス層 |
US8213779B2 (en) * | 2003-09-07 | 2012-07-03 | Microsoft Corporation | Trick mode elementary stream and receiver system |
US8064520B2 (en) | 2003-09-07 | 2011-11-22 | Microsoft Corporation | Advanced bi-directional predictive coding of interlaced video |
US7369709B2 (en) * | 2003-09-07 | 2008-05-06 | Microsoft Corporation | Conditional lapped transform |
US7092576B2 (en) * | 2003-09-07 | 2006-08-15 | Microsoft Corporation | Bitplane coding for macroblock field/frame coding type information |
US7577200B2 (en) | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Extended range variable length coding/decoding of differential motion vector information |
US7852919B2 (en) | 2003-09-07 | 2010-12-14 | Microsoft Corporation | Field start code for entry point frames with predicted first field |
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 |
US7308159B2 (en) * | 2004-01-16 | 2007-12-11 | Enuclia Semiconductor, Inc. | Image processing system and method with dynamically controlled pixel processing |
US7760968B2 (en) * | 2004-01-16 | 2010-07-20 | Nvidia Corporation | Video image processing with processing time allocation |
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 |
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 |
US8000392B1 (en) | 2004-02-27 | 2011-08-16 | Vbrick Systems, Inc. | Phase correlation based motion estimation in hybrid video compression |
US7751482B1 (en) * | 2004-02-27 | 2010-07-06 | 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 |
US8340177B2 (en) * | 2004-07-12 | 2012-12-25 | Microsoft Corporation | Embedded base layer codec for 3D sub-band coding |
US8442108B2 (en) * | 2004-07-12 | 2013-05-14 | Microsoft Corporation | Adaptive updates in motion-compensated temporal filtering |
US8374238B2 (en) * | 2004-07-13 | 2013-02-12 | Microsoft Corporation | Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video |
US9578345B2 (en) | 2005-03-31 | 2017-02-21 | Euclid Discoveries, Llc | Model-based video encoding and decoding |
US9532069B2 (en) | 2004-07-30 | 2016-12-27 | Euclid Discoveries, Llc | Video compression repository and model reuse |
US9743078B2 (en) | 2004-07-30 | 2017-08-22 | Euclid Discoveries, Llc | Standards-compliant model-based video encoding and decoding |
US8902971B2 (en) | 2004-07-30 | 2014-12-02 | Euclid Discoveries, Llc | Video compression repository and model reuse |
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 |
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 |
US7839933B2 (en) * | 2004-10-06 | 2010-11-23 | Microsoft Corporation | Adaptive vertical macroblock alignment for mixed frame video sequences |
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 |
US7305139B2 (en) * | 2004-12-17 | 2007-12-04 | Microsoft Corporation | Reversible 2-dimensional pre-/post-filtering for lapped biorthogonal transform |
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 |
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 |
US7853044B2 (en) * | 2005-01-13 | 2010-12-14 | Nvidia Corporation | Video processing system and method with dynamic tag architecture |
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 |
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 |
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 |
US7599840B2 (en) | 2005-07-15 | 2009-10-06 | Microsoft Corporation | Selectively using multiple entropy models in adaptive coding and decoding |
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 |
US7684981B2 (en) | 2005-07-15 | 2010-03-23 | Microsoft Corporation | Prediction of spectral coefficients in waveform coding and decoding |
US7693709B2 (en) | 2005-07-15 | 2010-04-06 | Microsoft Corporation | Reordering coefficients for waveform coding or decoding |
WO2008091485A2 (en) * | 2007-01-23 | 2008-07-31 | Euclid Discoveries, Llc | Systems and methods for providing personal video services |
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 |
US7965774B2 (en) * | 2006-01-06 | 2011-06-21 | International Business Machines Corporation | Method for visual signal extrapolation or interpolation |
US7956930B2 (en) | 2006-01-06 | 2011-06-07 | Microsoft Corporation | Resampling and picture resizing operations for multi-resolution video coding and decoding |
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 |
US7974340B2 (en) | 2006-04-07 | 2011-07-05 | Microsoft Corporation | Adaptive B-picture quantization control |
US8059721B2 (en) | 2006-04-07 | 2011-11-15 | Microsoft Corporation | Estimating sample-domain distortion in the transform domain with rounding compensation |
US8130828B2 (en) | 2006-04-07 | 2012-03-06 | Microsoft Corporation | Adjusting quantization to preserve non-zero AC coefficients |
US8503536B2 (en) | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
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 |
US7965859B2 (en) | 2006-05-04 | 2011-06-21 | Sony Computer Entertainment Inc. | 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 |
US8345743B2 (en) * | 2006-11-14 | 2013-01-01 | Qualcomm Incorporated | Systems and methods for channel switching |
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 |
CN101622874A (zh) | 2007-01-23 | 2010-01-06 | 欧几里得发现有限责任公司 | 对象存档***和方法 |
EP2130381A2 (de) * | 2007-01-23 | 2009-12-09 | Euclid Discoveries, LLC | Computergestütztes verfahren und vorrichtung zur verarbeitung von bilddaten |
US8238424B2 (en) | 2007-02-09 | 2012-08-07 | Microsoft Corporation | Complexity-based adaptive preprocessing for multiple-pass video compression |
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 |
US8054886B2 (en) | 2007-02-21 | 2011-11-08 | Microsoft Corporation | Signaling and use of chroma sample positioning information |
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 |
US7774205B2 (en) | 2007-06-15 | 2010-08-10 | Microsoft Corporation | Coding of sparse digital media spectral data |
US7761290B2 (en) | 2007-06-15 | 2010-07-20 | Microsoft Corporation | Flexible frequency and time partitioning in perceptual transform coding of audio |
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 |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US8447591B2 (en) * | 2008-05-30 | 2013-05-21 | Microsoft Corporation | Factorization of overlapping tranforms into two block transforms |
US8897359B2 (en) | 2008-06-03 | 2014-11-25 | Microsoft Corporation | Adaptive quantization for enhancement layer video coding |
WO2009154707A2 (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 |
JP5567021B2 (ja) | 2008-10-07 | 2014-08-06 | ユークリッド・ディスカバリーズ・エルエルシー | 特徴を基礎とするビデオ圧縮 |
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 |
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 |
US8311115B2 (en) | 2009-01-29 | 2012-11-13 | Microsoft Corporation | Video encoding using previously calculated motion information |
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 |
US9113130B2 (en) | 2012-02-06 | 2015-08-18 | Legend3D, Inc. | Multi-stage production pipeline system |
US9241147B2 (en) | 2013-05-01 | 2016-01-19 | Legend3D, Inc. | External depth map transformation method for conversion of two-dimensional images to stereoscopic images |
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 |
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 |
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 |
US10405734B2 (en) | 2012-06-29 | 2019-09-10 | Given Imaging Ltd. | System and method for displaying an image stream |
US20140009563A1 (en) * | 2012-07-03 | 2014-01-09 | Google Inc. | Non-video codecs with video conferencing |
US9495390B2 (en) | 2012-08-21 | 2016-11-15 | 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 |
US9942560B2 (en) | 2014-01-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Encoding screen capture data |
US9774881B2 (en) | 2014-01-08 | 2017-09-26 | Microsoft Technology Licensing, Llc | Representing motion vectors in an encoded bitstream |
US9749642B2 (en) | 2014-01-08 | 2017-08-29 | Microsoft Technology Licensing, Llc | Selection of motion vector precision |
IN2014CH00165A (de) | 2014-01-15 | 2015-07-17 | Infosys Ltd | |
US10091507B2 (en) | 2014-03-10 | 2018-10-02 | Euclid Discoveries, Llc | Perceptual optimization for model-based video encoding |
US9621917B2 (en) | 2014-03-10 | 2017-04-11 | Euclid Discoveries, Llc | Continuous block tracking for temporal prediction in 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 |
US10482594B2 (en) * | 2016-09-23 | 2019-11-19 | Apple Inc. | Multi-perspective imaging system and method |
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 | 北京优幕科技有限责任公司 | 对用户评价的方法、装置、电子设备和存储介质 |
CN115115970A (zh) * | 2022-05-19 | 2022-09-27 | 大连理工大学 | 基于自适应匹配的视频显著性检测方法、装置及存储介质 |
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)
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 |
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 |
US4727422A (en) * | 1985-06-03 | 1988-02-23 | Picturetel Corporation | Method and apparatus for efficiently communicating image sequence having improved motion compensation |
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 | 日本電気株式会社 | 動画像符号化方式および復号化方式 |
EP0560610B1 (de) * | 1992-03-13 | 1998-12-09 | Canon Kabushiki Kaisha | 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 |
DE69416717T2 (de) * | 1993-05-21 | 1999-10-07 | Nippon Telegraph And Telephone Corp., Tokio/Tokyo | Bewegtbildkoder und -dekoder |
EP0626788B1 (de) * | 1993-05-26 | 2000-08-30 | STMicroelectronics S.r.l. | 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 |
DE69525127T2 (de) * | 1994-10-28 | 2002-10-02 | Oki Electric Industry Co., Ltd. | Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation |
EP0759841A1 (de) * | 1994-11-17 | 1997-03-05 | Exxon Chemical Patents Inc. | Mehrschichtgranulate zum rotationsformen |
US5619281A (en) * | 1994-12-30 | 1997-04-08 | Daewoo Electronics Co., Ltd | Method and apparatus for detecting motion vectors in a frame decimating video encoder |
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 | 배순훈 | 화소 단위 움직임 추정을 이용하는 영상처리 시스템 |
KR0171147B1 (ko) * | 1995-03-20 | 1999-03-20 | 배순훈 | 그레디언트 변화를 이용한 특징점 선정장치 |
KR0171143B1 (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 |
KR0171154B1 (ko) * | 1995-04-29 | 1999-03-20 | 배순훈 | 특징점 기반 움직임 추정을 이용하여 비디오 신호를 부호화하는 방법 및 장치 |
KR0181063B1 (ko) * | 1995-04-29 | 1999-05-01 | 배순훈 | 특징점을 이용한 움직임 보상에서의 그리드 형성방법 및 장치 |
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 |
AU6591696A (en) * | 1995-07-26 | 1997-02-26 | 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 |
-
1996
- 1996-06-04 US US08/657,275 patent/US6026182A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,282 patent/US5959673A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,271 patent/US5995670A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,272 patent/US5933535A/en not_active Expired - Lifetime
- 1996-06-04 US US08/658,094 patent/US5970173A/en not_active Expired - Lifetime
- 1996-06-04 US US08/659,309 patent/US5825929A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,273 patent/US5949919A/en not_active Expired - Lifetime
- 1996-06-04 US US08/657,274 patent/US5796855A/en not_active Expired - Lifetime
- 1996-06-04 US US08/658,093 patent/US5784175A/en not_active Expired - Lifetime
- 1996-10-04 DE DE69634962T patent/DE69634962T2/de not_active Expired - Lifetime
- 1996-10-04 CA CA002432740A patent/CA2432740C/en not_active Expired - Lifetime
- 1996-10-04 EP EP05013279A patent/EP1589765B1/de not_active Expired - Lifetime
- 1996-10-04 AT AT01110599T patent/ATE300153T1/de not_active IP Right Cessation
- 1996-10-04 DE DE69623330T patent/DE69623330T2/de not_active Expired - Lifetime
- 1996-10-04 ES ES05013280T patent/ES2334507T3/es not_active Expired - Lifetime
- 1996-10-04 EP EP05013280A patent/EP1589766B1/de not_active Expired - Lifetime
- 1996-10-04 CA CA002432735A patent/CA2432735C/en not_active Expired - Lifetime
- 1996-10-04 EP EP96936177A patent/EP0873653B1/de not_active Expired - Lifetime
- 1996-10-04 WO PCT/US1996/015892 patent/WO1997013372A2/en active IP Right Grant
- 1996-10-04 CA CA002233704A patent/CA2233704C/en not_active Expired - Lifetime
- 1996-10-04 JP JP51443497A patent/JP4242452B2/ja not_active Expired - Lifetime
- 1996-10-04 PT PT05013280T patent/PT1589766E/pt unknown
- 1996-10-04 AT AT05013280T patent/ATE440449T1/de not_active IP Right Cessation
- 1996-10-04 CA CA002432741A patent/CA2432741C/en not_active Expired - Lifetime
- 1996-10-04 DE DE69637977T patent/DE69637977D1/de not_active Expired - Lifetime
- 1996-10-04 DE DE69638007T patent/DE69638007D1/de not_active Expired - Lifetime
- 1996-10-04 AT AT96936177T patent/ATE223134T1/de not_active IP Right Cessation
- 1996-10-04 EP EP01110599A patent/EP1122956B1/de not_active Expired - Lifetime
- 1996-10-04 AU AU73889/96A patent/AU7388996A/en not_active Abandoned
-
2007
- 2007-08-06 JP JP2007204764A patent/JP2008011551A/ja active Pending
- 2007-08-06 JP JP2007204772A patent/JP2008011552A/ja active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69623330T2 (de) | Merkmalbasiertes videokompressionsverfahren | |
DE69723550T2 (de) | Kodierung und dekodierung von grafischen symbolen | |
DE69421837T2 (de) | Videokoder und -dekoder | |
DE3855648T2 (de) | Verfahren und vorrichtung für eine hierarchische kodierung zum wirksamen übertragen von bildfolgen | |
DE69420662T2 (de) | Blocktransformationskodierer für willkürlich geformte Bildsegmente | |
DE69523703T2 (de) | Videobildkomprimierung unter Verwendung einer hierarchischen Vektorquantisierung von gewichteten Wellenstückchen | |
DE19704439C2 (de) | Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien | |
DE19702048C2 (de) | Skalierbarer Videocodierer gemäß MPEG2-Standard | |
DE69529622T2 (de) | Auf mosaiken basiertes bildverarbeitungssystem und verfahren zum verarbeiten von bildern | |
US5799113A (en) | Method for expanding contracted video images | |
DE69130214T2 (de) | Bilddatenkompression mit adaptiver Blockgrössenauswahl | |
DE69525127T2 (de) | Gerät und Verfahren zur Kodierung und Dekodierung von Bildern unter Verwendung einer Kantensynthese und einer Wavelet-Rücktransformation | |
DE69805099T2 (de) | Verbesserte videocodierung und decodierung unter verwendung von adaptiven blockparametern für codierte/uncodierte blöcke | |
DE60308255T2 (de) | 2D-Transformationen zur Bild- und Videokodierung | |
DE19626615C2 (de) | Verfahren und Apparat zur Kompression, das bzw. der reversible Wavelet-Transformationen und einen eingebetteten Kodestrom verwendet | |
DE69223560T2 (de) | Einrichtung zur Verminderung von Quantisierungsstörungen in einem Zwischenbild-Hybrid-Kodierungssystem mit Bewegungskompensation | |
DE69801209T2 (de) | Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer | |
DE3837590A1 (de) | Verfahren zum reduzieren der datenrate von digitalen bilddaten | |
DE69713923T2 (de) | System und Verfahren zur digitalen Bildkompression mit Bewegungsschätzung | |
DE69521255T2 (de) | Verfahren zum betrieb eines interaktiven bildanzeigesystems und bildanzeigesystem zur durchführung des verfahrens | |
DE602004001993T2 (de) | Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression | |
DE19739266A1 (de) | Verfahren und Vorrichtung zum Kodieren binärer Formen | |
EP0956539A1 (de) | Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes | |
DE69637008T2 (de) | Verfahren zur Videokompression mittels Teilbandzerlegung | |
DE69126525T2 (de) | Digitale bildverarbeitung mit filterung der blockkanten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |