DE69920429T2 - Bewegungsschätzungssystem und -verfahren - Google Patents

Bewegungsschätzungssystem und -verfahren Download PDF

Info

Publication number
DE69920429T2
DE69920429T2 DE69920429T DE69920429T DE69920429T2 DE 69920429 T2 DE69920429 T2 DE 69920429T2 DE 69920429 T DE69920429 T DE 69920429T DE 69920429 T DE69920429 T DE 69920429T DE 69920429 T2 DE69920429 T2 DE 69920429T2
Authority
DE
Germany
Prior art keywords
area
current
candidate
block
areas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69920429T
Other languages
English (en)
Other versions
DE69920429D1 (de
Inventor
A. Arturo RODRIGUEZ
W. Timothy SIMERLY
Neilesh R. Patel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Scientific Atlanta LLC
Original Assignee
Scientific Atlanta LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scientific Atlanta LLC filed Critical Scientific Atlanta LLC
Application granted granted Critical
Publication of DE69920429D1 publication Critical patent/DE69920429D1/de
Publication of DE69920429T2 publication Critical patent/DE69920429T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die Erfindung betrifft allgemein Codierfolgen digitaler Bilder und betrifft insbesondere die Bewegungsschätzungsoperationen, die beim Codieren einer Folge digitaler Bilder durchgeführt werden.
  • 2. Beschreibung des Standes der Technik
  • In der folgenden Beschreibung des Standes der Technik wird zunächst allgemein die Komprimierung digitaler Bilder erörtert und dann wird auf die gegenwärtig praktizierte Bewegungsschätzung und schließlich auf die Probleme der aktuellen Verfahren eingegangen.
  • Komprimierung digitaler Bilder
  • Digitale Bilder werden ursprünglich im Speicher eines Computersystems als Anordnungen von Bild-Elementen oder Pixeln dargestellt. Jedes Pixel stellt einen Punkt in dem Bild dar. Das Pixel selbst ist ein Datenelement, und der Inhalt des Datenelements bestimmt, wie der durch das Pixel dargestellte Punkt in dem digitalen Bild erscheint. Die Qualität eines digitalen Bilds hängt natürlich von der Anzahl der Pixel in dem Bild und der Anzahl von Bits in den Pixeln ab. Je mehr Pixel in dem Bild sind, umso feiner ist die Auflösung, und je mehr Bits in jedem Pixel sind, umso mehr Informationen kann es zu dem Punkt in dem durch das Pixel dargestellte Bild speichern. Je mehr Bits beispielsweise in dem Pixel sind, umso mehr Farbschattierungen kann es darstellen.
  • Da das so ist, sind die Anordnungen von Pixeln, die verwendet werden, um hochwertige digitale Bilder original darzustellen, sehr groß und erfordern viel Speicherplatz. Die Größe der Anordnungen ist besonders problematisch, wenn die betreffenden digitalen Bilder Teil einer Folge von Bildern sind, die, wenn sie in der richtigen Reihenfolge und mit der richtigen Zeitsteuerung betrachtet werden, einen Film ergeben. Die Vorrichtung, die die Folge von Bildern anzeigt, muss sie nicht nur speichern können, sondern muss sie auch schnell genug lesen und anzeigen können, sodass die Anforderungen an die Zeitsteuerung für Filme erfüllt werden.
  • Die Probleme der Zeitsteuerung und Speicherung sind besonders ernst, wenn die Folge digitaler Bilder mittels eines Mediums mit begrenzter Bandbreite an einen Empfänger mit begrenztem Speicher verteilt wird. Beispiele, wo das der Fall ist, sind digitales Fernsehen, Abhaltung von Videokonferenzen und Bildtelefonieren. Bei diesen Anwendungen muss die Folge von Bildern mittels eines Rundfunk- oder Kabelfernsehkanals, einer Telefonleitung oder eines Computernetzes zu einem relativ billigen Verbrauchergerät, wie etwa einem Fernsehgerät, Bildtelefon oder Personal Computer mit begrenztem Speicherplatz, gesendet werden, um die Bilder zu speichern. Diese Anwendungen sind daher nur dann wirtschaftlich praktisch, wenn eine Möglichkeit zum Komprimieren der digitalen Bilder gefunden wird und dadurch die zum Übertragen der Bilder benötigte Bandbreite und/oder der zum Spichern an ihren Bestmmugsorten benötigte Speicherplatz verringert wird.
  • Die Technik hat viele verschiedene Verfahren zum Komprimieren von Folgen digitaler Bilder entwickelt. Ein Beispiel für diese Verfahren ist der M PEG-2-Standard zur Komprimierung digitaler Videosignale, der in dem Beitrag Background Information on MPEG-1 and MPEG-2 Television Compression (Hintergrundinformationen zur MPEG-1- und MPEG-2-Fernsehkomprimierung) beschrieben ist, der im November 1996 unter der URL http://www.cdrevolution.com/text/mpeginfo.htm zu finden war. Alle diese Verfahren nutzen die Tatsache, dass eine Folge digitaler Bilder eine große Menge redundanter Informationen enthält. Eine Art der Redundanz ist räumlich: In einem Bild haben Pixel, die räumlich nah beieinander sind, oftmals ähnliche Eigenschaften. Aufgrund dessen ist es oft möglich, ein Bild als eine Gruppe von Bereichen von räumlich benachbarten Pixeln zu beschreiben. Die Bereiche können sich natürlich überlappen. Wenn die Bereiche rechteckig sind, werden sie als Blöcke bezeichnet. Wenn ein gegebener Bereich des Bilds einem anderen Bereich des Bilds stark ähnelt, aber mit dem anderen Bereich nicht identisch ist, können die Pixel indem gegebenen Bereich durch eine Darstellung ersetzt werden, die den gegebenen Bereich als Differenz zwischen dem anderen Bereich und dem gegebenen Bereich beschreibt.
  • Die andere Art der Redundanz in einer Folge von Bildern ist zeitlich; sehr oft ist ein gegebenes Bild in der Folge einem früheren oder späteren Bild in der Folge im Aussehen sehr ähnlich; es ist daher möglich, das gegebene Bild durch Herstellen einer Darstellung des gegebenen Bilds, die die Differenzen zwischen Bereichen in dem gegebenen Bild und Bereichen in einem früheren oder späteren Bild darstellt, das hier als Bezugsbild bezeichnet wird, und durch Verwenden dieser Darstellung anstelle der Darstellung als Anordnung von Pixeln zu komprimieren.
  • Eine Möglichkeit, die Differenz zwischen dem gegebenen Bild und dem Bezugsbild auszudrücken, ist in 1 gezeigt. Ein digitales Bezugsbild 101 wird im Speicher als Anordnung von Pixeln 105 dargestellt. Das Bild wird weiter in Blöcke 103 unterteilt, die jeweils normalerweise 16 Pixel im Quadrat sind. Ein Objekt 107 im Bezugsbild 101 ist in vier benachbarten Blöcken 103 enthalten: in den Blöcken 103 (m, n), (m+1, n), (m, n+1) und (m+1, n+1), wobei m und n die x- und y-Koordinaten der linken oberen Ecke des Blocks bezeichnen. In einem gegebenen Bild 109 befindet sich das Objekt 107 an einer anderen Position, und zwar den Blöcken 103 (b, s), (b+1, s), (b, s+1) und (b+1, s+1), aber ansonsten hat das Objekt 107 im Wesentlichen das gleiche Aussehen wie im Bezugsbild 101. Da das so ist, kann das Objekt 107 in der komprimierten Darstellung des gegebenen Bilds 109 als seine Differenzen vom Objekt 107 im Bezugsbild 101 beschrieben werden. Es gibt zwei Arten von Differenzen:
    die Änderung der Lage des Objekts 107 im gegebenen Bild 109 und
    eine Änderung des Aussehens des Objekts 107 im gegebenen Bild 109.
  • Die erste Art der Differenz kann als Verschiebung des Objekts 107 im Bild 109 von seiner Position im Bezugsbild 101 beschrieben werden. Die zweite Art kann als Differenz zwischen dem Aussehen des Objekts 107 im Bild 109 und dem Aussehen des Objekts 107 im Bezugsbild 101 beschrieben werden. Das geänderte Aussehen kann durch Faktoren wie veränderte Beleuchtung, die auf das Objekt 107 auftrifft, oder Krummung oder Scherung des Objekts durch Drehung um die x-Achse, die y-Achse oder die z-Achse senkrecht zur Ebene des Bilds bedingt sein.
  • Die Verwendung von Komprimierungsverfahren wie den gerade beschriebenen erlaubt die Schaffung von komprimierten Darstellungen von Folgen digitaler Bilder, die so klein sind, dass sie die Bandbreiten- und Speicher-Randbedingungen erfüllen, die für kommerzielles digitales Fernsehen, Abhaltung von digitalen Videokonferenzen und digitales Bildtelefonieren typisch sind. Die Herstellung einer komprimierten Darstellung eines digitalen Bilds aus einer Pixeldarstellung des digitalen Bilds wird hier als Codierung des Bilds bezeichnet.
  • Bei Hybrid-Videocodierverfahren werden zeitliche Redundanzen normalerweise durch Vorhersagen von Blockdaten in dem Bild, das gerade einer Codierung unterzogen wird (d. h. das aktuelle Bild), aus den Daten in einem oder mehreren Bezugsbildern entfernt. Zu dem Zeitpunkt, zu dem eine Codiermaschine (das heißt, Codiersoftware oder ein Mikrocode, der auf einem Prozessor läuft) das aktuelle Bild komprimiert, sind diese Bezugsbilder bereits komprimiert und eventuell übertragen worden. Da jedoch diese Bilder dazu bestimmt sind, als Bezugsbilder für die Komprimierung nachfolgender Bilder verwendet zu werden, während die Codiermaschine diese Bezugsbilder komprimiert, stellt sie diese wieder her und lässt sie im Speicher gespeichert, sodass sie sie später abrufen und als Bezugsbilder verwenden kann. Durch Wiederherstellen der komprimierten Bezugsbilder im Speicher simuliert die Codiermaschine eine Decodiermaschine, die von der Codiermaschine codierte Bilder decodieren kann. Das ist darauf zurückzuführen, dass eine Decodiermaschine Teil eines Empfängers für die digitalen Bilder wäre und keinen Zugriff auf die Originalbilder, sondern nur auf ihre wiederhergestellten Versionen hätte, die von Natur aus einen Signalverlust (d. h. einen Qualitätsverlust) als Ergebnis der Komprimierung aufweisen.
  • Bewegungsschätzungs- und Blockanpassungskriterien
  • Da ein Videosignal eine starke Bewegung aufweisen kann, lässt sich die Nutzung der zeitlichen Redundanz am besten durch Verwendung von Bewegungsschätzungs-/Kompensationsverfahren erreichen, damit Blöcke der gleichen Größe bei unterschiedlichen räumlichen Verschiebungen in dem/den Bezugsbildern) die Daten des Blocks im aktuellen Bild vorhersagen können. Obwohl das nicht optimal ist, unterstellen blockgestützte Bewegungsschätzungs-/Kompensationsvertahren in kostengünstigen Multimediasystemen aus praktischen Gründen nur eine Translationsbewegung, das heißt, dass sich die Blöcke zwar bewegt, aber nicht gedreht haben. Somit ist ein blockgestütztes Bewegungsschätzungs-/Kompensationsverfahren Teil der meisten Hybrid-Videocodierverfahren und ein Hauptbestandteil aller vorhandenen Videocodierstandards wie MPEG-1 [1], MPEG-2 [2], H.261 [3] und H.263 [4]. Bewegungsschätzung ist der Prozess des Findens des Blocks in dem Bezugsbild, der am besten zu dem aktuellen Block passt, der gerade in dem aktuellen Bild codiert wird. Der Block in dem Bezugsbild, der am besten zu dem aktuellen Bild passt, wird als Prädiktor bezeichnet, da er die Bewegungs- und Pixelwerte des aktuellen Blocks unter Bezugnahme auf den Prädiktorblock vorhersagt.
  • Wenn die Blockgröße beispielsweise 16 × 16 Pixel beträgt, wie es bei vielen vorhandenen Videocodierstandards der Fall ist, und der entsprechende Suchraum (d. h. der Teil des Bezugsbilds, in dem die Codiermaschine einen Prädiktor sucht) im Bezugsbild eine Größe von 64 × 48 hat, besteht die Aufgabe der Bewegungsschätzung darin, den benachbarten 16 × 16-Block im Suchraum zu finden, der der beste Prädiktor für den aktuellen Block ist. Somit gibt es 1617 (d. h. 49 × 33) Blockkandidaten, das heißt 16 × 16 Blöcke im Suchraum, die Kandidaten für den Prädiktor für den aktuellen Block sind. Der Prädiktor wird aus den Kandidaten durch Anpassen des aktuellen Blocks an jeden der Kandidaten gewählt. Der Kandidat, der am besten zu dem aktuellen Block passt, ist der Prädiktor.
  • Dieser Teil der Bewegungsschätzung wird als Blockanpassung bezeichnet. Die Blockanpassung erfolgt unter Verwendung eines Anpassungskriteriums. Typische Anpassungskriterien sind die Summe absoluter Pixelfehler (Sum of Pixel Absolute Errors; SAE) und die Summe der quadratischen Pixelfehler (Sum of the Squared Pixel Errors; SSE). Es ist zu beachten, dass Fachleute die Wörter „Error" (Fehler) und „Differences" (Differenzen) mit entsprechender Bedeutung in demselben Kontext benutzen. Somit beziehen sich SAD und SAE auf die gleiche Blockanpassungsberechnung. Ebenso sind SSD und SSE gleich.
  • Für unser Beispiel wird SSE für jede (u, v)-Verschiebung im Suchraum definiert als
    Figure 00040001
    wobei Pcurr der Block ist, der gerade mittels Bewegungsschätzung in dem aktuelen Bild vorhergesagt wird, und Pref ein Blockkandidat im Suchraum in dem Bezugsbild ist, der von Pcurr um den Vektor (u, v) verschoben ist. Obwohl es keine Voraussetzung für die hier beschriebene Erfindung ist, würden, wenn unterstellt wird, dass der 64 × 48-Suchraum in unserem Beispiel mit dem aktuellen Block konzentrisch ist, die Blockkandidaten in Verschiebungen von –24 bis +24 in der Horizontalen und von –16 bis +16 in der Vertikalen liegen.
  • In unserem Beispiel wird SAE für jede (u, v)-Verschiebung im Suchraum definiert als
    Figure 00040002
  • Der Blockkandidat, der das Anpassungskriterium global minimiert, wird als der am besten passende Block gewählt, und seine entsprechende Verschiebung von den Koordinaten des aktuellen Blocks wird zum Bewegungsvektor für den aktuellen Block. Der Bewegungsvektor wird so codiert, dass er sich aus dem komprimierten Videostrom, der von der Codiermaschine erzeugt wird, vollständig wiederherstellen lässt, sodass eine normgerechte Decodiermaschine die Bewegungskompensation während der Wiederherstellung des aktuellen Bilds durchführen kann. Somit ist das Ausgangssignal der Bewegungsschätzung ein Bewegungsvektor für den aktuellen Block, der die Verschiebung der Koordinaten der linken oberen Ecke des aktuellen Blocks von den Koordinaten der entsprechenden Ecke des Prädiktors anzeigt.
  • Jedes Bild in einer digitalisierten Bildfolge besteht aus drei Informationsebenen, eine für die Leuchtdichte und zwei für die Chrominanz. Die Bewegungsschätzung erfolgt normalerweise in der Leuchtdichte-Domäne, während die Bewegungskompensation für alle drei Ebenen durchgeführt werden muss, um die Bilder wiederherzustellen. Jede Informationsebene besteht aus 8-Bit-Werten (d. h. Bytes). Normalerweise entsprechen die Abmessungen der Leuchtdichte-Ebene der Bildauflösung und jedes Pixel hat seine eigene 8-Bit-Leuchtdichte-Darstellung.
  • In unserem Beispiel würde SSE 256 Subtraktionen, 256 Quadrieroperationen (d. h. Multiplikationen) und 255 Additionen für jeden Kandidaten erfordern. SAE ersetzt die Multiplikationsoperation durch einen Absolutwert. Anpassungskriterien mit geringerer Rechenkomplexität werden aufgrund ihrer schlechteren Vorhersageleistung in der Praxis selten verwendet. Daher ist Bewegungsschätzung ein rechenintensiver Arbeitsvorgang mit dem SAE- oder SSE-Anpassungskriterium. Außerdem muss für jeden Block im aktuellen Bild das Anpassungskriterium für jeden in Betracht gezogenen Blockkandidaten im Bezugsbild berechnet werden. Bilder mit einer Größe, die gleich der CCIR-601-Auflösung (720 × 480) ist, haben 1350 nichtüberlappende 16 × 16-Blöcke, die einzeln einer Bewegungsschätzung unterzogen werden. Für einen Suchraum mit einer Größe von 64 × 48 (d. h. 1617 Blockkandidaten) muss eine Codiermaschine mit einem Bewegungsschätzungssystem, das jeden Blockkandidaten in Betracht zieht, das Block-Anpassungskriterium ca. 2.182.950 (1350 × 1617) Mal je Bild berechnen, wobei Bilder mit der Geschwindigkeit von 30 Bildern je Sekunde codiert werden. Daher ist Bewegungsschätzung normalerweise der rechenintensivste Bestandteil von Hybrid-Videocodierverfahren.
  • Das vorstehend beschriebene Vollsuche-Bewegungsschätzungsverfahren gewährleistet das Lokalisieren eines Prädiktorblock im Suchraum, der zwar das globale minimale Ergebnis für das Anpassungskriterium erzeugt, aber einen enormen Aufwand an Rechenleistung erfordert. Das Verfahren funktioniert dort gut, wo teure Codiermaschinen hingenommen werden können. Schwierigkeiten entstehen jedoch, wenn die Codiermaschine Teil eines Verbrauchersystems, wie etwa ein Bildtelefon, ist. Kostenzwänge erfordern hier, eine Codiermaschine zu implementieren, die einen relativ preiswerten Prozessor, wie etwa einen preiswerten digitalen Signalprozessor (DSP) oder RISC-Prozessor, verwendet, und die Anforderungen des Vollsuche-Bewegungsschätzungsverfahrens übersteigen die Fähigkeiten des preiswerten Prozessors. In solchen Situationen müssen so genannte schnelle Bewegungsschätzungsverfahren genutzt werden.
  • Schnelle Bewegungsschätzungsverfahren
  • Das Ziel von schnellen Bewegungsschätzungsverfahren ist es, die Anzahl der Blockkandidaten, die mit dem aktuellen Block verglichen werden, zu verringern. Der Nachteil dieser Verfahren besteht darin, dass es keine Garantie dafür gibt, dass der Kandidat, der tatsächlich am besten zu dem aktuellen Block passt, als Prädiktor gewählt wird. Im Endeffekt wird bei den Verfahren eine Verringerung der Rechenzyklen entweder gegen eine niedrigere Bildqualität oder eine geringere Komprimierung oder beides eingetauscht. Die vorgeschlagenen Verfahren lassen sich wie folgt einteilen:
    • 1. Verfahren, die durch Heuristik die Anzahl der Blockkandidaten die als Pradiktoren angesehen werden, im Suchraum verringern. Beispiele für solche Verfahren sind die logarithmische Suche und die Dreischritt-Suchverfahren. Hierarchische Suchverfahren, die die Anzahl von Pixeln bei der Berechnung des Block-Anpassungskriteriums und die Anzahl der in Betracht gezogenen Blockkandidaten gleichzeitig verringern. Diese Verfahren erzeugen eine nachfolgende niedrigere Auflösung der aktuellen und Bezugsbilder durch Dezimierung oder Tiefpassfiltern um einen Faktor zwei in der Horizontalen und Vertikalen. Die Blockanpassung wird mit der kleinsten verfügbaren Auflösung durchgeführt, und die Ergebnisse werden der nächsthöheren Auflösung zugeordnet, wo eine begrenzte Anzahl von Blockkandidaten mit Verschiebungen in Betracht gezogen wird, die um den zugeordneten Block, der am besten passt, lokalisiert sind.
    • 2. Verfahren, die Bewegungsvektoren von Blöcken verwenden, die in der Nähe des aktuellen Blocks liegen, um die Blockkandidaten zu lokalisieren.
  • Weitere Einzelheiten zu den ersten beiden Klassen von Verfahren siehe V. Bhaskaran und K. Konstantinides, „Image and Video Compression Standards" („Bild- und Videokomprimierungsstandards"), Kluwer Academic Press, 1995, und K. R. Rao und J. J. Hwang, „Techniques & Standards for Image, Video, and Audio Coding" („Verfahren und Standards für die Bild-, Video- und Audiocodierung"), Prentice Hall Press, 1996. Ein Beispiel für die dritte Klasse siehe Junavit Chalidabhongse, Sungook Kim und C.-C. Jay Kuo, „Fast Motion Vector Estimation for Video Coding Based on Multiresolution-Spatio-Temporal Correlations" („Schnelle Bewegungsvektorschätzung für die Videocodierung aufgrund von räumlich-zeitlichen Mehrfachauflösungskorrelationen"), Proceedings, Visual Communications and Image Processing '96, International Society for Optical Engineering, Bd. 2727, S. 645–656.
  • Beim Dreischritt-Bewegungsschätzungsverfahren beispielsweise wird die Anzahl der Blockkandidaten durch Teilabtasten des Suchraums verringert. Für einen Bewegungsvektorbereich von +/–7 läuft das Dreischritt-Verfahren in einer Gruppe von drei Stufen ab, die jeweils nacheinander die Lage des Suchraums für das beste Anpassungskriterium-Ergebnis, das in der Gruppe von Prädiktorkandidaten auf der vorhergehenden Stufe gefunden wurde, feinabstimmen, und nacheinander wird die Größe des Fensters der übrigen in Betracht gezogenen Blockkandidaten verringert. Die erste Stufe beginnt zunächst mit der Prüfung von neun Kandidaten mit Verschiebungen im Bereich von +/–4 von dem räumlich korrespondierenden Ursprung des aktuellen Blocks im Bezugsbild, einschließlich des Kandidaten am Ursprung. Das heißt, die Koordinaten der neun in Betracht gezogenen Prädiktoren lauten: (0, 0), (4, 0), (–4, 0), (0, 4), (0, –4), (4, 4), (4, –4), (–4, –4) und (–4, 4). Die Verschiebung mit dem kleinsten Anpassungskriterium-Wert wird dann als Ursprung für die Prüfung von acht weiteren Kandidaten mit Verschiebungen von +/–2 um diesen neuen Ursprung verwendet. Schließlich wird der am besten passende Block, der auf der zweiten Stufe gefunden wird, als neuer Ursprung für acht weitere Kandidaten mit Verschiebungen von +/–1 verwendet. Die am Ende der Stufe drei gefundene Verschiebung dient als Prädiktor für den aktuellen Block. Insgesamt erfordert dieses Verfahren normalerweise die Berechnung des Anpassungskriteriums bei Kandidaten mit 25 verschiedenen Verschiebungen (neun Verschiebungen für Stufe eins, auch für Stufe zwei und acht für Stufe drei). Es ist zu beachten, dass dieses Verfahren von der Suchraumgröße abhängt. Wenn der Suchraum so erweitert wird, dass er einen Bewegungsvektorbereich von +/–15 unterstützt, steigt die Anzahl der in Betracht gezogenen Verschiebungen auf 65, da die erste Stufe aus 49 Verschiebungen besteht, die aus der Teilabtastung des Suchraums mit 4 in der Horizontalen und Vertikalen resultiert.
  • Andere schnelle Bewegungsschätzungsverfahren arbeiten nach dem gleichen Grundsatz wie das Dreischritt-Verfahren. Die logarithmische Suche führt eine Grob- bis Fein-Teilabtastung des Suchraums mit den gleichen Verschiebungen wie die Dreischritt-Suche für einen Bewegungsvektorbereich von +/–7 durch. Für einen Bewegungsvektorbereich von +/–15 erfordert sie jedoch vier Stufen, wo die Teilabtastung des Suchraums mit Verschiebungen von +/–8, +/–4, +/–2, +/–1 durchgeführt wird. Obwohl es weniger als 33 Positionskandidaten gibt, die unter Verwendung dieses Verfahrens für einen Bewegungsvektorbereich von +/–15 geprüft werden, ist seine Leistung schlecht, daes eine größere Wahrscheinlichkeit gibt, dass das Verfahren einen Prädiktor findet, der ein lokales Minimum des Suchraums widerspiegelt.
  • Die Erkenntnis, die den Ausgangspunkt für Verfahren bildet, die Blöcke einbeziehen, die in der Nähe des aktuellen Blocks liegen, ist, dass es eine sehr hohe Wahrscheinlichkeit gibt, dass Bereiche, die eng mit dem aktuellen Block zusammenhängen, sich in der gleichen Weise wie der aktuelle Block bewegen. Daher ist es sehr wahrscheinlich, dass, wenn ein Bewegungsvektor für einen Block in einem eng zusammenhängenden Bereich bekannt ist, der aktuelle Block diesen Bewegungsvektor hat. Es macht daher Sinn, den Bewegungsvektor aus einem dieser zugehörigen Blöcke zu verwenden, um einen Blockkandidaten im Bezugsbild für den aktuellen Block zu lokalisieren. Der Blockkandidat ist einfach derjenige Block im Bezugsbild, dessen Lage im Bezugsbild so ist, dass, wenn der Bewegungsvektor aus dem zugehörigen Block auf ihn angewendet wird, das Ergebnis der aktuelle Block ist. Eine weitere Erkenntnis besteht darin, dass in einem digitalen Bild ein Block, der mit einem anderen Block zusammenhängt, wahrscheinlich in unmittelbarer Nähe zu dem anderen Block zu finden ist. Die Nähe kann sich entweder auf Blöcke in früher codierten Bildern oder auf Blöcke im aktuellen Bild beziehen. Man kann daher oftmals die Anzahl der Blöcke, die verglichen werden müssen, um den Prädiktor für den aktuellen Block zu finden, dadurch wesentlich verringern, dass man die Suche nach dem Prädiktor einfach mit Blockkandidaten beginnt, die unter Verwendung von Blöcken lokalisiert werden, die sehr nah am aktuellen Block liegen. Solche Blöcke werden nachstehend als naheliegende Blöcke bezeichnet.
  • Die Verfahren der Quelle Chalidabhongse et al. verwenden naheliegende Blöcke im aktuellen Bild und in dem Bild, das dem aktuellen Bild vorangeht, um einen besten Kandidaten zu finden, und dieser Kandidat wird als Ausgangspunkt für eine weitere Verfeinerung verwendet, die so funktioniert, dass die acht Punkte um den besten Kandidaten gesucht werden, wobei der beste Kandidat, der bei dieser Suche gefunden wird, bei weiteren acht Punkten verwendet wird, und so weiter, bis ein passendes Ergebnis erreicht ist, das unterhalb einer Schwelle liegt. Es werden weitere Varianten dieses Verfahrens vorgestellt, und die Quelle beschreibt auch, wie das Verfahren bei einer hierarchischen Suche verwendet werden kann.
  • Probleme mit bekannten Bewegungsschätzungsverfahren
  • Die vorstehend beschriebenen schnellen Bewegungsschätzungsverfahren machen alle einen unattraktiven Kompromiss zwischen der Anzahl der Blockkandidaten und der Wahrscheinlichkeit, dass der beste Prädiktor gefunden wird. Außerdem berücksichtigt keines der schnellen Bewegungsschätzungsverfahren die Tatsache, dass digitale Systeme, die für Verbraucher gebaut sind, strenge Speichereinschränkungen und daher strenge Einschränkungen bei der Größe des Suchraums haben. Insbesondere verwenden digitale Systeme, die für den Einsatz bei Verbrauchern gebaut sind, digitale Signalprozessoren (DSPs), die am effektivsten mit Daten arbeiten, die in einem DSP-internen RAM enthalten sind, und daher laufen Suchprozesse am effektivsten ab, wenn der gesamte Suchraum auf den internen RAM des DSP überfragen werden kann. Da die Größe des Suchraums in dieser Weise eingeschränkt ist, müssen die Suchverfahren gewährleisten, dass es eine sehr große Wahrscheinlichkeit gibt, dass der Suchraum den Prädiktor enthält. Die vorstehend beschriebenen Verfahren ziehen nur eine Teilgruppe der Blöcke in ihren Suchräumen als Kandidaten in Betracht, und daher können sie ihren Suchraum oder den Speicher, in dem der Suchraum enthalten ist, nicht effektiv nutzen. Außerdem besteht die einzige Möglichkeit dafür, dass die vorstehend beschriebenen V erfahren den Bereich, über den sie Kandidaten prüfen, wirksam vergrößern können, darin, die Kapazität des internen RAM im DSP zu vergrößern. Daher führen diese Verfahren notgedrungen zu einer schlechteren Bewegungsschätzung, wenn sie in Systemen verwendet werden, die für den Einsatz bei Verbrauchern gebaut sind.
  • Es ist zu beachten, dass es nicht machbar ist, Blockkandidaten einzeln von einem DSP-externen Speicher in einen internen Daten-RAM des DSP zu übertragen, da benachbarte Blockkandidaten mindestens 15 von 16 Spalten (oder Reihen) gemeinsam haben können und da das eine ernsthafte Verzögerung in einem Echtzeitsystem bedeuten würde. Es ist daher effektiver, bei einer gegebenen Operation einen so großen Bereich wie möglich vom Suchraum in deninternen Daten-RAM des DSP zu übertragen. Die vorgenannten Probleme sind bei hierarchischen Suchverfahren besonders akut. Diese Verfahren erfordern zusätzlichen Speicherplatz für die Mehrfachauflösungsvarianten der aktuellen und Bezugsbilder. Sie erfordern auch mehrere Zugriffe auf externen Speicher, um die verschiedenen Auflösungen des Bezugsbilds zu speichern und abzurufen.
  • Ein Ziel der hier beschriebenen Verfahren ist es, die vorgenannten Probleme der Bewegungsschätzung dadurch zu überwinden, dass Möglichkeiten zur Lokalisierung eines Prädiktorblocks für einen aktuellen Block geschaffen werden, die besonders gut für die Verwendung in Codiersystemen geeignet sind, die eine effektive Speichernutzung erfordern.
  • Kurze Darstellung der Erfindung
  • Aspekte der Erfindung sind in den Ansprüchen definiert.
  • Ausführungsformen der Erfindung verwenden Bewegungsvektoren aus Blöcken, die sich in der Nähe des aktuellen Blocks befinden, wenden die Bewegungsvektoren auf den aktuellen Block an, um Blockkandidaten in einem Bezugsbild zu lokalisieren, und verwenden dann die Blockkandidaten, um einen Teil des Suchraums zu definieren. Der so definierte Suchraum ist in der Regel so klein, dass er in seiner Gesamtheit in den internen RAM des Prozessors, der für die Durchführung des Blockvergleichs verwendet wird, geladen werden kann, aber er ist nicht auf eine einfache Projektion des internen RAM des Prozessors auf externen Speicher beschränkt.
  • Die bevorzugten Ausführungsformen verwenden auch verbesserte Verfahren zur Begrenzung der Suche nach dem Prädiktor, wobei ein nicht-rechteckiger Suchraum verwendet wird, der sich auf einen besten aktuellen Kandidaten gründet, um die Suche nach dem Prädiktorblock weiter zu verfeinern, wobei die Anzahl und Lage der naheliegenden Blöcke, deren Bewegungsvektoren zur Lokalisierung der Blockkandidaten verwendet werden, dynamisch geändert werden, wie es durch die Verfügbarkeit von Bewegungsvektoren für die naheliegenden Blöcke, durch die Verfügbarkeit von Prozessorzyklen und durch die Werte von bereits bestimmten Bewegungsvektoren vorgeschrieben ist.
  • Noch weitere Merkmale der bevorzugten Ausführungsformen dürften Fachleuten auf den Fachgebieten klar werden, die die Erfindung betrifft, wenn sie die folgende Detaillierte Beschreibung und die Zeichnungen lesen.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine Zeichnung, die einen Überblick über die digitale Bildcodierung bietet.
  • 2 ist eine Zeichnung, die naheliegende Blöcke und Blockkandidaten zeigt, die in einer bevorzugten Ausführungsform verwendet werden.
  • 3 ist eine Zeichnung, die naheliegende Blöcke in dem aktuellen Bild zeigt.
  • 4 ist eine Zeichnung, die weitere naheliegende Blöcke in dem aktuellen Bild zeigt.
  • 5 ist eine Zeichnung, die Blockkandidaten in der zweiten Phase des HME-Verfahrens (Hybrid-Bewegungsschätzungsverfahrens) zeigt.
  • 6 ist ein Ablaufdiagramm einer bevorzugten Ausführungsform des HME-Verfahrens.
  • 7 ist ein Diagramm, das einen benötigten Teil eines Suchraums zeigt.
  • 8 ist ein erstes Diagramm, das die Berechnung des benötigten Teils zeigt.
  • 9 ist ein zweites Diagramm, das die Berechnung des benötigten Teils zeigt.
  • 10 ist ein drittes Diagramm, das die Berechnung des benötigten Teils zeigt.
  • 11 ist ein viertes Diagramm, das die Berechnung des benötigten Teils zeigt.
  • 12 ist ein Blockdiagramm der entsprechenden Teile eines Codiersystems, in dem die bevorzugte Ausführungsform implementiert ist.
  • Die Bezugssymbole in den Zeichnungen haben mindestens drei Ziffern. Die beiden rechten Ziffern sind Bezugssymbole innerhalb einer Figur; die Ziffern links von diesen Ziffern sind die Nummer der Figur, in der der mit dem Bezugssymbol gekennzeichnete Gegenstand zum ersten Mal auftritt. Beispielsweise tritt ein Gegenstand mit dem Bezugssymbol 203 zum ersten Mal in 2 auf.
  • Detaillierte Beschreibung
  • Die folgende Detaillierte Beschreibung beschreibt zunächst, wie Blockkandidaten in einer bevorzugten Ausführungsform gewählt werden, und zeigt dann, wie die mit den Verfahren gewählten Blockkandidaten verwendet werden können, um den für die neuen Verfahren benötigten Suchraum vorherzusagen.
  • Eine bevorzugte Ausführungsform der Verfahren: 2
  • Bei einer bevorzugten Ausführungsform werden die soeben beschriebenen Verfahren bei einer Zweiphasensuche nach dem Prädiktor für den aktuellen Block verwendet. Die erste Phase lokalisiert den Bereich, in dem der Prädiktor gesucht wird, und die zweite Phase verfeinert die Suche in einem vordefinierten zweidimensionalen Suchraum, dessen Form von den Ergebnissen der ersten Phase vordefiniert oder bestimmt wird. Die Suche in jeder Phase endet, sobald ein geeigneter Prädiktor gefunden worden ist. Die erste Phase verwendet die Lage von vier oder mehr naheliegenden Blöcken und des aktuellen Blocks, um entsprechende Blockkandidaten in einem Bezugsbild zu lokalisieren. Die naheliegenden Blöcke haben zwei Eigenschaften:
    • • Sie liegen besonders nahe an dem aktuellen Block.
    • • Wenn der naheliegende Block einen Bewegungsvektor hat, ist dieser bereits berechnet worden.
  • Wenn ein Blockkandidat gefunden wird, der so genau zu dem aktuellen Block passt, dass er als Prädiktor für den aktuellen Block angesehen werden kann, endet die Suche in der ersten Phase; wenn kein solcher Blockkandidat gefunden wird, dauert die Suche unter Verwendung von Blockkandidaten in dem Bezugsbild in einer Folge an, die eine sich allmähliche erweiternde Spirale um den besten Kandidaten bildet, der in der ersten Phase gefunden wurde. Die Suche endet entweder, wenn ein ausreichend genau passender Block gefunden wird, oder wenn alle Blockkandidaten im Suchraum der zweiten Phase mit dem aktuellen Block verglichen worden sind. Bei gleichzeitiger Betrachtung bilden die Blockkandidaten in einer bevorzugten Ausführungsform eine Diamantenform mit dem besten Kandidaten aus der ersten Phase in der Mitte des Diamanten.
  • Ein Vorteil der Verwendung von naheliegenden Blöcken zur Lokalisierung der Blockkandidaten liegt darin, dass die Bewegungsvektoren für die naheliegenden Blöcke, die in der ersten Phase verwendet werden, vor dem Beginn der ersten Phase bekannt sind; daher können sie zur Bestimmung des Suchraums für die erste Phase verwendet werden, und der Suchraum kann vor dem Beginn der ersten Phase in den internen DRAM des DSP vorgeladen werden. Außerdem kann, da der beste Blockkandidat, der von der ersten Phase bereitgestellt werden soll, sowohl im Suchraum für die erste Phase ist, als auch als Mittelpunkt einer Diamantenform vorgegebener Größe für die zweite Phase verwendet wird, der Suchraum für die erste Phase auf einen größeren rechteckigen Suchraum erweitert werden, der eine Diamantenform umschließt, die sich in der Mitte eines der Blöcke in dem Suchraum befindet, und der erweiterte Suchraum kann vor der ersten Phase in den internen DRAM des DSP vorgeladen werden.
  • Phase 1: 2 und 6
  • 2 zeigt die naheliegenden Blöcke 202, die als erste für die erste Phase der Suche in Betracht gezogen werden. Wie nachstehend näher beschrieben wird, können noch näherliegende Blöcke verwendet werden, oder es können andere Blöcke gegen die naheliegenden Blöcke von 2 ausgetauscht werden. Der aktuelle Block 203 und die naheliegenden Blöcke 202 werden zum Ermitteln eines Prädiktors für den aktuellen Block 203 des aktuellen Bilds 201 im Suchraum 219 des Bezugsbilds 101 verwendet. Bei der bevorzugten Ausführungsform erfolgt die Codierung des aktuellen Bilds 201 in Rasterabtastungs-Anordnung, das heißt, die Blöcke des aktuellen Bilds werden in Reihen codiert, wobei die Blöcke in jeder Reihe von links nach rechts codiert werden und die Reihen im Bild von oben nach unten verarbeitet werden. Somit sind die Blöcke in Reihen über der Reihe, die den aktuellen Block enthält, bereits codiert worden, wie auch die Blöcke links von dem aktuellen Block in der Reihe mit dem aktuellen Block. Da diese Blöcke bereits codiert worden sind, sind alle Bewegungsvektoren, die sie haben können, bereits verfügbar. Bei der bevorzugten Ausführungsform werden unter Verwendung von mindestens vier naheliegenden Blöcken und dem aktuellen Block fünf Blockkandidaten ermittelt. Die vier naheliegenden Blöcke, die zuerst zur Verwendung in der ersten Phase in Betracht gezogen werden sind ein Block des letzten zu codierenden Bilds 220 und drei Blöcke des aktuellen Bilds 201. Der eine Block des letzten zu codierenden Bilds 220 hat die gleichen x- und y-Koordinaten im Bild 220, die der aktuelle Block im aktuellen Bild 201 hat. Ein Block in einem anderen Bild, der die gleichen Koordinaten wie der aktuelle Block hat, wird hier als räumlich korrespondierender Block bezeichnet. Die drei naheliegenden Blöcke im aktuellen Bild 201 sind die drei Blöcke, die an den aktuellen Block 203 angrenzen, und können bereits Bewegungsvektoren haben. Angrenzen bedeutet hier, dass sie mindestens eine Ecke haben, die einen Rand oder eine Ecke des aktuellen Blocks berührt. Die Blöcke, die zur Lokalisierung der fünf Blockkandidaten verwendet werden, sind somit folgende:
    • 1. der Aktuelle Block (CB) 203, der zur Lokalisierung des Räumlich Korrespondierenden Blocks des Bezugsbilds (RPSCB) 227 verwendet wird, der Block im Bezugsbild 101, der die gleichen x- und y-Koordinaten wie der aktuelle Block 203 hat, oder anders ausgedrückt, der Block im Bezugsbild 101, für den der aktuelle Block 203 den Bewegungsvektor (0, 0) hat;
    • 2. der Räumlich Korrespondierende Block des Letzten Bilds (LPSCB) 221 in dem letzten codierten Bild 220, der die gleichen x- und y-Koordinaten wie der aktuelle Block 203 hat;
    • 3. der Westliche Angrenzende Block (WAB) 205 in dem aktuellen Bild;
    • 4. der Nördliche Angrenzende Block (NAB) 207 und
    • 5. der Nordöstliche Angrenzende Block (NEAB) 209.
  • Bei der bevorzugten Ausführungsform haben das aktuelle Bild 201 und das letzte codierte Bild 220 jeweils eine assoziierte Nachschlagetabelle, die einen Eintrag für jeden Block in dem Bild hat. Wenn ein Bewegungsvektor für den Block berechnet worden ist, enthält der Eintrag für den Block den Bewegungsvektor des Blocks. Wenn kein Bewegungsvektor berechnet worden ist, enthält der Eintrag null Werte. Beispielsweise hat in 2 das aktuelle Bild 201 eine Nachschlagetabelle 210, und in der Tabelle 210 gibt es Einträge für die Bewegungsvektoren für die naheliegenden Blöcke 202. Der Eintrag 213 hat den Bewegungsvektor für den naheliegenden Block 207. Das ist der Nördliche Angrenzende Bewegungsvektor (NAMV). Der Eintrag 215 hat den Bewegungsvektor für den naheliegenden Block 209. Das ist der Nordöstliche Angrenzende Bewegungsvektor (NEAMV). Der Eintrag 217 hat den Bewegungsvektor für den naheliegenden Block 205. Das ist der Westliche Angrenzende Bewegungsvektor (WAMV). Ebenso gibt es in der Nachschlagetabelle 218 für das letzte codierte Bild 220 einen Bewegungsvektor-Eintrag 229 für den naheliegenden Block 221. Das ist der LPSCB-Bewegungsvektor (LPSCBMV).
  • Die Bewegungsvektoren für die vorgenannten fünf naheliegenden Blöcke werden zur Lokalisierung von fünf Blockkandidaten im Bezugsbild 101 verwendet. Einer der Blockkandidaten ist der RPSCB-Block 227 im Bezugsbild 101; die anderen vier werden durch Anwenden des Bewegungsvektors für einen der naheliegenden Blöcke im aktuellen Bild 201 oder im letzten codierten Bild 220 auf die x- und y-Koordinaten (i, j) des Blocks 227 im Bezugsbild 101 lokalisiert. Somit wird der Blockkandidat 225 unter Verwendung des Bewegungsvektors (a, b) 217 aus dem naheliegenden Block 205 durch Anwenden des Bewegungsvektors (a, b) auf die Koordinaten (i, j) lokalisiert, um die Koordinaten (i+a, j+b) für den Blockkandidaten 225 zu ermitteln. Der Block im aktuellen Bild 201 mit dem Bewegungswektor (0, 0) in Bezug zum Block 227 natürlich der Block 203. Die fünf Blockkandidaten können somit wie folgt angegeben werden:
    • 1. der RPSCB-Block 227 des Bezugsbilds 101;
    • 2. der Blockkandidat mit der Verschiebung, der durch Anwenden des Bewegungsvektors 217 auf die Koordinaten (i, j) des RPSCB 227 ermittelt wird;
    • 3. der Blockkandidat mit der Verschiebung, der durch Anwenden des Bewegungsvektors 213 auf die Koordinaten (i, j) ermittelt wird;
    • 4. der Blockkandidat mit der Verschiebung, der durch Anwenden des Bewegungsvektors 215 auf die Koordinaten (i, j) gefunden wird; und
    • 5. der Blockkandidat mit der Verschiebung, der durch Anwenden des Bewegungsvektors 229 auf die Koordinaten (i, j) ermittelt wird.
  • Der Bewegungsvektor des aktuellen Blocks 203 in Bezug zum RPSCB 227 ist natürlich (0, 0), und der aktuelle Block 203 stimmt mit dem RPSCB 227 überein, wenn es tatsächlich nur eine sehr geringe oder gar keine Bewegung des aktuellen Blocks 203 in Bezug zum RPSCB 227 gegeben hat.
  • Einzelheiten zu dem Vorstehenden sind in 6 zu finden, die ein Ablaufdiagramm 601 für beide Phasen einer bevorzugten Ausführungsform des Hybrid-Bewegungsschätzungsverfahrens ist. Das Verfahren verwendet drei Schwellenwerte, deren Ableitung nachstehend erläutert wird. In der unmittelbar folgenden Darlegung befassen wir uns mit der Phase 1 603. In der Darlegung bezeichnen Bezugssymbole in Klammern Blöcke im Ablaufdiagramm 601. Beginnend mit START HME 604 besteht der erste Schritt darin, den aktuellen Block 203 durch Vergleichen des aktuellen Blocks 203 mit dem RPSCB 227 auf Bewegung in Bezug zum RPSCB 227 zu prüfen (605). Wenn der Vergleich eine Übereinstimmung zwischen dem aktuellen Block 203 und dem RPSCB 227 zeigt, sodass das Anpassungskriterium unterhalb einer ersten Schwelle liegt, ist es sehr wahrscheinlich, dass es nur eine sehr geringe oder gar keine Bewegung in Bezug zum aktuellen Block 203 zwischen dem aktuellen Bild und dem Bezugsbild 101 gegeben hat (607). In diesem Fall ist der RPSCB 227 der Prädiktor für den aktuellen Block 203, und weitere Kandidaten brauchen nicht geprüft zu werden. Somit geht das Verfahren, wie durch den Pfeil 608 angegeben, sofort zum Schritt 619 und endet bei 621.
  • Wenn das Anpassungskriterium nicht unterhalb der ersten Schwelle ist, werden die Bewegungsvektoren für die vier übrigen naheliegenden Blöcke 205, 207, 209 und 221 zur Lokalisierung der Blockkandidaten 225 im Suchraum 219 verwendet (609). Jeder Blockkandidat 225 wird dann, wie vorstehend beschrieben, mit dem aktuellen Block 203 verglichen, und der am besten passende Block, das heißt, der Block mit dem niedrigsten Anpassungskriterium-Ergebnis, wird als Prädiktor gewählt (611). Wenn dieser Prädiktor ein Anpassungskriterium-Ergebnis hat, das kleiner als eine zweite Schwelle ist (613), wird er als Prädiktor für den aktuellen Block 203 gewählt, und wie durch den Pfeil 615 angegeben, endet das Verfahren über die Blöcke 619 bis 621, wie vorstehend beschrieben. Andernfalls läuft das Verfahren mit der Phase 2 623 (Pfeil 617) weiter, was nachstehend näher beschrieben wird.
  • Lokalisieren eines Blockkandidaten aus dem LPSCB 221
  • Das letzte codierte Bild 220 muss nicht unbedingt das Bezugsbild sein. Wenn beispielsweise aufeinander folgende bidirektionale Bilder (Bilder des Typs 8) im MPEG-Videocodierstandard übertragen werden, kann das letzte codierte Bild ein B-Bild sein und kann daher kein Bezugsbild sein. Auch braucht das letzte codierte Bild nicht unbedingt ein Bild zu sein, das vor dem aktuellen Bild angezeigt wird. Im MPEG-Videocodierstandard wird beispielsweise ein vorhergesagtes Bild (Typ P) vor einem B-Bild übertragen, aber nach dem B-Bild angezeigt. In diesem Fall ist das P-Bild ein Bezugsbild. Der MPEG-Videocodierstandard ist in ISO/IEC International Standard IS 11172-2, „Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbits/s – Part 2: Video" („Informationstechnik – Codierung von Bewegtbildern und zugehörigen Audiosignalen für digitale Speichermedien mit bis zu etwa 1,5 MBit/s. Teil 2 : Video"), 1993, und ITU-T Recommendation H.262 (1995): „Generic coding of moving pictures and associated audio: video" („Generische Codierung von Bewegtbildern und zugehörigen Audisignalen: Video") (ISO/IEC 13818-2) näher erläutert. Wie nachstehend näher dargelegt, kann der Kandidat, der aus dem naheliegenden Block 221 im letzten Bild 220 ermittelt wird, direkt aus dem Bewegungsvektor des Blocks 221 ermittelt werden oder durch Proportionalskalierung der X- und Y-Koordinaten dieses Bewegungsvektors in der Zeitdomäne berechnet werden.
  • Berechnung der Blockkandidatenverschiebung aus dem Bewegungsvektor im letzten codierten Bild
  • Die folgende Darlegung beschreibt zunächst die zeitlichen Zusammenhänge zwischen Bildern, die in Folgen codierter Videobilder möglich sind, und beschreibt dann, wie diese zeitlichen Zusammenhänge die Berechnung des Bewegungsvektors beeinflussen, der zur Bestimmung des Blockkandidaten 225 verwendet wird, für den der LPSCB 221 der naheliegende Block ist.
  • Eine digitale Videofolge entsteht an einer Kamera, wo eine Szene als aufeinander folgende Bilder von Feldern (Zwischenzeilen-Gesamtbilder) oder als Einzelbilder (progressive Bilder) erfasst wird. Die Bilder werden von der Kamera mit einer festgelegten Bildgeschwindigkeit erfasst. Beispielsweise erfasst eine NTSC-Kamera (NTSC – National Television System Committee; Staatlicher Fernseh-Ausschuss) Felder mit ca. 60 Hz. Wenn die Bilder von einer Kamera im analogen Format sind, werden sie digitalisiert und mit der Codiermaschine auf die erforderliche räumliche Auflösung räumlich skaliert. Wenn sie im digitalen Format sind, wird jedem Bild ein zeitlicher Bezug zugeordnet, um die Zeit, zu der es erfasst wurde, in Bezug zu anderen Bildern zu verfolgen und somit die Beibehaltung ihrer Anzeige-Reihenfolge zu erleichtern. Somit wird eine typische Folge von Bildern, die mit einer Kamera erzeugt werden, durch P1, P2, P3, P4, P5, ... Pk dargestellt, wobei der tiefgestellte Index die Anzeige-Reihenfolge der Bilder angibt.
  • Da kostengünstige Echtzeit-Codiermaschinen in Multimedia-Systemen wie denen für Bildtelefon-Anwendungen eine begrenzte Verarbeitungsleistung haben, kann die Codiermaschine Bilder mit einer geringeren Geschwindigkeit als der Geschwindigkeit codieren mit der die Kamera Bilder ausgibt. Außerdem kann die Geschwindigkeitssteuerungskomponente der Codiermaschine auf das Codieren von Bildern entsprechend ihrer Rechenbelastung oder dem Vollsein ihres Ausgabepuffers dynamisch verzichten. Daher kann die tatsächliche Gruppe von Bildern aus einer Bildfolge, die komprimiert und übertragen werden, Lücken haben, die den Bildern entsprechen, die die Codiermaschine aussortieren musste. Eine komprimierte Bildfolge könnte möglicherweise sein:
    P1, P5, P8, P11, P14, ... Pk, da
    • 1. die Codiermaschine dafür ausgelegt (oder vorgesehen) ist, mit 10 Bildern je Sekunde zu arbeiten, und
    • 2. das erste Bild einer Folge die Kapazität des Ausgabepuffers überschreitet, da es die hervorragenden Datenreduktionsmöglichkeiten, die die Bewegungsschätzung bietet, nicht nutzt.
  • Das heißt, in diesem Beispiel ist die Codiermaschine so ausgelegt, dass sie jedes dritte Bild komprimiert, aber da P1 eine große Anzahl von Bits in komprimierter Form ergibt, muss die Codiermaschine P2 bis P4 ignorieren. Dann ist bis zu dem Zeitpunkt, zu dem P5 eintrifft, der Ausgabepuffer der Codiermaschine so weit entleert, dass P5 komprimiert werden kann.
  • Bei zahlreichen Codierschemen ist nicht jedes codierte Bild ein Bezugsbild. Bei diesen Codierschemen werden solche codierten Nicht-Bezugsbilder zwischen den Bezugsbildern eingefügt. Solche Schemen ermöglichen eine zeitliche Bildskalierbarkeit (d. h. Bildauslassung) mit einer normgerechten Decodiermaschine mit einer geringeren Rechenleistung und/oder sie gestatten den wahlfreien Zugriff in komprimierten digitalen Videoströmen. Schließlich kann die Reihenfolge, in der Bilder codiert werden, von ihrer Anzeige-Reihenfolge abweichen. Ein Beispiel ist hier MPEG, mit dem eine effektivere Komprimierung von Videofolgen mit stanker Bewegung dadurch erreicht wird, dass man ein Bild auf ein künftiges Bezugsbild Bezug nehmen lässt. Die Reihenfolge, in der die Codiermaschine Bilder codiert, ist die Bild-Übertragungsreihenfolge.
  • Die folgenden Fälle stellen die Berechnung der Verschiebung des Blockkandidaten aus dem Bewegungsvektor des räumlich korrespondierenden Blocks im letzten codierten Bild beispielhaft dar. Diese Berechnung beruht auf:
    • 1. den Koordinaten des beteiligten Bewegungsvektors, (x, y), und
    • 2. dem zeitlichen Zusammenhang zwischen • dem Bezugsbild, • dem letzten codierten Bild und • dem aktuellen Bild.
  • Es wird unterstellt, dass alle Bilder Teil einer Folge sind, die der Codiermaschine mit der Anzeige-Reihenfolge Pa, Pb, Pc, Pd, Pe, ... Pi, Pj, Pk, ... vorgelegt wird, in der der zeitliche Zusammenhang impliziert, dass a < b < c < d < e < ... i < j < k ... und so weiter ist. Zur Verallgemeinerung der folgenden Beschreibung verwenden wir die tiefgestellten Indices k, m und v mit der Anzeige-Reihenfolge-Bedingung k < m < v, aber ohne Beschränkungen in der zeitlichen Disparität zwischen den Bildern (d. h., wie groß der zeitliche Abstand ist).
  • In allen folgenden Fällen wird, wenn die berechnete Verschiebung (newX,newY) Blockkandidaten ergibt, bei dem ein Teil seines Bereichs über die Grenzen des zulässigen Suchraums hinausgeht (d. h., außerhalb des zulässigen Bewegungsvektorbereichs liegt), der Blockkandidat ignoriert oder durch einen anderen in Frage kommenden Blockkandidaten ersetzt, wie nachstehend unter Grenzbedingungen erläutert wird.
  • In jedem einzelnen nachstehenden Fall gilt die Berechnung nur für das dritte komprimierte Bild (d. h. das dritte Bild in der Überfragungsreihenfolge), da zwei zeitliche Zusammenhänge von zuvor übertragenen Bildern erforderlich sind. Fall 1: Anzeige-Reihenfolge = Übertragungsreihenfolge das letzte codierte Bild ist auch das "vergangene" Bezugsbild
    Bilder in der Anzeige-Reihenfolge: Pk, Pm, Pv,
    Überfragungsreihenfolge Bild – aktuelles Bild: Pk, Pm, Pv (die gleiche Reihenfolge wie
    die Anzeige-Reihenfolge)
    Letztes codiertes Bild vor dem aktuellen Bild: _, Pk, Pm,
    Bezugsbild für das aktuelle Bild: _, Pk, Pm.
  • Dann gilt für das Bild Pv:
    Figure 00160001
    wobei 0 ,5 addiert wird, um auf die nächste ganze Zahl vor dem Abbrechen zu runden, wie es durch die floor-Funktion impliziert ist. Dieser Fall ist bei der H.261- und H.263-Videocodierung typisch. Einzelheiten siehe ITU-T Recommendation H.261 (1993): "Video codec for audiovisual services at p × 64 kbits/s" („Videocodierung/-decodierung für audiovisuelle Dienste mit p × 64 kBit/s") und Draft ITU-T Recommendation H.263 (199?): „Video codec for low bitrate communications" („Videocodierung/-decodierung für Übertragungen mit niedriger Bitrate"). Fall 2: Anzeige-Reihenfolge = Übertragungsreihenfolge; das letzte codierte Bild und das aktuelle Bild verwenden das gleiche "vergangene" Bezugsbild
    Bilder in der Anzeige-Reihenfolge: Pk, Pm, Pv,
    Übertragungsreihenfolge Bild – aktuelles Bild: Pk, Pm, Pv (die gleiche Reihenfolge wie
    die Anzeige-Reihenfolge)
    Letztes codiertes Bild vor dem aktuellen Bild: _, Pk, Pm,
    Bezugsbild für das aktuelle Bild: _, Pk, Pk.
  • Dann gilt für das Bild Pv:
    Figure 00170001
  • Wenn es die Spezifikation und Syntax einer Videocodiermaschine zulassen, kann bei diesem Fall eine normgerechte Decodiermaschine entweder Pm oder Pv für eine zeitliche Abwärtsskalierbarkeit auslassen. Fall 3: Anzeige-Reihenfolge = Übertragungsreihenfolge: das letzte codierte Bild und das aktuelle Bild verwenden das gleiche "künftige" Bezugsbild
    Bilder in der Anzeige-Reihenfolge: Pk, Pm, Pv,
    Übertragungsreihenfolge Bild – aktuelles Bild: Pv, Pk, Pm,
    Letztes codiertes Bild vor dem aktuellen Bild: _, Pv, Pk,
    Bezugsbild für das aktuelle Bild: _,Pv, Pv.
    Dann gilt für das Bild Pm:
    Figure 00170002
  • Wenn es die Spezifikation und Syntax einer Videocodiermaschine zulassen, ist dieser Fall für die Komprimierung von Videos mit starker Bewegung, die Szenenwechsel zeigen, zweckmäßig. Fall 4: Anzeige- und Übertragungsreihenfolge unterschiedlich; das letzte codierte Bild ist auch das Bezugsbild, es sei denn, Pk ist ein "vergangenes" Bezugsbild für Pv und Pv ist ein "künftiges" Bezugsbild für Pm
    Bilder in der Anzeige-Reihenfolge: Pk, Pm, Pv,
    Übertragungsreihenfolge Bild – aktuelles Bild: Pk, Pv, Pm,
    Letztes codiertes Bild vor dem aktuellen Bild: _, Pk, Pv,
    Bezugsbild für das aktuelle Bild: _, Pk, Pv.
    Dann gilt für das Bild Pm:
    Figure 00170003
  • Wenn es die Spezifikation und Syntax einer Videocodiermaschine zulassen, kann bei diesem Fall eine normgerechte Decodiermaschine entweder Pm oder Pm und Pv für eine zeitliche Abwärtsskalierbarkeit auslassen. Fall 5: Anzeige- und Übertragungsreihenfolge unterschiedlich das letzte codierte Bild ist auch das Bezugsbild, es sei denn, Pv ist ein "künftiges" Bezugsbild für Pk und Pk ist ein "vergangenes" Bezugsbild für Pm
    Bilder in der Anzeige-Reihenfolge: Pk, Pm, Pv,
    Überfragungsreihenfolge Bild – aktuelles Bild: Pv, Pk, Pm,
    Letztes codiertes Bild vor dem aktuellen Bild: _, Pv, Pk,
    Bezugsbild für das aktuelle Bild: _, Pv, Pk.
    Dann gilt für das Bild Pm:
    Figure 00180001
  • Verwendung anderer naheliegender Blöcke in Phase 1: 3 und 4
  • Wie in 3 gezeigt, kann der nordwestliche angrenzende Block 301 in Phase 1 zum Lokalisieren eines Blockkandidaten 225 in der gleichen Weise wie die anderen naheliegenden Blöcke 202 verwendet werden. Der Block 301 kann entweder zum Lokalisieren eines sechsten Blockkandidaten oder anstelle eines der naheliegenden Blöcke 205, 207 oder 209 verwendet werden. In letzterem Fall zeichnet die Codiermaschine auf, welcher angrenzende Block den Bewegungsvektor für den Prädiktor für jeden Block im aktuellen Bild 201 bereitgestellt hat, dessen Bewegungsvektor bestimmt worden ist, und verwendet diese Informationen, um zu bestimmen, welche drei der vier angrenzenden Blöcke (nordwestlicher, nördlicher, nordöstlicher oder westlicher) verwendet werden sollten, um ihre Bewegungsvektoren als Prädiktoren für den aktuellen Block bereitzustellen. Der nordwestliche Block dient auch als Ersatz, wenn einer der anderen Blöcke 205, 207 oder 209 nicht in dem Bild vorhanden ist (das heißt, zum äußeren rechten Teil des Bilds hin) oder wenn wegen unbefriedigender Bewegungsschätzungsleistung (d. h., der ermittelte Fehler der besten Übereinstimmung war nicht akzeptabel) für einen (oder mehrere) der anderen drei angrenzenden Blöcke kein Bewegungsvektor vorhanden ist.
  • Die Gruppe von naheliegenden Blöcken 202, die während der Phase 1 des Hybrid-Bewegungsschätzungsverfahrens (HME-Verfahrens) verwendet wird, ist außerdem nicht auf die Blöcke 227, 221, 205, 207, 209 und 301 beschränkt. Wie in 4 gezeigt, können zusätzliche Kandidaten unter Verwendung von Bewegungsvektoren aus naheliegenden Blöcken in dem aktuellen Bild, wo die Bewegungsschätzung bereits durchgeführt worden ist, ermittelt werden. Einige dieser zusätzlichen naheliegenden Blöcke erscheinen als die sechs Blöcke in dem schraffierten Bereich 401 von 4. Die Grenze für die Anzahl der naheliegenden Blöcke, die in Phase 1 des HME-Verfahrens verwendet werden können, wird von der Rechenleistung der DSP-gestützten Codiermaschine und von der Notwendigkeit auferlegt, Prozessorzyklen für die Blockanpassungsberechnungen der Phase 2 des HME-Verfahrens zu reservieren. Je näher ein naheliegender Block an dem aktuellen Block liegt, umso wahrscheinlicher ist es, dass er eine ähnliche Translationsbewegung zeigt. Somit sind die bevorzugten zusätzlichen naheliegenden Blöcke diejenigen, die an den westlichen, nordwestlien nördlichen und nordöstlichen Block angrenzen. Diese zusätzlichen Blöcke sind als schraffierter Bereich 410 dargestellt. Die schraffierten Blöcke können als naheliegende Blöcke in Phase 1 des HME-Verfahrens verwendet werden, wenn die Codiermaschine überschüssige Prozessorzyklen hat oder wenn einer der naheliegenden Blöcke, die bereits in Phase 1 verwendet werden, keinen Blockkandidaten liefern kann.
  • Phase 2 der Hybrid-Bewegungsschätrung: 5 und 6
  • In dem Fall, dass das beste Anpassungskriterium-Ergebnis, das in Phase 1 ermittelt wird, die Schwelle 2 überschreitet, wird angenommen, dass es möglicherweise anderswo im Suchraum einen Block gibt, der besser zu dem aktuellen Block passt. Daher geht das Hybrid-Bewegungsschätzungsverfahren zu Phase 2, wo eine Suche nach einem zufriedenstellenderen Prädiktor in einem Bereich durchgeführt wird, in dessen Mitte sich der Prädiktor befindet, der von der Phase 1 lokalisiert wird; dieser Prädiktor wird hier als Predphase1 bezeichnet.
  • Das HME-Verfahren geht in der Annahme, dass ein besserer Prädiktor für den aktuellen Block in unmittelbarer Nähe zur Lage des Predphase1 liegt, zur Phase 2. Bei Anwendungen mit geringen Bandbreiten, wie etwa Bildtelefonanlagen, führt das HME-Verfahren eine Suche nach einem besseren Blockkandidaten in einem diamantförmigen Bereich oder Fläche 505 (und nicht in einem rechteckigen Bereich) durch. 5 zeigt diesen Bereich 505, der aus den Blöcken mit den Nummern „1" bis „21" besteht, und seinen Zusammenhang mit dem Predphase1 501 im Suchraum 201. In 5 bildet der Mittelpunkt des Suchbereichs, der als Block mit der Nummer „1" dargestellt ist, der 16 × 16-Predphase1-Block 501. Zur Vereinfachung der Darstellung der spiralförmig erfolgenden Suche sind jedoch auch die übrigen Blöcke mit der gleichen Größe wie der mittlere 16 × 16-Block dargestellt, wenn sie in der Realität eine Ein-Pixel-Verschiebung vom Mittelpunkt entfernt sind. Wie die Abmessungen in 5 zeigen, stellen alle Blöcke außer dem mittleren Block eine Ein-Pixel-Verschiebung und keinen 16 × 16-Block dar.
  • Selbst wenn sich ein rechteckiger Bereich 503 während der Phase 2 in der Mitte des Predphase1 befindet, wird gewöhnlich der Blockkandidat, der das beste Anpassungskriterium-Ergebnis bringt, in dem diamantförmigen Bereich 505 ermittelt, der von dem rechteckigen Bereich 503 begrenzt wird. Folglich erspart das HME-Verfahren eine zusätzliche Berechnung, indem es Blockkandidaten mit Verschiebungen außerhalb des diamantförmigen Bereichs auslässt. Die eingesparte Berechnung wird dann zur Vergrößerung des diamantförmigen Bereichs verwendet, und das ermöglicht wiederum die Berücksichtigung weiterer Blockkandidaten, die potentiell zu einem besseren Anpassungskriterium-Ergebnis führen können. Außerdem soll der diamantförmige Bereich dazu dienen, mehr horizontale Kandidatenverschiebungen als vertikale Positionen zu berücksichtigen, wie in 5 gezeigt, da typische Verbraucher-Bildtelefon-Bilder im Haus gewöhnlich eine horizontal-ähnliche Bewegung infolge der Kamerschwenkung (d. h. Schwenkung, um Familienangehörige im Wohnzimmer zu erfassen) aufweisen.
  • In Phase 2 des HME-Verfahrens wird die Spiralsuche in dem diamantförmigen Bereich vorzugsweise in einer bestimmten Reihenfolge durchgeführt, die von dem Blocklabel mit steigender Zahl angegeben wird, um die Berechnung weiter zu minimieren. Je näher der Blockkandidat am Predphase1 501 ist, umso wahrscheinlicher ist es, ein Anpassungskriterium-Ergebnis zu haben, das besser als das Ergebnis am Predphase1 501 ist. Somit werden Blockkandidaten in einer spiralförmig nach außen gerichteten Reihenfolge (weg vom Predphase1 501) gegen den Uhrzeigersinn (oder alternativ im Uhrzeigersinn) in Betracht gezogen.
  • Das Verfahren, das zur Lokalisierung eines Prädiktors, der besser als der Predphase1 501 ist, verwendet wird, ist in Phase 2 (623) in 6 gezeigt. Bei 625 wird ein diamantförmiger Bereich 505 festgelegt; dann wird eine Schleife, die aus den Blöcken 627, 629, 631 und 637 besteht, so lange ausgeführt, bis ein Kandidat gefunden worden ist, dessen Anpassungskriterium-Ergebnis für die Übereinstimmung mit dem aktuellen Block 629 niedrig genug ist, das heißt, in der bevorzugten Ausführungsform kleiner als die Schwelle 3 ist, oder bis alle Kandidaten im Diamanten 505 geprüft worden sind. Im ersteren Fall (Block 631 und Pfeil 633) ist der Blockkandidat der Prädiktor, und das Verfahren wird über 619 und 621 beendet; im letzteren Fall (Block 637 und Pfeil 641) ist der Blockkandidat der Phase 2 mit dem kleinsten Ergebnis für das Anpassungskriterium der Prädiktor, und das Verfahren wird über die Blöcke 643, 645 und 621 beendet.
  • Da der Mittelpunkt des Diamanten 505 der Predphase1 501 ist, kann der Diamant mit einer Nachschlagetabelle der Verschiebungen der Blöcke 2–21 vom Predphase1 501 implementiert werden, und die Adressen der während der Phase 2 geprüften Kandidaten können unter Verwendung dieser Nachschlagetabelle berechnet werden. Obwohl der s chraffierte Bereich des Rechtecks 503 außerhalb des diamantförmigen Bereichs in 2 aus praktischen Gründen während der Phase 2 nicht verwendet wird, ist der effektive Bereich, der sich zur Durchführung der Phase 2 im Daten-RAM des DSP befinden muss, der gesamte rechteckige 22 × 22-Bereich 503 (484 Byte). Der effektive Bereich, der über den 16 × 16-Block hinaus benötigt wird, ist eine Erweiterung der drei Pixel in jeder Richtung. Dieses Delta geht in die Berechnung des benötigten Suchraumbereichs für die Phase 1 ein, die nachstehend beschrieben wird. Alternativ kann diese Datenübertragung gestartet werden, sobald der Predphase1 501 während der Phase 1 bestimmt worden ist. Im Unterschied zu schnellen Bewegungsschätzungsverfahren (die vorstehend erörtert wurden), die eine Folge von Schritten verwenden, um das endgültige Ergebnis anzusteuern, verwendet ein weiteres neues HME-Verfahren einen nicht-rechteckigen Suchbereich, der auf dem Ziel (Predphase1) abgebildet wird, und eine spiralförmig ablaufende Suche in diesem reduzierten Suchbereich.
  • Alternative Betriebsarten für Phase 2
  • Der Suchbereich für die Phase 2 des HME-Verfahrens ist nicht auf die festgelegte Bereichsgröße oder die in 2 angegebene Form beschränkt, sondern kann bei leistungsfähigeren Prozessoren und/oder überschlüssigem DSP Daten RAM mit zusätzlichen Verschiebungen vergrößert werden.
  • Da sich die Anzahl der für das HME-Verfahren verwendeten Prozessorzyklen in Abhängigkeit davon ändert, wie schnell ein zufriedenstellender Prädiktor gefunden wird, wird bei einer alternativen Betriebsart dieser Erfindung die Größe des Suchraumbereichs der Phase 2 anhand der überschüssigen Prozessorzyklen dynamisch geändert.
  • Bei einer weiteren alternativen Betriebsart wird aufgrund folgender Faktoren die Form des Bereichs aus einer Gruppe vordefinierter Formen dynamisch gewählt oder gemäß den Anforderungen des Kunden angepasst:
    • 1. Die Lage des PredPhase1 501 in Bezug zum aktuellen Block zusammen mit der relativen Lage des Blocks, der am Bewegungsvektor für den Predphase1 501 beteiligt ist, oder
    • 2. die allgemeine Orientierung der Gruppe der Blockkandidaten in der Phase1 in Bezug zum aktuellen Block.
  • Daher wird, wenn die allgemeine Orientierung d er Gruppe von Blockkandidaten eine Y-Komponente hat, die viel größer als eine X-Komponente ist, ein vertikal ausgerichteter diamantförmiger Bereich verwendet. Somit besteht ein weiteres Merkmal dieser Erfindung darin, dass die Schräge und Orientierung des diamantförmigen Bereichs dynamisch verstellt werden kann. Gegenüber der dynamischen Berechnung der Form des Suchraumbereichs der Phase 2 wird jedoch eine Betriebsart bevorzugt, die eine Form und ihre zugehörige Nachschlagetabelle für die Suchreihenfolge der Phase 2 aus einer kleinen Gruppe von vordefinierten Formen wählt. Eine besonders zweckmäßige Gruppe von vordefinierten Formen besteht aus vier diamantförmigen Einträgen: einem horizontal ausgerichteten, einem vertikal ausgerichteten und zwei diagonal ausgerichteten (der eine mit 45 Grad ausgerichtet und der andere mit 135 Grad ausgerichtet).
  • Bestimmen der Schwelle1, Schwelle2 und Schwelle3
  • In der Regel ist Schwelle1 > Schwelle2 > Schwelle3. Ein Grund dafür liegt darin, dass im Allgemeinen Folgendes gilt: Je mehr Zyklen ein Prozessor verwendet, um den Prädiktor zu finden, umso besser müsste die Übereinstimmung zwischen dem Prädiktor und dem aktuellen Block sein. Ein weiterer Grund besteht darin, dass Bewegungsvektoren als Größendifferenzen zwischen der Größe des Bewegungsvektors für den aktuellen Block und der Größe des Bewegungsvektors eines zuvor codierten Blocks in dem aktuellen Bild, die durch die Syntax und die Semantikregeln festgelegt sind, die für einen komprimierten Videostrom erforderlich sind. Daher gilt: Je größer die Größendifferenz, umso mehr Bits sind erforderlich, um die Größe der komprimierten Darstellung des Blocks darzustellen.
  • Jede Schwelle wird durch Addieren eines dynamisch ermittelten Δ-Werts zu einer festen Komponente berechnet. Bei der bevorzugten Ausführungsform, die 16 × 16-Blöcke und das SAE Anpassungskriterium verwendet und die eine Datengeschwindigkeit von 112 KB/s hat, ist Schwelle1 = 512 + Δ1, Schwelle2 = 512 + Δ2, Schwelle3 = 512 + Δ3,wobei Δ1 > Δ2 > Δ3 ist. Die Werte für Δ werden wie folgt ermittelt:
  • Δ1:
    Der Wert wird von dem Geschwindigkeitssteuermechanismus des Codierers gesteuert; für Bilder mit QCIF-Auflösung (das heißt 176 × 144) mit 15 Einzelbildern je Sekunde, kann Δ1 einen Höchstwert von 1280 haben.
    Δ2:
    0,25(Δ1 – Δ3)
    Δ3:
    f(Bildauflösung, Bildgeschwindigkeit, Datengeschwindigkeit und DSP-Zyklen), wobei der Wert von Δ3 in dem Intervall [0, 512] liegen kann.
  • Bei der Datengeschwindigkeit von 112 KB/s kann sich die Schwelle1 in dem Intervall [512, 1024] ändern.
  • Grenzbedingungen
  • Bei einigen Blöcken, die komprimiert werden, haben ein oder mehrere naheliegende Blöcke möglicherweise keinen brauchbaren Bewegungsvektor. Solche Fälle entstehen dann, wenn entweder der naheliegende Block außerhalb der Grenzen des aktuellen Bilds liegt oder wenn kein Bewegungsvektor vorhanden ist, da die Bewegungsschätzungsleistung unbefriedigend war (d. h., der ermittelte Fehler der besten Übereinstimmung war nicht akzeptabel und der vorgesehene Block wurde ohne Bewegungsschätzung komprimiert). Eine ähnliche Situation entsteht, wenn ein Teil eines Blockkandidaten, der durch einen naheliegenden Block identifiziert wird, außerhalb der Grenzen des zulässigen Suchraums liegt. In allen drei genannten Situationen werden naheliegende Ersatzblöcke verwendet, wie vorstehend dargelegt und in den 3 und 4 erläutert ist.
  • Nachstehend werden weitere Bedingungen genannt, wo Blockkandidaten undefiniert sind:
    • • Der aktuelle Block ist in der ersten „Reihe von Blöcken" (d. h. der ersten Scheibe bei MPEG oder der ersten GOB bei H.263) des ersten Bilds, und das aktuelle Bild ist im ersten Bild, wo die Bewegungsschätzung erfolgt.
    • • Der aktuelle Block ist in der ersten „Reihe von Blöcken" in einem Abschnitt des Bilds, das zu einem Prozessor in einer parallelen Verarbeitungsumgebung gesendet wird. Das heißt, das Bild wird in Abschnitte unterteilt, die jeweils eine zusammenhängende Gruppe von „Reihen von Blöcken" sind, und die Codiermaschine hat mehrere Prozessoren (z. B. einen Texas-Instrument-DSP TMS320C80), die das HME-Verfahren unabhängig parallel in jedem Abschnitt ausführen.
  • In diesen Fällen wird der jeweilige undefinierte Bewegungsvektor auf (0, 0) gesetzt, oder das Hybrid-Bewegungsschätzungsverfahren führt die Bewegungsschätzung an diesen Blöcken unter Verwendung eines herkömmlichen schnellen Bewegungsschätzungsverfahrens durch.
  • Dynamische Berechnung eines benötigten Teils des Suchraums 219 für das HME-Verfahren: 712
  • Es ist klar, dass der einzige Teil des Bezugsbilds 101, der für die Phase 1 des Verfahrens 601 im internen RAM des DSP sein muss, der Teil ist, der die Blockkandidaten enthält, die in Phase 1 verwendet werden. Die jeweilige Lage der Blockkandidaten kann aus den Bewegungsvektoren der naheliegenden Blöcke berechnet werden, und diese sind vor der Phase 1 bekannt. Daher kann der Teil des Suchraums 219, der die Blockkandidaten enthält und hier als benötigter Teil bezeichnet wird, vor der Phase 1 bestimmt werden und kann auch vor der Phase 1 in den internen RAM des DSP geladen werden. Außerdem kann der Teil des Suchraums, der für die Phase 2 benötigt wird, auch aus der jeweiligen Lage der Blockkandidaten berechnet werden, und daher kann der für beide Phasen benötigte Teil in den internen RAM geladen werden.
  • 12 ist ein Blockdiagramm eines Videobild-Codiersystems 1201, das den Zusammenhang zwischen dem DSP 1223 und dem übrigen System 1201 zeigt. Das System 1201 empfängt analoge Bilder von einer Videokamera 1203; diese werden in einem Analog-Digital-Umsetzer 1205 in eine digitale Darstellung umgewandelt und durch Leiten digitalisierter Bilddaten über einen First-in-first-out-Speicher (FIFO-Speicher) 1217 in einen externen RAM 1207 eingegeben und mit einer Steuerlogik 1218 gesteuert, die auch den Betrieb des externen RAM 1207 und des DSP 1223 koordiniert. Der externe RAM 1207 enthält zwei Ping-Pong-Bildpuffer 1208 und 1210, von denen der eine stets das aktuelle Bild 201 enthält, das codiert wird, und der andere das nächste zu codierende Bild 1209 von der Kamera 1203 empfängt. Der externe RAM 1207 enthält weiterhin in einem Puffer 1212 wiederhergestellte Darstellungen der digitalen Bezugsbilder, die zum Codieren des aktuellen Bilds 201 benötigt werden. Während das aktuelle Bild komprimiert wird, wird seine decodierte Darstellung im Puffer 1212 wiederhergestellt. Das aktuelle Bild ist dazu bestimmt, als Bezugsbild für die Komprimierung nachfolgender Bilder verwendet zu werden. Die Wiederherstellungen im Puffer 1212 erfolgen durch Decodieren der codierten digitalen Bilder, während sie codiert werden. Gezeigt ist das wiederhergestellte Bezugsbild 101 mit dem Suchraum 219. Der Ausgabepuffer 1211 empfängt das aktuelle Bild 201 in seiner komprimierten Darstellung, während es codiert wird, und gibt das codierte Bild an das übrige System aus. Der Ausgabepuffer kann Teile des letzten codierten Bilds im komprimierten Format enthalten, die noch ausgegeben werden müssen.
  • Ein weiterer Teil des externen RAM 1207 enthält Daten, die vom DSP 1223 beim Codieren des aktuellen Bilds 201 verwendet werden; in diesen Daten sind die Schwellen 1213, die beim HME-Verfahren 601 verwendet werden, und die Nachschlagetabellen der Bewegungsvektoren 210 und 218 für das aktuelle Bild 201 und das letzte codierte Bild 220 enthalten. Der externe RAM 1207 enthält schließlich den Programmcode 1215, den der DSP 1223 abarbeitet, wenn er Codieroperationen durchführt.
  • Der DSP 1223 hat drei Hauptkomponenten: die DSP-Hardware 1227, die die Schaltkreise enthält, die die Verarbeitungsoperationen tatsächlich durchführen; einen Befehls-RAM 1229, der den Teil des DSP-Programmcodes 1215 enthält, den der DSP 1223 aktuell für die Operationen benötigt, die er gerade ausführt; und einen Daten-RAM 1231, der die Daten enthält, die vom DSP 1223 bei den Operationen, die er gerade ausführt, aktuell verwendet oder erzeugt werden. Der DSP 1223 ist über eine Busschnittstelle (BI) 1225 mit einem Adressous 1219 und einem Datenbus 1221 verbunden, die wiederum mit dem externen RAM 1207 verbunden sind. Der DSP 1223 kann so Daten aus dem RAM 1207 lesen und Daten in den RAM 1207 schreiben, aber das Lesen aus dem und das Schreiben in den RAM 1207 sind viel langsamer als das Lesen und Schreiben von Daten aus dem/in den RAM 1231. Daher besteht die effektivste Möglichkeit der Nutzung des DSP 1223 darin, alle Daten, die für eine bestimmte Folge von Operationen benötigt werden, die vom DSP 1223 durchgeführt werden, vor Beginn der Folge von Operationen in den Daten-RAM 1223 zu laden. Insbesondere erfordert die effektive Verwendung des DSP 1223 zur Durchführung des HME-Verfahrens 601, dass der aktuelle Block 203, der benötigte Teil des Suchraums 1219, die Nachschlagetabellen 210 und 218 und die Schwellen 1213 vor Beginn des HME-Verfahrens 601 in den DSP 1223 geladen werden.
  • 7 zeigt den benötigten Teil 701 und seine Beziehung zum Suchraum 219 und zu fünf Blockkandidaten 225(1...5). Der Blockkandidat 225(1) ist der Block 227 des Bezugsbilds, der mit dem aktuellen Block 203 räumlich korrespondiert; die Bewegungsvektoren, die zur Lokalisierung der übrigen Blockkandidaten verwendet werden, sind in Klammern in die Blöcke geschrieben. Der erste Schritt beim Festlegen des Teils 701 besteht darin, die Grenzen zu bestimmen, die notwendig sind, wenn alle Blockkandidaten im Teil 701 enthalten sein müssen. Normalerweise ist, da die Bewegungsvektoren angrenzender Blöcke stark korreliert sind, der Teil 701, der alle Blockkandidaten enthält, ein einzelner Bereich im Suchraum 219 des Bezugsbilds 101, der so klein ist, dass er in den Daten-RAM des DSP passt. In einem solchen Fall, der in 7 gezeigt ist, ist nur eine Übertragung erforderlich, um den benötigten Teil 701 aus dem externen RAM 1207 in den internen Daten-RAM 1231 zu verschieben. Jedoch kann es in dem Fall, dass ein berechneter Suchraum wegen hoher Disparität unter den Blockkandidaten zu groß ist, möglicherweise keinen Teil 701 geben, der sowohl ein einzelnes Rechteck ist, als auch so klein ist, dass er in den internen Daten-RAM des DSP passt. In diesem Fall kann ein benötigter Teil 701, der so klein ist, dass er hineinpasst, aus zwei oder mehr nicht-zusammenhängenden und eventuell überlappenden rechteckigen Abschnitten des Suchraums 219 bestehen. In diesem Fall muss jeder rechtwinklige Abschnitt einzeln vom externen Speicher in den internen Daten-RAM des DSP übertragen werden. Nachstehend wird ein Verfahren erläutert, das zwei Rechtecke minimaler Größe im Suchraum 219 lokalisiert, die alle Kandidaten enthalten. In fast allen Fällen sind die beiden Rechtecke minimaler Größe so klein, dass sie gleichzeitig in den internen RAM des DSP passen.
  • Mögliche Beispiele für die Ergebnisse von Teil 2 des Suchraumbereichs-Berechnungsverfahrens sind in den 811 gezeigt. In 8 verläuft ein unbenutzter vertikaler rechteckiger Abschnitt des Suchraums von der Oberseite zur Unterseite des Suchraums. Dieser Abschnitt wird als Abschnitt V bezeichnet. Die Lage der rechten Seite des benötigten rechteckigen Bereichs A 801 zur linken Seite des benötigten rechteckigen Bereichs B 803 kann sich ändern. Die rechteckigen Bereiche könnten sich überschneiden, unzusammenhängend sein (d. h., es kann einen anderen unbenutzten vertikalen rechteckigen Abschnitt zwischen den Bereichen geben) oder zusammenfallende Seiten haben, wie dargestellt. Somit könnte es bis zu drei unbenutzte vertikale rechteckige Abschnitte geben (einen links vom Bereich A, einen weiteren zwischen den Bereichen und einen weiteren rechts vom Bereich B). Die Abschnitte NW, NE, NE und SE unterscheiden sich in der Größe. Einer der Abschnitte NW, NE, NE und SE ist möglicherweise nicht vorhanden. Der Blockkandidat RPSCB 227 ist stets in einen der beiden benötigten Bereiche 801 und 803 eingekapselt.
  • Ebenso kann der berechnete Suchraumbereich in einem oder mehreren unbenutzten horizontalen rechteckigen Abschnitten resultieren. 9 zeigt Abschnitte H1 und H2, die von der linken zur rechten Seite des Suchraums verlaufen. 9 stellt auch eine der zahlreichen Möglichkeiten dar, wie die benötigten Bereiche 801 und 803 zueinander in Bezug stehen können, und zwar, indem sie einen Überschneidungsbereich 905 haben. Zwei weitere Möglichkeiten, wie die Bereiche 801 und 803 zueinander in Bezug stehen können, sind in den 10 und 11 gezeigt.
  • Verfahren zur Berechnung des benötigten Teils 701 des Suchraums 219
  • Der benötigte Teil 701 wird während der Phase 1 des HME-Verfahrens unter Verwendung eines Verfahrens berechnet, das zunächst einen benötigten Teil 701 berechnet, der aus einem einzigen Rechteck besteht, und das dann, wenn das einzige Rechteck zu groß ist, um in den internen RAM des DSP zu passen, einen benötigten Teil 701 berechnet, der aus zwei benötigten rechteckigen Abschnitten minimaler Größe 801 und 803 besteht.
  • Teil 1: Berechnungsverfahren für einen einzigen rechteckigen Bereich
    • 1. Jeder Blockkandidat 225 der Phase 1 wird ermittelt und im Suchraum 219 abgebildet. Es ist zu beachten, dass die Koordinaten eines Blockkandidaten 225 seiner linken oberen Ecke entsprechen (d. h., ein Bewegungsvektor zeigt zu dem Pixel in der linken oberen Ecke eines Blocks).
    • 2. Die Extremwerte der X-Komponente und der Y-Komponente der Kosinus-Transformation 225 werden ermittelt.
    • 3. Die Größe des rechteckigen Bereichs, der die Kandidaten 225 begrenzt, wird unter Verwendung des folgenden Gleichungssatzes ermittelt: New X min = min X – Delta New X max = max X + X block dimension + Delta New Y min = min Y – Delta New Y max = max Y + Y block dimension + Delta 7 zeigt, wie die Terme der Gleichungen in Bezug zu dem benötigten Teil 701 stehen. Delta ist eine Zusatzgröße, die zu dem benötigten Teil 701 addiert wird, um den Bereich 503 unterzubringen, der in der Phase 2 des HME-Verfahrens verwendet wird. Delta wird gegebenenfalls entsprechend gestutzt (im Wert verringert), sodass der benötigte Teil 701 nicht außerhalb der Grenze des Suchraums 219 oder der Peripherie des Bezugsbilds 101 verläuft.
    • 4. Wenn der resultierende benötigte Teil 701 so klein ist, dass er in den internen Daten-RAM des DSP passt, wird eine Anforderung gesendet, um den rechteckigen Bereich in den Daten-RAM des DSP zu übertragen, und an dieser Stelle endet das Verfahren zur Berechnung des benötigten Teils 701. Andernfalls läuft es weiter, wie nachstehend angegeben.
  • Teil 2: Blockkandidaten-Cluster-Verfahren für zwei rechteckige Bereiche
  • Teil 2 ähnelt einem statistischen Cluster-Verfahren. Die herkömmliche Methode des Zusammenballens einer Stichprobe zu einem Cluster beruht auf ihrem Abstand zu den Schwerpunkten des Clusters; die Stichproben sind Punkte und die Cluster werden durch ihren Schwerpunkt, den Mittelwert der Bestandteile des Clusters (d. h., der Stichproben), dargestellt. Da unsere Stichproben Blöcke (zweidimensionale Bereiche) sind, die zu einem rechteckigen Bereich zusammengeballt werden müssen, ist dieser Mittelwertbildungseffekt unerwünscht, da er nicht unbedingt zwei rechteckige Bereiche hervorbringt, die sich zu dem Mindest-Gesamtbereich des benötigten Teils 701 summieren.
  • Ermitteln der beiden Blockkandidaten 225, B1 und B2, die am weitesten entfernt sind, und Festlegen dieser Blockkandidaten als erste Führer, um die übrigen Blockkandidaten 225 der Phase 1 zusammenzuballen. Zu diesem Zeitpunkt dienen B1 und B2 als zwei getrennte rechteckige Bereiche 801 und 803 des Suchraums, R1 und R2, die allmählich die übrigen Blockkandidaten 225 der Phase 1 integrieren. Da es bei der bevorzugten Ausführungsform fünf Blockkandidaten 225 der Phase 1 gibt, müssen drei Kandidaten einem der beiden rechteckigen Bereiche zugeordnet werden. Jeder Blockkandidat 225 ist durch die Koordinaten seiner linken oberen Ecke gekennzeichnet. Jeder der rechteckigen Bereiche 801 und 803 ist durch seine Fläche und seine vier Ecken gekennzeichnet, die sich aus den Extremwerten der X-Komponente und der Y-Komponente der Kandidaten zusammensetzen, die in diesen Bereich agglomeriert worden sind. Das heißt, die linke obere Ecke eines rechteckigen Bereichs liegt bei (Xmin, Ymin); die rechte untere Ecke liegt bei (Xmax, Ymax); die linke untere Ecke liegt bei (Xmin, Ymax); und die rechte obere Ecke liegt bei (Xmax, Ymin).
    • 5. Der Abstand von den einzelnen übrigen (d. h. nichtzugeordneten) Blockkandidaten 225 zu B1 und B2 wird ermittelt, da R1 und R2 anfangs ein Punkt sind, der jeweils B1 und B2 entspricht.
    • 6. Der Kandidat, der den kleinsten Abstand zu einem rechteckigen Bereich aufweist, wird zu diesem Bereich agglomeriert. Wenn jedoch mehrere Kandidaten den gleichen minimalen Abstand zu einem gegebenen rechteckigen Bereich aufweisen, wird jeder zu dem jeweiligen rechteckigen Bereich agglomeriert.
    • 7. Die Koordinaten der vier Ecken des/der modifizierten rechteckigen Bereichs/Bereiche werden durch Vergleichen der X- und Y-Komponente des/der aufgenommenen Kandidaten mit den früheren Extremwerten des rechteckigen Bereichs berechnet. Die Fläche des/der modifizierten Bereichs/Bereiche wird berechnet. Entweder R1 oder R2 oder beide können in Abhängigkeit von Schritt 7 modifiziert werden.
    • 8. Wenn einer der Kandidaten zu einem der beiden rechteckigen Bereiche nichtzugeordnet bleibt, wird zum Schritt 10 gegangen. Andernfalls wird das Verfahren beendet.
    • 9. Für jeden übrigen Kandidaten Bi wird: die resultierende Fläche berechnet, die entstehen würde, wenn Bi zu R1 addiert wird; die resultierende Fläche berechnet, die entstehen würde, wenn Bi zu R2 addiert wird.
    • 10. Derjenige Blockkandidat, dessen Agglomeration die kleinste Inkrementalfläche zu einem rechteckigen Bereich addiert, wird zu diesem Bereich agglomeriert. Wenn jedoch mehrere Blockkandidaten die gleiche minimale Inkrementalfläche haben, wird jeder zu dem jeweiligen rechteckigen Bereich agglomeriert.
    • 11. Die vier Ecken des/der modifizierten rechteckigen Bereichs/Bereiche werden durch Vergleichen der X- und Y-Komponente des/der aufgenommenen Kandidaten mit den früheren Extremwerten des rechteckigen Bereichs berechnet. Die neue Fläche des/der modifizierten Bereichs/Bereiche wird gespeichert. Entweder R1 oder R2 oder beide können in Abhängigkeit von Schritt 11 modifiziert werden.
    • 12. Wenn einer der Kandidaten zu einem der beiden rechteckigen Bereiche nichtzugeordnet bleibt, wird zum Schritt 10 gegangen.
    • 13. Durch Verwenden der Gleichungen im Schritt 3 werden die rechteckigen Bereiche des Suchraumbereichs, die durch R1 und R2 abgegrenzt werden, jeweils in jede Richtung vergrößert.
  • Teil 2 garantiert die Berechnung von zwei rechteckigen Bereichen des benötigten Suchraumbereichs, die zu der kleinsten zusammengeballten Fläche (d. h., der kleinsten Datenmenge, die in den Daten-RAM des DSP übertragen werden muss) führt. Bei einem alternativen Modus dieser Erfindung, der diese Garantie nicht bietet, wird der Abstand zwischen einem Kandidaten zu der nächsten Ecke in einer rechteckigen Fläche anstatt der Inkrementalfläche des rechteckigen Bereichs als Zusammenballungskriterium verwendet. Bei einem dritten alternativen Modus dieser Erfindung, der einfacher ist, aber eine geringere Wahrscheinlichkeit der Erzeugung der kleinsten zusammengeballten Fläche hat, werden die Schritte 7 bis 13 durch den folgenden einzigen Schritt ersetzt: Jeder übrige Kandidat wird dem nächstgelegenen der Blockkandidaten B1 oder B2 zugeordnet. Wenn mehrere rechteckige Bereiche des Suchraums nacheinander übertragen werden müssen, wird stets der Bereich zuerst übertragen, der die (0, 0)-Verschiebung enthält.
  • Obwohl es sehr ungewöhnlich ist, können einige Implementierungen des HME-Verfahrens (d. h. extrem große Suchräume) mehr als zwei Übertragungen vom externen Speicher zum internen Daten-RAM des DSP erfordern. In diesen Fällen müssen die Übertragungen nacheinander gesendet werden, um mehrere rechteckige Abschnitte des Suchraums hervorzubringen. Im ungünstigsten Fall, wenn die Gesamtheit der rechteckigen Bereiche nicht in den internen Daten-RAM des DSP passt, kann der Suchraum, der für die übrigen Kandidaten benötigt wird, in den internen Daten-RAM übertragen werden, während das Anpassungskriterium für Kandidaten in einer Teilmenge des Suchraums berechnet wird. Hierbei ist zu beachten, dass das gerade beschriebene Verfahren zur Berechnung des benötigten Teils 701 die Größe der Bewegungsvektoren der naheliegenden Blöcke, die zur Lokalisierung der Blockkandidaten verwendet werden, keineswegs beschränkt.
  • Aus dem Vorstehenden dürfte hervorgehen, dass die vorstehend beschriebenen Verfahren zur Berechnung der Fläche des benötigten Teils 701 des Suchraums 219 nicht auf die Verwendung mit dem internen DRAM von DSPs beschränkt sind, sondern in jeder Situation verwendet werden können, wo es zweckmäßig ist, Teile des Suchraums in den Speicher zu verschieben, der für den Prozessor besser zugänglich ist, der gerade die Vergleiche durchführt.
  • Schlussbemerkungen
  • Die vorstehende Detaillierte Beschreibung hat Fachleuten auf den Fachgebieten, die die Verfahren zur Bewegungserkennung betreffen, die in der Detaillierten Beschreibung beschrieben sind, den besten Modus der Implementierung ihrer Verfahren zur Kenntnis gebracht, der den Erfindern gegenwärtig bekannt ist. Wie Fachleuten auf den Fachgebieten, die die Verfahren betreffen, sofort klar werden dürfte, sind zahlreiche weitere Implementierungen der Verfahren möglich. Die genaue Implementierung hängt natürlich von dem verwendeten Codierschema und von der zur Codierung verwendeten Hardware ab. Die Art und Weise, in der die Schwellenwerte für das Verfahren bei einer gegebenen Implementierung festgelegt werden, hängt von dem Codierschema, der Hardware und der Art der Anwendung ab, für die die Codierung durchgeführt wird.
  • Weitere Varianten sind unter anderem: Die zeitliche Vorhersage eines Blocks muss nicht unbedingt von einem Block der gleiche Größe in dem/den Bezugsbildern) kommen. Somit können Teile eines Blocks (z. B. Quadranten) aus Teilblöcken mit entsprechenden Abmessungen in dem/den Bezugsbildern) zeitlich vorhergesagt werden. Außerdem braucht der Prädiktor für den aktuellen Block nicht unbedingt aus einem einzigen Bezugsbild zu kommen, sondern kann durch Wählen des besten Prädiktors aus Prädiktoren erzeugt werden, die aus mehreren Bezugsbildern ermittelt werden. Alternativ kann der Prädiktor durch Kombinieren der Prädiktoren aus den Bezugsbildern, beispielsweise durch Verwendung eines gewichteten Mittelwerts, erzeugt werden. Weiterhin kann die Codiermaschine Bezugsbilder verwenden, die entweder Originalbilder sind oder Bilder sind, die aus ihren Codierungen wiederhergestellt worden sind. Die Codiermaschine muss jedoch die wiederhergestellte Version der Bezugsbilder verwenden, um die entsprechenden digitalen Fehlersignale zu erzeugen, die normgerechte Decodiermaschinen bei der Dekomprimierung und Wiederherstellung von Bildern erzeugen. Außerdem brauchen die Bereiche, die verglichen werden, um den Prädiktor zu ermitteln, keine rechteckige Form zu haben, und die Informationen, die zum dynamischen Wählen naheliegender Blöcke und zum Gestalten des in der zweiten Phase der Suche benutzten Bereichs verwendet werden, können sich von Implementierung zu Implementierung ändern.
  • Da die Detaillierte Beschreibung nur eine Implementierung der Bewegungsschätzungsverfahren beschreibt und zahlreiche weitere Implementierungen, die die Grundsätze der Bewegungsschätzungsverfahren in sich vereinigen, möglich sind ist klar, dass die Detaillierte Beschreibung als in jeder Hinsicht erläuternd und nicht beschränkend angesehen werden muss und dass der Schutzumfang der hier beschriebenen Erfindung nicht aus der Detaillierten Beschreibung bestimmt werden darf, sondern vielmehr aus den Ansprüchen bestimmt werden muss, die mit der ganzen Breite, die von den Patentgesetzen zugelassen wird, ausgelegt werden.

Claims (34)

  1. Verfahren zur Festlegung der Größe eines Bereichs in einem Suchraum eines Bezugsbilds (101) einer Folge von digital dargestellten Bildern zum Suchen nach einem Prädiktorbereich für einen aktuellen Bereich (203) eines aktuellen Bilds der Folge, wobei das Verfahren folgende Schritte aufweist: Bestimmen einer Anzahl von CPU-Zyklen, die aktuell verfügbar sind, um den Prädiktorbereich zu suchen; und Festlegen der Größe des Bereichs entsprechend der Anzahl der aktuell verfügbaren CPU-Zyklen.
  2. Verfahren nach Anspruch 1, das weiterhin folgende Schritte aufweist: Lokalisieren mindestens eines weiteren Bereichskandidaten in dem Bezugsbild für den Prädiktorbereich und dynamisches Gestalten des Bereichs entsprechend einer Lage des mindestens einen weiteren Bereichskandidaten in Bezug zu dem aktuellen Bereich.
  3. Betriebsverfahren, das in einem eine CPU aufweisenden Videocodierer durchgeführt wird, das Verfahren zur Bestimmung, ob ein Bereichskandidat als Prädiktorbereich in Betracht gezogen werden soll, wobei der Prädiktorbereich beim Schätzen der Bewegung eines aktuellen Bereichs in einem aktuellen Bild einer Folge von digital dargestellten Bildern in Bezug zu einem Prädiktorbereich in einem Bezugsbild der Folge verwendet wird, wobei das Verfahren folgende Schritte aufweist: Festlegen von Bewegungsvektoren für eine Vielzahl von naheliegenden Bereichen (202), die nahe an dem aktuellen Bereich (203) liegen, wobei die Vielzahl naheliegender Bereiche Bereiche umfasst, die in dem aktuellen Bild (201) und in einem letzten codierten Bild (220) liegen; Lokalisieren der Bereichskandidaten (225) durch Verwenden der Bewegungsvektoren aus den naheliegenden Bereichen (202) für den Bereich (227) in dem Bezugsbild (101), der die gleiche räumliche Position in dem Bezugsbild hat, die der aktuelle Bereich (203) in dem aktuellen Bild (201) hat; Vergleichen von Pixel-Informationen für den Bereichskandidaten (225) mit Pixel-Informationen in dem aktuellen Bereich und Bestimmen, ob eine Übereinstimmung zwischen den Pixel-Informationen in dem Bereichskandidaten (225) und den Pixel-Informationen in dem aktuellen Bereich (203) einer ersten Schwelle (Schwelle 2) entspricht, und wenn ja: Festlegen der Größe eines nicht-rechteckigen Bereichs (505), der sich in der Mitte des Bereichskandidaten befindet, nach dem im Anspruch 1 definierten Größenfestlegungsverfahren und Vergleichen von Pixel-Informationen für Bereiche in dem Bereich, in dessen Mitte sich der Bereichskandidat befindet, mit Pixel-Informationen in dem aktuellen Bereich, um den Prädiktorbereich zu bestimmen.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass sich der naheliegende Bereich (221) in dem letzten codierten Bild (220) in der gleichen räumlichen Position im letzten codierten Bild befindet, in der sich der aktuelle Bereich (203) im aktuellen Bild (201) befindet.
  5. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der Bewegungsvektor für den naheliegenden Bereich (221) im letzten codierten Bild (220) aus einem Bewegungsvektor für den naheliegenden Bereich in dem letzten codierten Bild (220) und dem zeitlichen Zusammenhang zwischen dem Bezugsbild (101), dem aktuellen Bild (201) und dem letzten codierten Bild (220) ermittelt wird.
  6. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das Verfahren von Anspruch 1 durchgeführt wird, um zumindest einige einer Vielzahl von Bereichskandidaten (225) zu bestimmen, und weiterhin folgenden Schritt aufweist: Bestimmen eines Bereichs (701) in einem Suchraum (219), der alle Bereichskandidaten (225) enthält, aus der Vielzahl der Bereichskandidaten (225).
  7. Verfahren nach Anspruch 6, das weiterhin folgenden Schritt aufweist: Kopieren des Bereichs (701) in einen Prozessor-internen Speicher, wobei der Prozessor vor der Durchführung der Vergleiche die Vergleiche durchführt.
  8. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Schritt d es Bestimmens des Bereichs eine Vielzahl von Bereichen bestimmt.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass der Schritt des Bestimmens der Vielzahl von Bereichen die Bereiche so bestimmt, dass die Gesamtgröße der Bereiche zu einem Minimum tendiert.
  10. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass in den Schritten des Bestimmens, ob eine Übereinstimmung einer ersten Schwelle (Schwelle 2) entspricht, und wenn nicht, des Vergleichens von Bereichen in dem Bereich, in dessen Mitte sich der Bereichskandidat befindet, die Bereiche mit dem aktuellen Bereich in einer Reihenfolge des zunehmenden Abstands von dem Bereichskandidaten verglichen werden.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die Bereiche so lange verglichen werden, bis eine Übereinstimmung mit dem aktuellen Bereich, die einer zweiten vorgegebenen Schwelle (Schwelle 3) entspricht, gefunden wird.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die Übereinstimmung, die der zweiten Schwelle (Schwelle 3) entsprechen muss, stärker als die Übereinstimmung ist, die der ersten Schwelle (Schwelle 2) entsprechen muss.
  13. Verfahren nach Anspruch 3, das weiterhin folgenden Schritt aufweist: dynamisches Gestalten des Bereichs entsprechend einer Lage des mindestens einen anderen Bereichskandidaten in Bezug zu dem aktuellen Bereich.
  14. Verfahren nach Anspruch 11, das weiterhin folgende Schritte aufweist: Wählen des Bereichs in dem Bezugsbild, der die gleiche räumliche Position in dem Bezugsbild hat, die der aktuelle Bereich in dem aktuellen Bild hat, als einen ersten Bereichskandidaten einer Vielzahl von Bereichen in dem Bezugsbild und Bestimmen, ob eine Übereinstimmung zwischen den Pixel-Informationen in dem ersten Bereichskandidaten und dem aktuellen Bereich einer dritten Schwelle (Schwelle 1) entspricht, und wenn ja, ist der erste Bereichskandidat als der Prädiktorbereich anzusehen, andernfalls Vergleichen von Pixel-Informationen für andere Bereiche der Vielzahl von Bereichen, um den Prädiktorbereich zu bestimmen.
  15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die dritte Schwelle (Schwelle 1) größer als die erste Schwelle (Schwelle 2) ist, die größer als die zweite Schwelle (Schwelle 3) ist.
  16. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jeder der Bereiche ein Block ist.
  17. Verfahren zum Verfeinern einer Bewegungsschätzung eines aktuellen Bereichs in einem aktuellen Bild einer Folge von digital dargestellten Bildern in Bezug zu einem Prädiktorbereich in einem Bezugsbild der Folge, wobei das Verfahren folgende Schritte aufweist: Definieren eines nicht-rechteckigen Bereichs (505) in dem Suchraum (201) des Bezugsbilds, der einen Bereichskandidaten (225) in dem Bezugsbild aufweist, der der aktuelle beste Kandidat ist, um der Prädiktorbereich zu sein; dynamisches Festlegen der Größe des nicht-rechteckigen Bereichs (505) unter Verwendung des in Anspruch 1 definierten Größenfestlegungsverfahrens und Vergleichen von Bereichen in dem nicht-rechteckigen Bereich (505) mit dem aktuellen Bereich so lange, bis der Prädiktorbereich gefunden ist.
  18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass die Bereiche in dem nichtrechteckigen Bereich (505) mittels einer Nachschlagetabelle definiert werden.
  19. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass nicht-rechteckige Bereich (505) eine Diamantenform hat.
  20. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass in dem Schritt des Vergleichens von Bereichen in dem nicht-rechteckigen Bereich die Bereiche mit dem aktuellen Bereich in einer Reihenfolge des zunehmenden Abstands von dem aktuellen besten Kandidaten verglichen werden.
  21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, dass in dem Schritt des Vergleichens von Bereichen in dem nicht-rechteckigen Bereich die Reihenfolge des zunehmenden Abstands eine Spirale ist, die von dem aktuellen besten Kandidaten aus nach außen gerichtet ist.
  22. Verfahren nach Anspruch 17, das weiterhin folgenden Schritt aufweist: dynamisches Gestalten des nicht-rechteckigen Bereichs (505) entsprechend einer Lage des mindestens einen weiteren Bereichskandidaten (225) in Bezug zu dem aktuellen Bereich.
  23. Verfahren zum Definieren eines Bereichs in dem Suchraum in einem Bezugsbild einer Folge von digital dargestellten Bildern, in dem eine Suche nach einem Prädiktorbereich für einen aktuellen Bereich eines aktuellen Bilds der Folge durchgeführt wird, wobei das Verfahren folgende Schritte aufweist: für jeden Bereich (202) in einer Gruppe von Bereichen in dem aktuellen Bereich (201), die nahe an dem aktuellen Bereich (203) liegen und für die bereits ein Bewegungsvektor berechnet worden ist, Verwenden des Bewegungsvektors für den Bereich, um einen Bereichskandidaten (225) in dem Bezugsbild (101) zu lokalisieren; dynamisches Festlegen der Größe des Bereichs (505) unter Verwendung des in Anspruch 1 definierten Größenfestlegungsverfahrens und Verwenden der Bereichskandidaten (225) zum Definieren des Bereichs.
  24. Verfahren nach Anspruch 23, dadurch gekennzeichnet, dass der Bewegungsvektor eine Größe haben kann.
  25. Verfahren nach Anspruch 23, das weiterhin folgenden Schritt aufweist: Ermitteln des Bereichs aus der Vielzahl von Bereichskandidaten in der Weise, dass der Bereich alle Bereichskandidaten enthält.
  26. Verfahren nach Anspruch 25, dadurch gekennzeichnet, dass in dem Schritt des Verwendens eines Bewegungsvektors für den Bereich, um einen Bereichskandidaten (225) zu lokalisieren, der Bereichskandidat durch Anwenden des Bewegungsvektors für den naheliegenden Bereich (202) auf einen Bereich in dem Bezugsbild (101) lokalisiert wird, der die gleiche räumliche Lage in dem Bezugsbild (101) hat, die der aktuelle Bereich (202) in dem aktuellen Bild (201) hat.
  27. Verfahren nach Anspruch 23, das weiterhin folgenden Schritt aufweist: Kopieren des Bereichs in einen Prozessor-internen Speicher, wobei der Prozessor vor der Durchführung der Vergleiche die Vergleiche durchführt.
  28. Verfahren nach Anspruch 27, dadurch gekennzeichnet, dass der Schritt des Bestimmens des Bereichs eine Vielzahl von Bereichen bestimmt.
  29. Verfahren nach Anspruch 28, dadurch gekennzeichnet, dass der Schritt des Bestimmens der Vielzahl von Bereichen die Bereiche so bestimmt, dass die Gesamtgröße der Bereiche zu einem Minimum tendiert.
  30. Verfahren nach Anspruch 28, dadurch gekennzeichnet, dass einer der Bereiche einen Bereich in dem Bezugsbild aufweist, der die gleiche räumliche Position in dem Bezugsbild hat, die der aktuelle Bereich in dem aktuellen Bild hat; und beginnend mit dem einen Bereich, der den Bereich in dem Bezugsbild aufweist, der die gleiche räumliche Position in dem Bezugsbild hat, die der aktuelle Bereich in dem aktuellen Bild hat, die Bereiche einzeln in den Prozessor-internen Speicher geladen werden.
  31. Verfahren zur Verwendung von Bewegungsvektoren von Bereichen, die nahe an einem aktuellen Bereich (203) in einem aktuellen Bild (201) einer Folge von digitalen Bildern liegen, um einen Prädiktorbereich für den aktuellen Bereich in einem Bezugsbild (101) der Folge zu lokalisieren, wobei das Verfahren die Schritte aufweist, die für einen gegebenen naheliegenden Bereich der Lokalisierung eines Bereichskandidaten (225) in dem Bezugsbild durch Anwenden des Bewegungsvektors des gegebenen naheliegenden Bereichs auf einen Bereich in dem Bezugsbild, der die gleiche räumliche Position in dem Bezugsbild hat, die der aktuelle Bereich in dem aktuellen Bild hat, und durch Vergleichen des Bereichskandidaten mit dem aktuellen Bereich durchgeführt werden, mit den Schritten: Bestimmen einer Anzahl von CPU-Zyklen, die in einem CPU-Zyklusbudget zur Durchführung der Schritte des Verfahrens aktuell verfügbar sind; und Bestimmen einer Anzahl von naheliegenden Bereichen (202), für die die Schritte des Verfahrens durchgeführt werden, aufgrund der Anzahl von aktuell verfügbaren CPU-Zyklen.
  32. Verfahren nach Anspruch 31, dadurch gekennzeichnet, dass alle naheliegenden Bereiche, deren Anzahl auf der Anzahl der aktuell verfügbaren CPU-Zyklen beruht, zuvor berechnete Bewegungsvektoren haben.
  33. Verfahren nach Anspruch 32, dadurch gekennzeichnet, dass der Schritt des Festlegens einer Anzahl von naheliegenden Bereichen zusätzliche naheliegende Bereiche in der Reihenfolge des zunehmenden Abstands von dem aktuellen Bereich hinzufügt.
  34. Verfahren nach Anspruch 32, dadurch gekennzeichnet, dass der Schritt des Bestimmens einer Anzahl von naheliegenden Bereichen zusätzliche naheliegende Bereich entsprechend den Bewegungsvektoren für Blöcke in dem aktuellen Bild wählt, deren Bewegungsvektoren bereits bestimmt worden sind.
DE69920429T 1998-04-16 1999-04-16 Bewegungsschätzungssystem und -verfahren Expired - Lifetime DE69920429T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US61625 1979-07-31
US09/061,625 US6195389B1 (en) 1998-04-16 1998-04-16 Motion estimation system and methods
PCT/US1999/008341 WO1999053438A2 (en) 1998-04-16 1999-04-16 Motion estimation system and method

Publications (2)

Publication Number Publication Date
DE69920429D1 DE69920429D1 (de) 2004-10-28
DE69920429T2 true DE69920429T2 (de) 2005-09-29

Family

ID=22037021

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69920429T Expired - Lifetime DE69920429T2 (de) 1998-04-16 1999-04-16 Bewegungsschätzungssystem und -verfahren
DE1072017T Pending DE1072017T1 (de) 1998-04-16 1999-04-16 Bewegungsschätzungssystem und -verfahren

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE1072017T Pending DE1072017T1 (de) 1998-04-16 1999-04-16 Bewegungsschätzungssystem und -verfahren

Country Status (6)

Country Link
US (1) US6195389B1 (de)
EP (1) EP1072017B1 (de)
JP (2) JP4358990B2 (de)
BR (1) BR9909574A (de)
DE (2) DE69920429T2 (de)
WO (1) WO1999053438A2 (de)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE59901416D1 (de) * 1998-08-18 2002-06-13 Siemens Ag Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes mit anwendung eines gesamtbewegungsvektors
ATE230140T1 (de) * 1998-09-07 2003-01-15 Thomson Multimedia Sa Bewegungsschätzungsverfahren zur reduzierung der übertragungskosten von bewegungsvektoren
US6411652B1 (en) * 1998-10-23 2002-06-25 International Business Machines Corp. Motion estimation
US6418166B1 (en) * 1998-11-30 2002-07-09 Microsoft Corporation Motion estimation and block matching pattern
WO2001010135A1 (en) * 1999-07-29 2001-02-08 Mitsubishi Denki Kabushiki Kaisha Moving vector detecting method
US6473460B1 (en) * 2000-03-31 2002-10-29 Matsushita Electric Industrial Co., Ltd. Method and apparatus for calculating motion vectors
US6876703B2 (en) * 2000-05-11 2005-04-05 Ub Video Inc. Method and apparatus for video coding
WO2001088852A2 (en) * 2000-05-18 2001-11-22 Koninklijke Philips Electronics N.V. Motion estimator for reduced halos in motion compensared picture rate up-conversion
US20020136302A1 (en) * 2001-03-21 2002-09-26 Naiqian Lu Cascade window searching method and apparatus
US6813315B1 (en) 2001-04-24 2004-11-02 Vweb Corporation Motion estimation using multiple search windows
US6934332B1 (en) 2001-04-24 2005-08-23 Vweb Corporation Motion estimation using predetermined pixel patterns and subpatterns
US6891890B1 (en) * 2001-04-24 2005-05-10 Vweb Corporation Multi-phase motion estimation system and method
JP2002325258A (ja) * 2001-04-25 2002-11-08 Nec Corp 画像符号化装置及びそれに用いる画像符号化方法
US7801215B2 (en) 2001-07-24 2010-09-21 Sasken Communication Technologies Limited Motion estimation technique for digital video encoding applications
DE60141961D1 (de) * 2001-09-10 2010-06-10 Texas Instruments Inc Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung
US7038696B2 (en) * 2002-01-04 2006-05-02 Hewlett-Packard Development Company Method and apparatus for implementing color graphics on a remote computer
US6774904B2 (en) * 2002-01-04 2004-08-10 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access having improved latency
KR100492127B1 (ko) * 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
US7321626B2 (en) * 2002-03-08 2008-01-22 Sharp Laboratories Of America, Inc. System and method for predictive motion estimation using a global motion predictor
US7602848B2 (en) * 2002-03-26 2009-10-13 General Instrument Corporation Methods and apparatus for efficient global motion compensation encoding and associated decoding
US20030198295A1 (en) * 2002-04-12 2003-10-23 Liang-Gee Chen Global elimination algorithm for motion estimation and the hardware architecture thereof
DE10225434B4 (de) * 2002-06-07 2004-12-30 Siemens Ag Verfahren und Vorrichtung zur Videocodierung
US7817717B2 (en) * 2002-06-18 2010-10-19 Qualcomm Incorporated Motion estimation techniques for video encoding
US7224731B2 (en) * 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US7515634B2 (en) * 2002-06-28 2009-04-07 Qualcomm Incorporated Computationally constrained video encoding
CN101039427B (zh) * 2002-07-15 2010-06-16 株式会社日立制作所 动态图像的解码方法
KR100543443B1 (ko) * 2003-01-14 2006-01-23 삼성전자주식회사 동영상 압축을 위한 내장형 메모리 장치
US7792194B2 (en) * 2003-04-10 2010-09-07 Lefan Zhong MPEG artifacts post-processed filtering architecture
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US7145950B2 (en) * 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
US7440500B2 (en) * 2003-07-15 2008-10-21 Lsi Logic Corporation Supporting motion vectors outside picture boundaries in motion estimation process
KR100987764B1 (ko) * 2003-09-04 2010-10-13 경희대학교 산학협력단 영상 데이터의 예측 부호화를 위한 참조 데이터 유닛 결정방법 및 그 장치
KR20050026661A (ko) * 2003-09-09 2005-03-15 엘지전자 주식회사 디지탈 동영상 해상도 감축을 위한 움직임 벡터 설정방법
JP4515886B2 (ja) * 2003-10-28 2010-08-04 パナソニック株式会社 面内予測符号化方法
KR20050045746A (ko) * 2003-11-12 2005-05-17 삼성전자주식회사 계층 구조의 가변 블록 크기를 이용한 움직임 추정 방법및 장치
KR100999091B1 (ko) * 2003-11-17 2010-12-07 삼성전자주식회사 임의 크기의 가변 블록을 이용한 영상 압축 방법 및 장치
DE10356090B3 (de) * 2003-12-01 2005-04-21 Siemens Ag Verfahren zur rechnergestützten Ermittlung von Bildbereichen in einem digitalisierten Bild
US8514944B2 (en) * 2004-06-18 2013-08-20 Broadcom Corporation Reducing motion compensation memory bandwidth through memory utilization
US7817157B2 (en) 2004-08-23 2010-10-19 Hewlett-Packard Company, L.P. Method and apparatus for capturing slices of video data
JP4669517B2 (ja) * 2004-09-29 2011-04-13 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 動き推定の実現方法
JP4032049B2 (ja) * 2004-10-18 2008-01-16 株式会社東芝 動きベクトル検出方法及びその装置
US20060233258A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Scalable motion estimation
JP2007088922A (ja) * 2005-09-22 2007-04-05 Sanyo Electric Co Ltd 符号化装置と符号化方法
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
JP4757080B2 (ja) * 2006-04-03 2011-08-24 パナソニック株式会社 動き検出装置、動き検出方法、動き検出集積回路および画像符号化装置
US8155195B2 (en) * 2006-04-07 2012-04-10 Microsoft Corporation Switching distortion metrics during motion estimation
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
JP4158121B2 (ja) * 2006-05-18 2008-10-01 コニカミノルタビジネステクノロジーズ株式会社 メモリ管理方法
US20070268964A1 (en) * 2006-05-22 2007-11-22 Microsoft Corporation Unit co-location-based motion estimation
US8660380B2 (en) * 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
CN101536530B (zh) 2006-11-07 2011-06-08 三星电子株式会社 基于运动估计进行视频编码和解码的方法和设备
KR101456305B1 (ko) * 2007-02-20 2014-11-03 소니 주식회사 화상 표시 장치, 영상 신호 처리 장치 및 영상 신호 처리 방법
US8756482B2 (en) * 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US20080291209A1 (en) * 2007-05-25 2008-11-27 Nvidia Corporation Encoding Multi-media Signals
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) * 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
KR20090095012A (ko) * 2008-03-04 2009-09-09 삼성전자주식회사 연속적인 움직임 추정을 이용한 영상 부호화, 복호화 방법및 장치
EP2104356A1 (de) 2008-03-18 2009-09-23 Deutsche Thomson OHG Verfahren und Vorrichtung zur Erzeugung eines Bilddatenstroms, Verfahren und Vorrichtung zur Rekonstruktion eines aktuellen Bildes aus einem Bilddatenstrom, Bilddatenstrom und Speichermedium, das den Bilddatenstrom trägt
US8982952B2 (en) * 2008-06-02 2015-03-17 Broadcom Corporation Method and system for using motion vector confidence to determine a fine motion estimation patch priority list for a scalable coder
US20100074336A1 (en) * 2008-09-25 2010-03-25 Mina Goor Fractional motion estimation engine
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
KR20120016991A (ko) * 2010-08-17 2012-02-27 오수미 인터 프리딕션 방법
WO2013032074A1 (ko) 2011-08-29 2013-03-07 주식회사 아이벡스피티홀딩스 머지 모드 움직임 정보 복호화 장치
US9460495B2 (en) * 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
US9621921B2 (en) 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
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
US10504235B2 (en) * 2016-12-27 2019-12-10 Inuitive Ltd. Method for generating three dimensional images
CN109996081B (zh) * 2017-12-31 2023-09-12 华为技术有限公司 图像预测方法、装置以及编解码器
US10715812B2 (en) * 2018-07-13 2020-07-14 Tencent America LLC Method and apparatus for video coding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01500236A (ja) 1986-03-19 1989-01-26 ブリティッシュ・ブロードキャスティング・コーポレーション 帯域巾圧縮ビデオ信号の受信再生装置
JPH03256485A (ja) 1990-03-06 1991-11-15 Victor Co Of Japan Ltd 動きベクトル検出回路
DE69217150T2 (de) * 1991-09-30 1997-07-17 Philips Electronics Nv Bewegungsvektorschätzung, Bewegungsbildkodierung- und -speicherung
GB2292040B (en) 1992-03-24 1996-04-10 Sony Uk Ltd Motion analysis of moving images
US5297030A (en) 1992-04-08 1994-03-22 Ncr Corporation Method using bill and coin images on a touch screen for processing payment for merchandise items
US5889236A (en) 1992-06-08 1999-03-30 Synaptics Incorporated Pressure sensitive scrollbar feature
GB9215102D0 (en) 1992-07-16 1992-08-26 Philips Electronics Uk Ltd Tracking moving objects
FI92896C (fi) 1992-12-31 1995-01-10 Salon Televisiotehdas Oy Menetelmä liikkeen estimoimiseksi videosignaalista sekä liike-estimaattori
EP0609022A3 (de) 1993-01-25 1995-08-23 Matsushita Electric Ind Co Ltd Bildkodierungsgerät.
US5537155A (en) 1994-04-29 1996-07-16 Motorola, Inc. Method for estimating motion in a video sequence
US5633657A (en) 1994-10-11 1997-05-27 Falcon; Fernando D. Mouse driver arrangement for providing advanced scrolling capabilities to a conventional mouse
KR0171143B1 (ko) 1995-03-20 1999-03-20 배순훈 육각그리드에서의 삼각구조 형성 장치
US5699129A (en) 1995-10-17 1997-12-16 Zapex Technologies, Inc. Method and apparatus for motion vector determination range expansion
DE19541457C1 (de) 1995-11-07 1997-07-03 Siemens Ag Verfahren zur Codierung eines Videodatenstroms einer aus Bildblöcken bestehenden Videosequenz
KR0181069B1 (ko) * 1995-11-08 1999-05-01 배순훈 움직임 추정장치
US5786819A (en) 1996-06-11 1998-07-28 Xerox Corporation One button searching of long lists
JP3019787B2 (ja) 1996-09-20 2000-03-13 日本電気株式会社 動きベクトル検出装置
GB2317525B (en) 1996-09-20 2000-11-08 Nokia Mobile Phones Ltd A video coding system

Also Published As

Publication number Publication date
DE1072017T1 (de) 2001-07-05
JP2002511687A (ja) 2002-04-16
DE69920429D1 (de) 2004-10-28
EP1072017B1 (de) 2004-09-22
WO1999053438A3 (en) 2000-01-13
WO1999053438A2 (en) 1999-10-21
BR9909574A (pt) 2001-11-13
JP4410206B2 (ja) 2010-02-03
EP1072017A1 (de) 2001-01-31
JP2006217644A (ja) 2006-08-17
JP4358990B2 (ja) 2009-11-04
US6195389B1 (en) 2001-02-27

Similar Documents

Publication Publication Date Title
DE69920429T2 (de) Bewegungsschätzungssystem und -verfahren
DE69735028T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE69836473T2 (de) Bewegungsschätzung und bewegungskompensierte interpolation
DE69929430T2 (de) Verfahren und vorrichtung zur codierung von video-information
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
DE69937462T2 (de) Effiziente macroblockheaderkodierung zur videokompression
US6751350B2 (en) Mosaic generation and sprite-based coding with automatic foreground and background separation
DE69928010T2 (de) Erhöhte videowiedergabebildfrequenz in videoanwendungen
DE69629137T2 (de) Bildkodierungsgerät und Bilddekodierungsgerät
DE69908562T2 (de) Bewegungsvektorenextrapolation zur transkodierung von videosequenzen
DE102013013636B9 (de) Pixel Pufferung
DE69830802T2 (de) Zuweisung von rechenleistung in einem informationsstrom-dekoder
DE102019112578A1 (de) Bereichsbasierte Bewegungsschätzung und -modellierung zur genauen bereichsbasierten Bewegungskompensation zur effizienten Videoverarbeitung oder -codierung
US20120224786A1 (en) Hierarchically layered adaptive median motion vector generation and smoothing
US20100027686A1 (en) Image compression and decompression
DE19704439C2 (de) Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien
CA2218865A1 (en) Hybrid hierarchical/full-search mpeg encoder motion estimation
EP1371229B1 (de) Verfahren zur komprimierung und dekomprimierung von videodaten
JPH09187035A (ja) ディジタルビデオデータストリームの前処理装置
KR20040069210A (ko) 코딩 정보 및 로컬 공간 특징을 이용한 디지털 비디오신호들의 후처리에서의 선명도 향상
EP0776574B1 (de) Verfahren zur decodierung komprimierter video-daten mit reduziertem speicherbedarf
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
US6574370B1 (en) Image encoding system
DE60207756T2 (de) Bilddatenzugriff
DE19524688C1 (de) Verfahren zur Dekodierung und Kodierung eines komprimierten Videodatenstroms mit reduziertem Speicherbedarf

Legal Events

Date Code Title Description
8364 No opposition during term of opposition