[go: up one dir, main page]

DE4333368C2 - Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, sowie Anordnung hierzu - Google Patents

Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, sowie Anordnung hierzu

Info

Publication number
DE4333368C2
DE4333368C2 DE4333368A DE4333368A DE4333368C2 DE 4333368 C2 DE4333368 C2 DE 4333368C2 DE 4333368 A DE4333368 A DE 4333368A DE 4333368 A DE4333368 A DE 4333368A DE 4333368 C2 DE4333368 C2 DE 4333368C2
Authority
DE
Germany
Prior art keywords
comparison
memory
search
image data
image
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 - Fee Related
Application number
DE4333368A
Other languages
English (en)
Other versions
DE4333368A1 (de
Inventor
Klaus Dr Ing Hildenbrand
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE4333368A priority Critical patent/DE4333368C2/de
Publication of DE4333368A1 publication Critical patent/DE4333368A1/de
Application granted granted Critical
Publication of DE4333368C2 publication Critical patent/DE4333368C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

Die Erfindung geht aus von einem Verfahren zur Aufbereitung von Verschiebungsinformationen, insbesondere für die Übertragung komprimierter Bilddaten.
Aus der DE 37 27 530 A1 ist ein Verfahren zur Bestimmung von Bewegungsvektoren (Verschiebungsinformationen) für die Übertragung komprimierter Bilddaten bekannt. Dort erfolgt eine blockweise Zerlegung von Videobildern. Ein dem Codierer zugeführter Eingangsblock wird mit gleich großen Bildausschnitten des vorangegangenen Bildes verglichen und dem Eingangsblock derjenige Vektor als Bewegungsvektor zugeordnet, der die Verschiebung von der Position des Eingangsblocks innerhalb des Bildes zu demjenigen Bildausschnitt angibt, der die größte Ähnlichkeit mit dem Eingangsblock hat. Zur Feststellung dieser Ähnlichkeit gibt es zahlreiche Kriterien, z. B. den quadratischen Quantisierungsfehler (Bosch Technische Berichte 1992, Heft 55, Seiten 32-39).
In der DE 35 46 337 A1 ist ein Verfahren und eine Vorrichtung zur Aufbereitung binärcodierter Bilddaten beschrieben. Dort wird ein Referenz-Bildbereich (Fenster) über einen Suchbereich geführt, und für jede Position innerhalb des Suchbereiches werden die Bilddaten miteinander verglichen, um Vergleichsergebnisse zu erhalten, die dann zur Verschiebungsinformation weiterverarbeitet wird. Zur Bereitstellung der Bilddaten werden mehrere zum Teil parallel arbeitende RAM benutzt, deren Speicherinhalte miteinander verknüpft und verglichen werden. Ähnliche Verfahren bzw. Vorrichtungen sind aus EP 395 293 A1, EP 479 511 A2, EP 276 434 A1 und WO 89/03152 A1 bekannt.
Beste Ergebnisse liefern die Block-Matching-Verfahren dann, wenn zur Bestimmung der Verschiebungsinformation sogenannte "Full-Search-Verfahren" (DE 38 37 590 A1) angewendet werden, die jedoch einen hohen Verarbeitungsaufwand erfordern.
Aus der US 5 173 771 ist ein Verfahren zur Bilddatenkomprimierung für Übertragungszwecke bekannt. In einem ersten Speicher werden aktuelle Bilddaten für einen Referenz-Bildbereich an einer Suchposition innerhalb eines Suchbereiches bereitgestellt. Bilddaten für den Suchbereich werden in einem zweiten Speicher bereitgestellt. Über parallel arbeitende Vergleichseinheiten erfolgt für eine Gruppe von Suchposition gleichzeitig eine Vergleichsauswertung in einer Ausbreitungsrichtung eines Bildblockes. Suchpositionen in der anderen Ausbreitungsrichtung des Blockes werden zeitlich danach bearbeitet. Zur Aktualisierung der Speicher werden jeweils komplette Frames geladen. Vorgenannte Schritte werden für weitere Gruppen von Suchpositionen wiederholt bis ein komplettes Bild verarbeitet ist.
Aus der DE 38 34 477 A1 ist es ebenfalls bekannt, zur Bewegungsschätzung aktuelle Bildblöcke und Suchbereiche zwischenzuspeichern um Vergleiche durchzuführen, wobei auch dort Positionen in einer Ausbreitungsrichtung eines Bildblockes gleichzeitig und in der anderen Ausbreitungsrichtung zeitlich danach abgearbeitet werden. Die Vergleichsergebnisse werden dort aufgrund von FD (Frame- Difference) -Operationen ermittelt, wobei minimale FD-Werte eines Verarbeitungsschrittes als Referenzwerte für die nächsten Verarbeitungsschritte herangezogen werden. Die Speicher stehen mit den Vergleichseinrichtungen derart in Wirkverbindung, daß jede der Vergleichseinrichtungen Bilddaten zur Verfügung gestellt bekommen, die sich in ihrer Gesamtheit um mindestens einen Bildpunkt von den Bilddaten, die den anderen Vergleichseinrichtungen zugeführt werden, unterschieden. Außerdem sind Addierwerte zur Aufaddition der Vergleichergebnisse vorgesehen sowie ein Komparator zur Ermittlung der kleinsten Bilddifferenz mit zugehörigem Verschiebungsvektor. Aus der EP 05 27 446 A2 ist ein ähnliches Vergleichsverfahren für Bildblockdaten bekannt.
Aufgabe der vorliegenden Erfindung ist es, ein Verfahren zur Aufbereitung von Verschiebungsinformationen anzugeben, das mit vergleichsweise geringem Schaltungsaufwand realisiert werden kann und vorgegebenen Geschwindigkeitsanforderungen genügt.
Diese Aufgabe wird durch die Schritte des Patentanspruches 1 gelöst. Der Patentanspruch 7 betrifft eine Anordnung zur Aufbereitung von Verschiebungsinformationen. Die weiteren Ansprüche zeigen Ausgestaltungen des Verfahrens bzw. der Anordnung auf.
Das Verfahren bzw. die Anordnung nach der Erfindung ermöglicht bei relativ geringem Hardware-Aufwand eine zuverlässige Ermittlung der Verschiebungsinformation für bewegte Bildbereiche. Durch die Auswertung mehrerer Suchpositionen in einem Zeitschritt bei gleichzeitiger Aktualisierung der für diese Auswertung nicht benötigten Speicherplätze erfüllt ein nach dem Verfahren der Erfindung konzipierter Videocodec übliche Geschwindigkeitsanforderungen für die Bildverarbeitung. Aufgrund der Zuverlässigkeit und der Erfüllung der Geschwindigkeitsanforderungen ist ein Videocodec nach der Erfindung für den Einsatz in Raumfahrtprojekten, z. B. HERMES, COLUMBUS, geeignet, wo es auf die sichere Erkennung von sich zum Teil schnell ändernden Bildinhalten ankommt.
Anhand der Zeichnungen wird die Erfindung und die der Erfindung zugrunde liegenden Voraussetzungen näher erläutert. Es zeigen
Fig. 1 das Prinzip eines Hybrid-Bildcoders in Funktionsblöcken,
Fig. 2 das Prinzip der Bewegungsschätzung,
Fig. 3a eine modifizierte Bewegungsschätzung mit Unterabtastung,
Fig. 3b eine weitere modifizierte Bewegungsschätzung mit Unterabtastung,
Fig. 4 das Prinzip der hierarchischen Bewegungsschätzung,
Fig. 5 ein Blockschaltbild eines Video-Coders,
Fig. 6 ein Blockschaltbild für die Bewegungsschätzung,
Fig. 7 das Blockmatching für die erste Hälfte von 4 Vektoren,
Fig. 8 das Blockmatching für die zweite Hälfte von 4 Vektoren,
Fig. 9 das Blockmatching für 4 weitere Vektoren,
Fig. 10 die Abarbeitung von sich überlappenden Suchbereichen.
In Fig. 1 ist das Prinzip eines Hybrid-Bildcoders in Funktionsblöcken dargestellt. Er besteht aus einem Prädiktions-Bildspeicher P zur Zwischenspeicherung der Rekonstruktion des vorherigen Bildes, einer Blocktransformationseinheit T, einem Quantisierer Q, einer Codiereinheit C zur statistischen Codierung und einer inversen Blocktransformationseinheit T-1. Diese Einheiten sind Bestandteil einer üblichen DPCM-Schleife. Das Ziel einer solchen Anordnung ist es, jene Teile eines Bildes zu extrahieren, die gegenüber dem zeitlich davorliegenden Bild eine Änderung erfahren haben. Die Differenzen sind umso kleiner je besser die Prädiktion ist. In einfachen Systemen besteht der Prädiktor aus einem "Frame-Memory" (Speicher für ein Vollbild), da Pixels (Bildpunkte) benachbarter Frames sehr stark korreliert sind. Ein Prädiktionswert aus dem Bildspeicher P wird von einem aktuellen Bildwert (input) mittels eines Subtrahierers Pe subtrahiert. Die Differenzen werden in den Frequenzbereich transformiert, beispielsweise mittels DCT-Transformation (CCITT Recommendation, H. 261, Joint Photographic Experts Group ISO/IEC JTC1/SC2/WG8 / CCITT SG VIII). Die DCT-Koeffizienten werden quantisiert und codiert (Stufe C) unter Berücksichtigung ihrer statistischen Eigenschaften (Entropiecodierung). Der Prädiktionsfehler und der resultierende Codiergewinn kann durch Verwendung einer bewegungskompensierten Prädiktion MCP, beispielsweise gemäß DE 37 04 777 C1, erheblich gesteigert werden. Der Bewegungsschätzer liefert den minimalen Prädiktionsfehler. Da ein Bewegungsvektor (motion vector) nicht für jeden Bildpunkt zur Erreichung eines Codiergewinnes übertragen werden kann, sollte ein solcher Bewegungsvektor für einen größeren Bildbereich oder Block Gültigkeit haben.
Zur Gewinnung des minimalen Prädiktionsfehlers mit guter Codiereffizienz wird das Block-Matching-Verfahren verwendet. Dabei wird ein Bild in sogenannte Macroblocks MB der Größe 16×16 Bildelemente (pel) gemäß vorgenannter Empfehlung H. 261 unterteilt. Die Bewegungsschätzung wird auf diese "Nacroblocks" angewendet. In der CCITT Empfehlung H. 261 sind nur ganzzahlige Werte für die Vektorkomponenten definiert. Deshalb muß der Bewegungsschätzer keine Vektoren mit Subpegelgenauigkeit liefern.
Bei dem Blockmatching-Verfahren wird die beste Korrelation eines Nacroblocks des Frame k in einem Suchbereich (search area) eines zeitlich davorliegenden Frame k-1 gesucht (Fig. 2). Die Größe dieses Suchbereichs hängt vom gewünschten Verschiebungsbereich ab. In der Empfehlung H. 261 wird ein maximaler Verschiebungsbereich von ±15 pel in horizontaler und vertikaler Richtung vereinbart. Der Verschiebungsvektorbereich kann auf ±7 pel reduziert werden, ohne wahrnehmbare Verschlechterung der Bildqualität bei Übertragungsraten um 2 Mbit/s mit Bildwiederholungsraten von 25 Hz oder höher.
Die DFD-Werte (displaced frame differences) an einigen oder an allen möglichen Positionen des aktuellen Blocks des Frame k innerhalb des korrespondierenden Suchbereichs des Frame k-1 werden berechnet (Fig. 2), um die beste Korrelation zu erhalten. Diese Berechnung führt zu einem Satz von Frame- Differenzwerten, die zu einem Satz von Bewegungsvektoren gehören. Alle DFD-Werte des Satzes werden mit allen anderen verglichen, um das Minimum zu finden, welches den Bewegungsvektor repräsentiert.
Die Berechnung der DFD-Werte für einen Bewegungsvektor D (dx, dy) ergibt sich aus folgender Beziehung:
Die DFD-Berechnung ergibt sich demnach durch die Summation der absoluten Differenzen in der h-ten Potenz aller Bildpunkte ¹k des aktuellen Blocks und seinen korrespondierenden Bildpunkten Ik-1 im Block des zeitlich davorliegenden Frame. Der Wert von h kann 1 sein (mittlere absolute Differenz, MAD) oder 2 (mittlerer quadratischer Fehler, MSE). Im allgemeinen wird h = 1 gewählt, um den Verarbeitungsaufwand klein zu halten. Mit einer Blockgröße von 16×16 pels müssen 256 Differenzen, 256 Absolutwerte und 255 Summenwerte berechnet werden. Insgesamt müssen 767 arithmetische Operationen mit ganzzahligen Werten zur Ermittlung eines DFD-Wertes ausgeführt werden.
Mit dem "Full-Search" Verfahren werden alle möglichen Verschiebungsvektoren D innerhalb eines Suchbereiches betrachtet. Der Vektor mit der kleinsten DFD wird ausgewählt. In den meisten Fällen, insbesondere wenn ein Einzelobjekt oder ein Teil eines Objektes mit hohem Kontrast vor einem Hintergrund mit geringerem Kontrast gefunden wird, beschreibt der resultierende Vektor die wahre Bewegung des Objekts. Die Annahme trifft nicht zu, wenn zwei oder mehr Objekte innerhalb des Blocks in verschiedene Richtungen bewegt werden. Gleichwohl wird ein minimaler Prädiktionsfehler gefunden. Für eine praktische Realisierung eines Bildcoders ist der Vektorbereich auf -8/+7 pel reduziert worden und der Suchbereich auf 31×31 pel. Dies führt zu 256 möglichen Vektoren. Der Rechenaufwand beträgt danach 196 600 arithmetische Operationen einschließlich der Suche des DFD- Minimums, um den Bewegungsvektor eines Macroblocks zu ermitteln. Mit einer Framewiederholungsrate von 25 Hz müssen etwa 1,900,000,000 arithmetische Operationen in einer Sekunde ausgeführt werden, um alle Bewegungsvektoren zu erhalten. Mit den Maßnahmen nach der Erfindung kann dieser Aufwand ohne Qualitätsverlust reduziert werden. Es wird hierzu insbesondere parallel verarbeitende Hardware eingesetzt und durch spezielle Schritte der Hardwareaufwand reduziert.
Je nach Größe eines Macroblocks muß jede DFD-Berechnung die Summe von 256 absoluten Bilddifferenzwerten liefern. Dieser Aufwand kann dadurch reduziert werden, daß ein unterabgetasteter Macroblock verwendet wird mit einer reduzierten Anzahl von Bildpunkten aber einem Bildbereich der gleichen Größe.
Fig. 3 zeigt zwei Möglichkeiten für eine solche modifizierte Bewegungsschätzung und zwar Fig. 3a eine Reduktion um den Faktor 2 und Fig. 3b eine Reduktion um den Faktor 8.
Wie Fig. 3a zeigt, werden alle Bildpunkte, die mit einem Punkt markiert sind, ausgelassen. Für die DFD-Berechnung werden demnach nur halb so viele Bildpunkte verwendet, was auch die Zahl der notwendigen arithmetischen Operationen halbiert. Der Hardware-Aufwand kann verringert werden hinsichtlich der zu verarbeitenden Wortlänge, der Zahl parallel arbeitender Module und/oder der Taktgeschwindigkeit. Die verbleibenden Bildpunkte sind "quincunxförmig" angeordnet, d. h. wie die Augen einer FÜNF beim Würfel, um die beste Abdeckung des Macroblocks zu erreichen.
Normalerweise sollte der Macroblock vor der Unterabtastung bandbegrenzt werden, um Aliasingfehler zu vermeiden. Diese Maßnahme ist jedoch nur bei höheren Reduzierungsfaktoren (Fig. 3b) notwendig. Diese modifizierte DFD-Berechnung kann auf alle Blockmatching-Verfahren angewendet werden, um Hardware- oder Geschwindigkeitsaufwand einzusparen.
Auch in der Bitauflösung, die normalerweise 8 Bit pro Bildpunkt erfordert, kann der Aufwand reduziert werden. So kann die maximale DFD-Wortlänge auf 12 Bit anstatt 16 Bit reduziert werden.
Durch Verwendung eines hierarchischen, z. B. dreistufigen Suche (DE 38 37 590 A1) gemäß Fig. 4, kann der Verarbeitungsaufwand weiter reduziert werden.
Im ersten Schritt (Step 1) werden nur 9 Positionen des Suchbereiches (durch Quadrate markiert) betrachtet. Die DFD- Werte werden berechnet und an der Stelle des kleinsten Wertes (mit einem Stern markiert) wird der zweite Suchschritt initiiert. An dieser Stelle werden 8 weitere Positionen in einer näheren Umgebung untersucht. Der neunte DFD-Wert ist aus dem vorangehenden Schritt bereits bekannt. Im dritten Schritt wird diese Methode in einer Umgebung mit nur einem Pel Abstand wiederholt.
Mit dieser Vorgehensweise wird ein Bewegungsvektor mit nur 25 DFD Berechnungen gefunden. Im Vergleich zum "Full-Search" Verfahren ist die Zahl der Berechnungen um den Faktor 9 reduziert. Der resultierende Vektor ist im Bereich von ±7 pel.
Erfahrungsgemäß liegen die DFD-Werte häufig im Bereich ±1 pel, so daß ein zusätzlicher vierter Schritt das Schätzergebnis verbessern kann. Dieser vierte Schritt wird mit der Bildpunktumgebung aus dem dritten Schritt auf den jeweils mittleren Bildpunkt des ersten Schrittes angewendet. Die daraus sich ergebenden 8 DFD Berechnungen reduzieren den Codiergewinn von 9 auf 6.8.
Neben den zuvor beschriebenen Verfahren ist noch das Block- Matching Verfahren mit nichtlinearer Vektorquanisierung und das hierarchische Block-Matching Verfahren zur Reduzierung des Verarbeitungsaufwandes anwendbar. Verglichen mit den "Full- Search" Verfahren liefern alle modifizierten Verfahren in etwa alle modifizierten Verfahren in etwa 80 bis 95% aller Fälle die gleichen Vektoren.
Aus diesem Grunde werden die Schritte der Erfindung nachfolgend anhand des "Full-Search" Verfahrens erläutert. Eine entsprechende Übertragung-auf die modifizierten Verfahren ist natürlich möglich.
Fig. 5 zeigt ein Blockschaltbild eines Video-Coders. Aktuelle und die rekonstruierten Bilder (frames) sind beispielsweise in einem externen Bildspeicher EBS abgespeichert. Es sind zwei lokale Speicher vorgesehen, und zwar ein erster Speicher SRD für die aktuellen Blockdaten des Referenz-Bildbereiches und ein zweiter Speicher SSD für Bilddaten des Suchbereichs. Die Speicher SSD und SRD erlauben einen wiederholten Zugriff auf den Referenzblock (aktuellen Block) und den Suchblock. Beide Speicher SSD und SRD erhalten ihre Daten vom externen Bildspeicher EBS.
Im "interframe mode" (vgl. H. 261) ermittelt ein Bewegungsschätzer ME die Bewegungsvektoren. Ein Prädiktionsblock wird für den Luminanzanteil vom SSD-RAM an ein Filternetzwerk FN geleitet und für den Chrominanzanteil direkt vom externen Bildspeicher EBS, gegebenenfalls nach Serien-Parallelwandlung S/P. Ein Prädiktionsblock wird jeweils mit einem aktuellen Block verglichen, d. h. vom aktuellen Block subtrahiert mittels der Einrichtung SB. Ein nichtlineares Gewichtungsnetzwerk NL vermindert Störungen, die durch Rauschanteile hervorgerufen werden. Nach der Transformation in den Spektralbereich durch die DCT-Einheit erfolgt die Quantisierung und Codierung mittels der Einheit QUA.
Im "intraframe mode" wird ein aktueller Block direkt vom SRD- RAM zur DCT-Einheit weitergeleitet.
Für die Bewegungsschätzung werden nur Luminanzbildpunkte ausgewertet. Um den Bewegungsvektor für einen Makroblock (Referenzblock der Größe 16 × 16 pel) zu finden, muß er mit allen Blöcken innerhalb des Suchbereichs (ein 31 × 31 pel Block des davorliegenden Frame) verglichen werden durch Berechnung der "displaced frame difference" DFD. Die beste Korrelation befindet sich beim Minimum der DFD-Werte. Für die Bestimmung eines Bewegungsvektors muß jeder Bildpunkt des Referenzblocks 256 Mal geladen werden. Die Bildpunkte des Suchbereichs müssen zwischen 1 und 256 Mal geladen werden in Abhängigkeit ihrer Position innerhalb des Suchbereichs. Jedoch muß unter Berücksichtigung der überlappenden Suchbereiche des Frame k-1 jeder Bildpunkt des Frame k-1 256 Mal für die Bewegungsschätzung geladen werden. Dies verursacht eine extrem hohe Datentransferrate zwischen dem Bildspeicher EBS, welcher den aktuellen und den davorliegenden Frame enthält, und der Blockmatching-Einrichtung. Um den Datentransfer auf einem 8 bit Bus ausführen zu können, muß die Zugriffszeit der externen RAMs allein für das Blockmatching kleiner als 0,8 ns sein, was mit heutiger Technologie, z. B. der HCMOS Technologie, nicht zu erreichen ist. Wie zuvor schon erwähnt wurde beträgt der Rechenaufwand ungefähr 1,900,000,000 arithmetische Operationen. Aus diesem Grund wird eine parallele und pipelineartige Architektur mit lokalen Cache-RAMs verwendet.
In Anlehnung an die CCITT Empfehlung H. 261, die die Sequenz der Macroblöcke vorgibt, wird die Arbeitssequenz für den Bewegungsschätzer in gleicher Weise festgelegt. Ein eingangsseitiges Bild im CIF-Format wird in 12 Gruppen von Blöcken unterteilt, die jeweils aus 33 (11 × 3) Macroblöcken bestehen.
Gemäß Fig. 6 speichert das SRD-RAM die Daten des aktuellen Macroblocks, die für die Bewegungsschätzung und für die Berechnung des Prädiktionsfehlers herangezogen werden. Es ist als 2 Port-RAM aufgebaut. Um einen Macroblock zu laden, sind 64 Zeitschritte (write cycles) notwendig. Zur Ermittlung eines Vektors, muß der Bewegungsschätzer 2048 Lesezugriffe über einen 64 bit Bus zum SRD-RAM ausführen. Das SSD-RAM stellt die Bildpunktdaten für den Suchbereich zur Verfügung. Der Bewegungsschätzer weist vier parallele Zweige auf, um vier Bewegungsvektoren in x-Richtung gleichzeitig aufbereiten zu können. Das SSD-RAM muß demzufolge 11 pels, respektive 88 bit an Bildpunktdaten, liefern. Es ist als 4 Port-RAM ausgebildet mit einem Schreibeingang und 3 Leseausgängen. Die Busbreite der drei Leseausgänge beträgt 32 bit und die des Schreibeingangs 24 bit. Die RAM-Größe beträgt 186 × 32 bit, so daß nur a = 6 Spalten eines Suchbereichs gespeichert werden können, wobei eine Spalte q = 4 Pels breit und 31 Zeilen tief ist.
Fig. 7 zeigt, durch die "o" Markierung, die oberste Zeile des Suchbereichs mit 31 pel. Die unterstrichenen pel (Spalten 1 bis 3 des Suchbereiches) werden den Vergleichseinheiten V1 bis V4 im ersten Schritt des Blockmatching vom SSD-RAM gleichzeitig zugeleitet. Das Symbol "m" kennzeichnet die erste Hälfte der ersten Zeile des Referenzblocks (pel 1 bis 8). Die korrespondierenden "m" - "o" Kombinationen aus dem SSD-RAM und dem SRD-RAM werden benutzt, um den Betrag A-B der Frame- Differenz FD für 8 pel und vier Vektoren parallel in einem Verfahrensschritt (Zeitschritt) zu bestimmen. Wie Fig. 6 zeigt, sind die ersten Vergleichseingänge der Vergleichseinheiten V1 bis V4 mit allen Ausgängen des SRD-RAM in Wirkverbindung, wohingegen die zweiten Vergleichseingänge jeweils um einen Bildpunkt versetzt Bilddaten vom SSD-RAM erhalten (1 . . . 8, 2 . . . 9, 3 . . . 10, 4 . . . 11).
Somit werden im ersten Zeitschritt p = 4 verschiedene Suchpositionen gleichzeitig abgearbeitet. Während der folgenden 15 Zeitschritte werden die nächsten Zeilen des Referenzblocks (8 pel) und des Suchbereichs (11 pel) geladen und der Betrag der Frame-Differenz berechnet. Die ermittelten Frame-Differenz-Beträge werden mittels der Addierwerke A1, A2, A3, A4 bezüglich jeweils einer Vergleichseinheit aufsummiert und in Registern abgespeichert. Für die Addierwerke wird beispielsweise die bekannte "Wallace Tree"-Struktur (EP 249 279 B1 angewandt. Damit werden jeweils 8 Vergleichsergebnisse und das rückgeführte Ergebnis der vorherigen Suche aufwandsarm aufaddiert. Die minimalen Frame- Differenzen FDmin aus allen Parallelzweigen sowie die zugehörigen Vektoren werden über den einen Minimum-Komparator K ausgegeben. Zur Vervollständigung der Berechnung der Frame- Differenzen muß die zweite Hälfte des Blockmatchings an den Suchpositionen gemäß Fig. 8 durchgeführt werden. Das Symbol "n" repräsentiert dort die erste Zeile der zweiten Hälfte des Referenzblocks (pel 9 bis 16).
Diese Berechnung erfordert weitere 16 Zeitschritte. Demzufolge werden 4 Frame-Differenzwerte FD innerhalb von 32 Zeitschritten berechnet. Die Frame-Differenzwerte FD mit den minimalen Werten und der korrespondierende Vektor wird gespeichert als FDmin, xmin und ymin und steht/stehen als Bezugswert/e für den nächsten Schritt zur Verfügung. Im nächsten Schritt werden die Registerinhalte über entsprechende Rückführschleifen den Addierwerken A1 bis A4 erneut zugeführt. Als Ergebnis wird der beste Repräsentant für die Vektorpositionen (-8, -8), (-7, -8) (-6, -8) (-5, -8) gefunden.
Der nächste Suchschritt ist in Fig. 7 ebenfalls dargestellt, aber nun kennzeichnet "o" die zweite Zeile des Suchbereichs, um die Vektorpositionen (-8, -7), (-7, -7), (-6, -7), (-5, -7) abzuarbeiten. Der zuvor ermittelte FDmin-Wert wird nun mit dem Minimum der neuen FD-Werte verglichen. Der kleinste FD-Wert und die dazu korrespondierende Vektorposition wird als FDmin, xmin und ymin gespeichert. Dieser Suchschritt wird so lange wiederholt, bis alle 16 vertikalen Suchpositionen (y-Richtung) abgearbeitet sind. Auf diese Weise wird die beste "Matching- Position" im Bereich (x, y) = (-8 . . . -5, -8 . . . +7) gefunden. Insgesamt erfordert dies 512 Zeitschritte.
Im vorgestellten Beispiel werden von den a Spalten 5 Spalten zur DF-Berechnung und Bestimmung von q = 4 Vektoren mit 4x und 16y Komponenten benutzt, während die sechste Spalte zum Nachladen (Aktualisieren) des Suchbereiches mit einer q = 4 pel breiten Spalte Vorgesehen ist. Die Verfahrensschritte werden nun entsprechend der in Fig. 9 dargestellten Positionen wiederholt, um den nächsten Satz von 4 Vektoren zu ermitteln. Jetzt werden die Spalten 2, 3 und 4 bzw. 4, 5 und 6 zur Ermittlung der FD-Werte an den Vektorpositionen (x, y) = (-4 . . . -1, -8 . . . +7) benutzt. Gleichzeitig wird die Spalte 7 vom externen Speicher EBS aus aktualisiert. Für die übrigen Vektorpositionen werden vorgenannte Schritte so oft wiederholt, bis alle Vektorpositionen eines Makroblocks innerhalb von 2048 Zeitschritten abgearbeitet sind.
Normalerweise besteht ein Suchbereich aus a = 8 Spalten mit einer Breite von q = 4 pel und einer Tiefe von 31. Diese Daten müssen für einen Initialisierungsblock geladen werden. Für die FD-Berechnung des nächsten Blocks sind jedoch bereits 4 Spalten im SSD-RAM geladen, so daß nur noch 4 weitere 4-pel breite Spalten nachgeladen werden müssen. Diese Vorgehensweise halbiert den Datentransfer vom externen Bildspeicher ESB zum SSD-RAM. Jedoch müssen an den Randbereichen einer Makroblockzeile zusätzliche Daten für den Suchbereich geladen werden.
Fig. 10 zeigt einige Referenzblöcke (Reference Blocks) mit den korrespondierenden Suchbereichen (Search Areas). Wenn der Block i-1 abgearbeitet ist, ist die erste Hälfte des Suchbereiches für die Bearbeitung des Blockes i schon im SSD- RAM geladen, so daß nur noch die zweite Hälfte geladen werden muß. Mit Ausnahme der Blöcke an den Randbereichen müssen 496 pel vom externen Speicher ESB zum SSD-RAM übertragen werden. Dies geschieht innerhalb von 124 Zeitschritten.

Claims (5)

1. Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, insbesondere für die Übertragung komprimierter Bilddaten, mit folgenden Schritten:
  • - Bereitstellen von aktuellen Bilddaten für einen Referenz- Bildbereich an einer Suchposition innerhalb eines Suchbereiches in einem ersten Speicher (SRD),
  • - Bereitstellen von Bilddaten für den Suchbereich in einem zweiten Speicher (SSD), wobei der Suchbereich in Zeilen und Spalten unterteilt ist,
  • - Zuführen der Bilddaten des ersten und zweiten Speichers (SSD, SRD) an mehrere Vergleichseinheiten (V1, V2, V3, V4) und zwar so, daß diese Vergleichseinheiten (V1, V2, V3, V4) für eine erste Gruppe von Suchpositionen in einem ersten Verarbeitungsschritt gleichzeitig Vergleichsergebnisse liefern, wobei Vergleichsergebnisse für q Bildpunkte einer Zeile und p Vektoren innerhalb eines Verarbeitungsschrittes ermittelt werden,
  • - Aktualisieren jener Bereiche oder eines Teils jener Bereiche des zweiten Speichers (SSD) im ersten Verarbeitungsschritt mit aktuellen Bilddaten, die für die Verarbeitung der ersten Gruppe von Suchpositionen im ersten Verarbeitungsschritt nicht benötigt werden derart, daß der Suchbereich in a Spalten mit jeweils einer Breite von q Bildpunkten unterteilt wird, daß jeweils a-1 Spalten zum Ermitteln der Vergleichsergebnisse benutzt werden und jeweils eine Spalte zur Aktualisierung des Suchbereichs,
  • - Wiederholen vorgenannter Schritte für eine zweite oder weitere Gruppe von Suchpositionen in einem zweiten oder weiteren Verarbeitungsschritt,
  • - Verknüpfen der Vergleichsergebnisse zu Daten, die jeweils einen ganzen Bildbereich beschreiben.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei Benutzung blockartig strukturierter Bildbereiche p verschiedene Suchpositionen in einer Ausbreitungsrichtung des blockartigen Suchbereichs gleichzeitig bearbeitet werden und daß die Suchpositionen in der anderen Ausbreitungsrichtung zeitlich nacheinander bearbeitet werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Vergleichsergebnisse aufgrund von FD (frame­ difference) -Operationen ermittelt werden, wobei die minimalen FD-Werte eines Verarbeitungsschrittes als Referenzwerte für den jeweils nächsten Verarbeitungsschritt herangezogen werden.
4. Anordnung zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, insbesondere für die Übertragung komprimierter Bilddaten, bestehend aus:
  • - einem ersten Speicher (SRD) für Bilddaten eines Referenz- Bildbereichs,
  • - einem zweiten Speicher (SSD) für Bilddaten eines Suchbereiches, wobei der zweite Speicher (SSD) Mittel aufweist zur Spaltenweisen Aktualisierung des Suchbereichs mit Daten eines externen Speichers (EBS) jeweils um jene Bereiche, die für einen sich anschließend Vergleich aktuell nicht benötigt werden,
  • - mehreren Vergleichseinheiten (V1, V2, V3, V4), deren erste Vergleichseingänge mit allen Ausgängen des ersten Speichers (SRD) in Wirkverbindung stehen und deren zweite Vergleichseingänge mit jeweils nur einem Teil der Ausgänge des zweiten Speichers (SSD) in Wirkverbindung stehen und zwar so, daß jede der Vergleichseinrichtungen (V1, V2, V3, V4) Bilddaten zur Verfügung gestellt bekommt, die sich in ihrer Gesamtheit um mindestens einen Bildpunkt von den Bilddaten, die den anderen Vergleichseinrichtungen zur Verfügung gestellt werden, unterscheiden,
  • - den Vergleichseinheiten (V1, V2, V3, V4) jeweils zugeordneten Addierwerken (A1, A2, A3, A4) zur Aufaddition der mit den Vergleichseinheiten (V1, V2, V3, V4) gewonnenen Vergleichsergebnisse,
  • - einem Komparator (K) zur Ermittlung der kleinsten Bilddifferenz mit zugehörigem Verschiebungsvektor aus den aufaddierten Vergleichsergebnissen.
5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß die Vergleichseinheiten (V1, V2, V3, V4) so ausgestaltet sind, daß sie jeweils Bildpunkt-Betragsdifferenzen der ihnen von den beiden Speichern (SSD, SRD) zugeführten Daten bilden.
DE4333368A 1993-09-30 1993-09-30 Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, sowie Anordnung hierzu Expired - Fee Related DE4333368C2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4333368A DE4333368C2 (de) 1993-09-30 1993-09-30 Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, sowie Anordnung hierzu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE4333368A DE4333368C2 (de) 1993-09-30 1993-09-30 Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, sowie Anordnung hierzu

Publications (2)

Publication Number Publication Date
DE4333368A1 DE4333368A1 (de) 1995-04-06
DE4333368C2 true DE4333368C2 (de) 1997-06-12

Family

ID=6499091

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4333368A Expired - Fee Related DE4333368C2 (de) 1993-09-30 1993-09-30 Verfahren zur Aufbereitung von Daten zur Beschreibung von Bildbereichen, sowie Anordnung hierzu

Country Status (1)

Country Link
DE (1) DE4333368C2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10120140C2 (de) * 2001-04-25 2003-03-13 Sci Worx Gmbh Verfahren zum Zugriff auf Suchbilddaten bei der Bewegungsschätzung

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3834477A1 (de) * 1988-10-11 1990-04-12 Bosch Gmbh Robert Schaltungsanordnung zur schaetzung von bewegung in einem aufgenommenen bild
JPH0385884A (ja) * 1989-08-29 1991-04-11 Sony Corp 画像の動き検出回路
US5418617A (en) * 1991-08-08 1995-05-23 Matsushita Electric Corporation Of America Motion compensation using minimum bits per motion block as criterion for block matching

Also Published As

Publication number Publication date
DE4333368A1 (de) 1995-04-06

Similar Documents

Publication Publication Date Title
EP0309669B1 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
DE69530336T2 (de) Bewegungskompensation für digitale Videosignale mit Zeilensprung
DE69313692T2 (de) Kodierung und Dekodierung zur Videokompression mit automatischer Halbbild/Bild Bewegungskompensation auf der Subpixelebene
DE69801209T2 (de) Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
DE3856536T2 (de) Kodierung von Daten, die wie eine multidimensionale Matrix dargestellt sind
DE4322343C2 (de) Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors
DE69131257T2 (de) Verfahren zur Kompression von bewegten Bildsignalen nach dem Zeilensprungverfahren
DE19704439C2 (de) Verfahren und Vorrichtung zur Bewegungsschätzung in einem digitalen Videocodierer unter Verwendung von Trajektorien
DE69709914T2 (de) Vorrichtung zur Bildvorhersage und -decodierung
DE60014444T2 (de) Verfahren und vorrichtung zur bewegungsschätzung unter verwendung von nachbarmacroblöcken
DE69324486T2 (de) Bildsignalumsetzer
DE69421135T2 (de) Verfahren zur vermeidung von rundungsfehlern bei der inversen transformation von transformationskoeffizienten eines bewegtbildsignals
DE69316440T2 (de) Einrichtung zur Umsetzung von digitalen Daten
DE69637335T2 (de) Bildsignalkodierungsmethode und -vorrichtung
DE69716037T2 (de) Verfahren zur kodierung und dekodierung von digitalen bildern
DE69329983T2 (de) Bildverarbeitungsverfahren und -vorrichtung
DE19825042A1 (de) Verfahren zur Bewegungsvektorcodierung bei MPEG-4
DE69713923T2 (de) System und Verfahren zur digitalen Bildkompression mit Bewegungsschätzung
DE4442643B4 (de) Verfahren zum Abschätzen der Bewegung in einem Bewegtbild
DE69416662T2 (de) Bewegtbildkodierer
DE69024002T2 (de) Vorrichtung zum Codieren von zweidimensionalen Informationen und entsprechende Decodiervorrichtung.
DE69712087T2 (de) Bewegungskompensiertes vorhersageverfahren und gerät
EP0956539B1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes
DE69802269T2 (de) Vorrichtung und verfahren zum vergleichen von pixelblöcken
DE69707312T2 (de) Prozessor für zusätzliche information in einem speicherfähigen bildverarbeitungssystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee
8170 Reinstatement of the former position
8127 New person/name/address of the applicant

Owner name: ROBERT BOSCH GMBH, 70469 STUTTGART, DE

D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110401