DE19703251A1 - Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur - Google Patents

Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur

Info

Publication number
DE19703251A1
DE19703251A1 DE19703251A DE19703251A DE19703251A1 DE 19703251 A1 DE19703251 A1 DE 19703251A1 DE 19703251 A DE19703251 A DE 19703251A DE 19703251 A DE19703251 A DE 19703251A DE 19703251 A1 DE19703251 A1 DE 19703251A1
Authority
DE
Germany
Prior art keywords
block
luminance correction
subblock
motion estimation
luminance
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.)
Withdrawn
Application number
DE19703251A
Other languages
English (en)
Original Assignee
Kuhn Peter Dipl-Ing 80333 Muenchen De
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 Kuhn Peter Dipl-Ing 80333 Muenchen De filed Critical Kuhn Peter Dipl-Ing 80333 Muenchen De
Priority to DE19703251A priority Critical patent/DE19703251A1/de
Publication of DE19703251A1 publication Critical patent/DE19703251A1/de
Withdrawn 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing

Description

Anwendungsgebiet
Die Erfindung betrifft eine Vorrichtung entsprechend dem Oberbegriff des Anspruchs 1.
Stand der Technik
Bewegungsschätzung (engl. Motion Estimation) und Bewegungskompensation ist eine Technik, um temporale (in­ terframe) Redundanz zwischen aufeinanderfolgenden Bildern (Frames) in der digitalen Videokompression zu eli­ minieren. (Es gibt jedoch auch noch andere Anwendungen für die Bewegungsschätzung, beispielsweise in der Medizin). Dadurch können ähnliche Bildteile (im allgemeinen quadratische Blöcke der Größe 16 × 16 Bildpunkte, ein Bildpunkt wird auch als Pixel benannt) in aufeinanderfolgenden Bildern kompakt durch sog. "Verschiebungs­ vektoren" (Bewegungsvektoren) beschrieben werden, um nicht dieselben Bildinhalte mit jedem neuen Bild neu übertragen zu müssen.
Bewegungsschätzung ist der Teil der Videokompression, der den höchsten Rechenaufwand verursacht, durch­ schnittlich benötigt die Bewegungsschätzung ca. 70% der Gesamtrechenleistung eines Videoencoders. Heute be­ nötigt die Videoencodierung für Echtzeitkommunikation bei Bildformaten größer als QCIF (176 × 144 pixel) aufwendige Parallelrechner oder dedizierte integrierte Schaltungen. Echtzeitdecodierung von Video ist dagegen für diese Bildformate im Bereich heutiger Standardprozessoren. Daher wurden verschiedene Architekturen in Form von nichtprogrammierbaren und programmierbaren integrierten Schaltungen entwickelt, um eine Echtzei­ tencodierung zu ermöglichen. Stand der Technik sind dedizierte und programmierbare Architekturen für feste Blockgrößen, einen Überblick gibt [Pir 96] oder [Vos 95]. Variable Blockgrößen wurden in den Architekturen von [Ber 96] (dedizierte, nichtprogrammierbare Blockmatching Architektur) und [Hans 96] (programmierbare Archi­ tektur) berücksichtigt.
Subblock-Clustering (Teilblock-Kombinationen) ist ein Verfahren, bei dem eine Ansammlung von mehreren Sub­ blöcken (z. B. der Größe 4 × 4 Pixel) eines Blockes (z. B. der Größe 8 × 8) der durch einen einzelnen Verschiebungs­ vektor beschrieben werden kann (vgl. B, Fig. 1 und Fig. 2).
Die Luminanzkorrektur (auch Helligkeitskorrektur) erweist sich als anerkannt vorteilhaft, um Beleuchtungsände­ rungen einer Szene auch durch die Bewegungsschätzung erfassen zu können (genauer: siehe B, Abschnitt 2.4).
Zitat [Gilge 90], Seite 150 (Literaturverzeichnis vgl. Teil B):
"Das mittlere Fehlermaß (z. B. MQF) kann nicht zwischen Fehlern durch Bewegung und Fehlern durch Beleuch­ tungsänderungen unterscheiden. Im letzteren Fall würden Vektoren ermittelt, die den mittleren Fehler zwar mini­ mieren, aber die Bildstruktur zerstören. Als Ausweg bietet sich eine Helligkeitskorrektur an, die im Zusammenhang mit Gradientensuchverfahren . . . vorgeschlagen wurde. Ein Ansatz zur Helligkeitskorrektur für Blockmatching-Verfahren wird im nächsten Abschnitt eingeführt."
Die Luminanzkorrektur findet auch Verwendung in Verfahren der Videocodierung, die ohne Intrabild-/Prädikti­ onsfehlercodierung (i.d.R. DCT) auskommen (vgl. B, Abschnitt 2.5).
Weitere allgemeine Erläuterungen siehe auch Teil B, v.a. Kapitel 1.
Nachteile des Standes der Technik
Wesentlicher Nachteil von dedizierten Blockmatching-Architekturen des Standes der Technik ist, daß diese keine Luminanzkorrektur unterstützen.
Mit den dedizierten Blockmatching-Architekturen des Standes der Technik kann:
  • - keine echtzeitfähige Luminanzkorrektur mit akzeptablem Aufwand
  • - kein Blockmatching mit Luminanzkorrektur für feste Blockgrößen durchgeführt werden
  • - kein Blockmatching mit Luminanzkorrektur für variable Blockgrößen durchgeführt werden
  • - kein Blockmatching mit Luminanzkorrektur für Subblock-Cluster durchgeführt werden
  • - kein Blockmatching mit Luminanzkorrektur für Subblock-Cluster unterschiedlicher Levels (vgl. B, Fig. 1) durchgeführt werden
  • - kein Blockmatching mit Luminanzkorrektur für beliebig berandete Objekte durchgeführt werden
  • - keine Blockmatching auf Block-Cluster/Subblock-Cluster (vgl. Teil B, Fig. 2) durchgeführt werden
  • - keine iterative Abarbeitung verschiedener Luminanzkorrektur-Werte durchgeführt werden und diese iterative Abarbeitung bei Erreichen eines bestimmten Schwellwerts abgebrochen werden kann.
  • - keine iterative Abarbeitung verschiedener Luminanzkorrektur-Werte nach Sortierung aufgrund ihres probabi­ listischen (Wahrscheinlichkeits-) Auftretens (z. B. nach VLC-Tabelle, VLC = Variable Length Code) durchge­ führt werden und diese iterative Abarbeitung bei Erreichen eines bestimmten Schwellwerts abgebrochen werden kann.
  • - keine iterative Abarbeitung verschiedener Luminanzkorrektur-Werte nach Sortierung aufgrund ihres probabi­ listischen Auftretens (nach VLC-Tabelle, VLC = Variable Length Code = Anzahl der Bits in den codierten Vi­ deodaten, die für die Übertragung des) durchgeführt werden und diese iterative Abarbeitung z. B. nach Methoden der Minimumsuche bei Erreichen eines bestimmten Schwellwerts abgebrochen werden kann.
  • - keine Parallelisierung des iterativen Prozesses der Bewegungsschätzung mit Luminanzkorrektur.
Nicht-dedizierte, programmierbare Prozessorarchitekturen vermögen zwar die Punkte durch geeignete Program­ mierung zu lösen, weisen aber nicht den mit einer parallelen, dedizierten (VLSI)-Architektur erreichbaren Durch­ satz auf.
Aufgabe der Erfindung
Aufgabe der Erfindung ist eine effiziente Einführung der Luminanzkorrektur/Helligkeitskorrektur in eine für
  • 1) Blockmatching-Architektur für feste Blockgrößen und/oder
  • 2) Blockmatching-Architektur für variable Blockgrößen und/oder
  • 3) Blockmatching-Architektur für Subblock Clustering auf einem oder mehreren Levels und/oder
  • 4) Blockmatching-Architektur für beliebig berandete Objekte
ohne den Durchsatz der Architektur wesentlich zu vermindern sowie unter Berücksichtigung externer Abbruch­ bedingungen.
Subblock-Cluster-Problem: Problematisch ist bei der gleichzeitigen Berechnung von Bewegungsvektoren für mehrere variable Blockgrößen oder Subblock-Cluster ist die Tatsache, daß der Luminanzkorrekturwert aus den Mittelwerten der Pixel der variablen Blockgrößen des originalen und aus den Mittelwerten der Pixel der variablen Blockgrößen des Suchbereichs vorhergehenden Bildes errechnet wird, d. h. für jeden Suchbereichsschritt für un­ terschiedliche Blockgröße und Subblockclusterkombination muß zuerst der Luminanzkorrekturwert aus den Mit­ telwerten berechnet werden und dann kann erst das Fehlermaß mit Hilfe der Absolutdifferenz (Gleichung (1) in Abschnitt B) für diese Subblockclusterkombination ermittelt werden. Das gleiche Problem tritt auch bei der gleichzeitigen Berechnung der Fehlermaße mehrerer variabler Blockgrößen auf und wird genauso behandelt. Auf­ gabe der Erfindung ist die Parallelisierung dieses iterativen Prozesses. (genauer in B, Abschnitt 4.7 mit Bild erläu­ tert).
Lösung der Aufgabe
Diese Aufgabe wird durch eine Vorrichtung/Architektur mit den Merkmalen des Anspruch 1 gelöst.
Kurzfassung = Lösung des Subblock-Cluster-Problems: Durch Vorgabe von Luminanzkorrekturwerten (q), wer­ den die Fehlermaße aller Subclusterkombinationen mit Hilfe der Absolutdifferenz (Gleichung (1) in Abschnitt B) für dieses q errechnet und gleichzeitig die Luminanzkorrekturwerte (q'[i], i = Anzahl der Subblockclusterkombi­ nationen) für alle Subblock-Clusterkombinationen errechnet. Nur wo die errechneten Luminanzkorrekturwerte q'[i] mit den vorgegebenen Luminanzkorrekturwerten übereinstimmen werden die Ergebnisse des Fehlermaßes und damit die Bewegungsvektoren übernommen, sonst nicht. Damit ist die Parallelisierung dieses iterativen Pro­ zesses gelungen. (genauer in B, Abschnitt 4.7 mit Bild erläutert).
Vorteile der Erfindung
  • - Vermeidung des iterativen Prozesses durch Lösung des Subblock-Cluster-Problems: Dadurch wird eine Paral­ lelisierung des iterativen Prozesses und somit eine hohe Geschwindigkeitssteigerung möglich. Dadurch wird überhaupt erst eine Echtzeitfähigkeit von luminanzkorrigierter Bewegungsschätzung mit variablen Blockgrößen und Teilblockkombinationen möglich.
  • - Durch ein Abarbeiten tabellarisch aufgeführter möglicher Luminanzkorrekturwerte (q-Werte) und Abbruch der Abarbeitung der Luminanzkorrekturwerte-Werte bei bestimmten Ergebnissen (Fehlermaß) der Bewe­ gungsschätzung oder einer bestimmten Anzahl der abgearbeiteten Luminanzwerte oder durch ein anderes Maß kann ein hoher Durchsatz erreicht werden (vgl. Teil B, Fig. 8). Durch das Abbruchkriterium müssen nicht alle Luminanzkorrekturwerte über den ganzen Suchbereich hinweg auf Erfolg untersucht werden.
  • - Dadurch wird die Luminanzkorrektur nur für diese Blöcke und nur insoweit durchgeführt, als daß ein Gewinn (bessere Bewegungsschätzung) im Vergleich zum Blockmatching ohne Luminanzkorrektur möglich ist (= ad­ aptive Luminanzkorrektur). Dadurch lassen sich hohe Geschwindigkeitsgewinne erzielen, da die Luminanz­ korrektur nur für einen begrenzten Teil der Bildblöcke einen Gewinn bringt.
  • - Nutzbarmachung der Luminanzkorrektur für die Bewegungsschätzung bei Echtzeitfähigkeit auch für größere Bildformate
  • - Ermöglichung von Video-Encodier/Decodierverfahren, die ausschließlich auf Bewegungsschätzung mit Lumi­ nanzkorrektur basieren und auf rechenleistungsaufwendige Intraframecodierverfahren (z. B. DCT/IDCT) ver­ zichten. Damit lassen sich Videodecoder bauen, die nur auf Bewegungskompensation basieren und auf rechenleistungsaufwendige Intraframedecodierverfahren (IDCT-Verfahren) verzichten. Das ist besonders für mobile Videodecoder mit geringen Rechenleistungsfähigkeiten und damit geringem Stromverbrauch von Vor­ teil.
B Ausführungsbeispiel für ein zweidimensionales Prozessorarray Eine flexible VLSI Architektur für Blockmatching-Bewegungsschätzung mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Ob­ jekte und Luminanzkorrektur Kurzfassung
Dieser Beitrag beschreibt eine flexible VLSI-Architektur mit 25.6 Giga Operationen pro Sekunde (Gops) Rechen­ leistung für Algorithmen des Blockmatching mit vollständiger Suche. Es werden Algorithmen neuartiger Bewe­ gungsschätzungsverfahren auf Basis des Blockmatching sowie standardisierte Videokompressionsverfahren unterstützt. Die Architektur basiert auf einem 16 × 16 PE (Prozessor Element) Array und 12 KByte On-Chip Such­ bereichs-RAM und erlaubt gleichzeitige Berechnung von Bewegungsvektoren für 32 × 32, 16 × 16, 8 × 8 und 4 × 4 Blöcke und Subblock Cluster für einen Suchbereich von +/-32 Pixel mit 100% PE Ausnutzung. Die vorgestellte Architektur unterstützt objektorientierte Algorithmen durch das Ausschließen von Pixeln außerhalb von Videoob­ jekten vom Blockmatching-Prozeß genauso wie fortgeschrittene Algorithmen wie Bewegungsschätzung mit va­ riabler Blockgröße und Bewegungsschätzung mit Luminanzkorrektur. Ein Preprozessor-Filter ist zur Unterstützung von Halb-Pixel Interpolation und Pixel-Dezimierung enthalten. Das 0.5 µm VLSI-Design wurde mit Hilfe von CMOS-Technologie und VHDL-Synthese erstellt, hat eine Größe von 145 mm2, und kann mit 100 MHz (typ.) getaktet werden. Damit wird eine Echtzeit-Bewegungsschätzung für variable Blockgrößen für 4CIF vi­ deo (704 × 576 Pixel, 15 fps) möglich sowie eine luminanzkorrigierte Bewegungsschätzung für variable Block­ größen mit CIF (352 × 288, 15 fps)-Auflösung.
Schlagworte
Block Matching, Luminanzkorrektur, Quadtree, VLSI implementierung, Video Kompression
1 Einführung
Dieser Beitrag beschreibt die Erweiterung einer bekannten Block-Matching-Architektur [Vos 95] für die Anfor­ derungen neuer Bewegungsschätzungsalgorithmen. Die originale Architektur, die ein weites Feld von Bewe­ gungsschätzungsalgorithmen mit vollständiger und hierarchischer Suche abdeckt, wurde für neue Anforderungen des MPEG-4 Standards (MPEG-4 Zeitplan: Working Draft: Nov. 96, Draft: Nov. 97, International Standard Nov. 1998) erweitert. Auf dieser Architektur basierend wurden VLSI Implementierungslösungen von fortgeschrittenen (natürlich, z. Zt. noch nicht standardisierten) Blockmatching Algorithmen untersucht. Be­ wegungsschätzung mit variabler Blockgröße und Bewegungsschätzung mit Luminanzkorrektur.
Die Eignung dieser Architektur wurde mit einem entropieoptimierten Bewegungsschätzungsalgorithmus mit va­ riabler Blockgröße und Luminanzkorrektur untersucht, der in [M 1031] als eine Technik für den in Entwicklung befindlichen MPEG-4 Standard vorgeschlagen wurde. Die Architektur wurde als VLSI-Design realisiert für Be­ wegungsschätzung mit variablen Blockgrößen für 4CIF (704 × 576 pixel, 15 fps) und für luminanzkorrigierte va­ riable CIF (352 × 288, 15 fps) Videocodierung mit variabler Blockgröße.
1.1 Standardisierte Videokompression
Bewegungsschätzung ist eine Technik, um zeitliche (interframe) Redundanzen zwischen sukzessive Bilder in der digitalen Videokompression zu eliminieren. Bewegungsschätzung ist der am rechenaufwendigste Teil der bisher standardisierten Bewegungsschätzungsverfahren H.261 [H. 261], MPEG-1 [MPEG-1], MPEG-2 (= H.262) [H. 262] und H.263 [H. 263]. Im derzeit in der Entwicklung befindlichen MPEG-4 Standard [MPEG-4] hat die Be­ wegungsschätzung einen Anteil von rund 70% an der Gesamtrechenleistung [M 0920]. Echtzeit-Kommunikation mit Bildgrößen größer als QCIF (176 × 144) benötigt entweder massives Parallelbearbeitung oder dedizierte VLSI Beschleuniger am Encoder. Echtzeit-Videodekodierung wird nun auch von heutigen Standardprozessoren abge­ deckt.
Eine Vielzahl von Algorithmen (viele für reduzierte Komplexität, [Liu 93 : 1]) sowie unzählige Architekturen (hauptsächlich für Algorithmen mit vollständiger Suche, [Pir 96], [Vos 95]) wurden für die Bewegungsschätzung mit Block-Matching in unterschiedlichen Anwendungen entwickelt. Im Vergleich zu schnellen hierarchischen Suchverfahren, die niedrigere Komplexität, jedoch aber höheren Kontroll- und Pixeladressierungsaufwand ha­ ben, bieten Verfahren mit vollständiger Suche qualitativ sehr gute Ergebnisse sowie regulären Datenfluß, der effi­ ziente VLSI-Implementierungen ermöglicht.
Es gibt wenige Architektur-Untersuchungen zu Algorithmen, die derzeit für den nächsten Schritt der Videokom­ pressions-Standardisierung vorgeschlagen werden, diese Untersuchungen werden jedoch als notwendig erachtet, da nur so Empfehlungen zur Implementierbarkeit dieser neuen Algorithmen gegeben werden können. Bisher wur­ den sehr viele Block-Matching-Architekturen für feste Blockgrößen vorgeschlagen, Architekturen für variable Blockgrößen gibt es jedoch wenige. [Ber 96] beschreibt ein flexibles, sehr schnelles, kaskadierbares 32 × 32 PE- (Prozessor Element)-Array (200 GOPS, 200 MHz worst case, 0.5 µm CMOS, 170 mm2) für Block Matching mit variabler Blockgröße für HDTV Anwendungen. [Hans 96] beschreibt einen programmierbaren SIMD-Prozessor (41 mm2, 50 MHz, 1 µm) für Echtzeit CW (352 × 288 pels, 10 fps) Block Matching mit variabler Blockgröße.
1.2 Überblick des Dokuments
Dieser Beitrag ist wie folgt organisiert: Kapitel 2 beschreibt die Algorithmen, die durch diese Architektur unter­ stützt werden: 1) Bewegungsschätzung für heutige Videokompressionsstandards, 2) Bewegungsschätzung für beliebig berandete Objekte, 3) Bewegungsschätzung mit variabler Blockgröße und 4) Bewegungsschätzung mit Luminanzkorrektur. Kapitel 3 umfaßt Architekturüberlegungen, Kapitel 4 gibt Implementierungsdetails und Ka­ pitel 5 zeigt einige Ergebnisse.
2 Algorithmen 2.1 Block Matching
Block-Matching mit vollständiger Suche, so wie es heute in den meisten Videoencodern benutzt wird, basiert auf ein Bewegungsmodell mit konstanter, translatorischer Bewegung und Bildblöcken fester Größe (FBSME: fixed blocksize motion estimation, Bewegungsschätzung mit fester Blockgröße). Das Matching-Kriterium des vollstän­ digen Blockmatchings mit Blockgröße N × N (wobei N gewöhnlich 16 ist) ist in Gleichung (1) angegeben, wobei orgi,j der Luminanzwert des ij-ten Pixels des aktuellen Bildes ist und previ+dx, j+dy der Pixel Luminanzwert des vorhergehenden Frames ist.
SADmin = min (SADN(dx,dy)) (2).
Von den Bewegungsvektorkandidaten (MV) (dx,dy) des Suchbereichs +/-x und +/-y wird derjenige mit der nied­ rigsten SAD (Sum of Absolute Difference, Summe der absoluten Differenzen), SADmin, ausgewählt. Die Parame­ ter der geschachtelten Schleifen eines Block-Matchingalgorithmus sind dx, dy, i und j (d. h.: jeder Pixel in x and y Richtung).
2.2 MPEG-4: Bewegungsschätzung für beliebig berandete Objekte
Natürliche Video Szenen bestehen (zum Beispiel) aus stationärem Hintergrund und bewegten, beliebig geformten Vordergrundobjekten. Gewöhnlich wird das Fehlermaß (z. B. SAD) für die Bewegungsschätzung aus allen Pixeln ohne Rücksicht auf deren Zugehörigkeit zu Hintergrund- oder Vordergrundobjekten bestimmt, was zur Folge hat, daß die resultierenden Bewegungsvektoren häufig nicht die reale Bewegung eines Objekts darstellen. Um das zu vermeiden (und, natürlich, primär aus anderen Gründen, wie die Ermöglichung von Objektmanipulation, stati­ schen Hintergrundspeichers, u.v.a.m. . . .) führte MPEG-4 eine Beschreibung der beliebig geformten Umrandung ei­ nes Objekts ein.
In MPEG-4 wird die Beschreibung der Objektumrandung alpha_plane genannt. Die alpha_plane eines Videoob­ jekts wird durch einen (semi-) automatischen Segmentierungsprozeß der Videosequenz erzeugt. Diese Technik wird nicht durch den MPEG-4 Standardisierungsprozeß abgedeckt und hängt auch von der Applikation ab. Die alpha_plane enthält die Information, welches der Pixel ein Objekt bilden (alpha < 0) und welche Pixel außerhalb eines Objekts liegen (alpha = 0). Am Encoder erlaubt diese Information das Fehlermaß des Bewegungsschätzungs­ prozesses auf Pixel innerhalb der Objekte zu beschränken. Für die Übertragung wird die Form des Objekts durch spezielle "Shape"-Kodierungsmethoden kodiert, die jedoch über diesen Rahmen hinausgehen [N 1469]. Die SAD wird nach Gleichung (3) nur für Pixel mit einer alpha_plane ungleich Null berechnet [N 1469]:
x, y = "up to [-63, 63]", N = 16, 8 (4)
2.3 VBSME: Bewegungsschätzung mit variabler Blockgröße
Die Vorteile variabler Blockgrößen (VBSME, Variable Block Size Motion Estimation) für Video Sequenz Codie­ rung wurden schon von verschiedenen Autoren (e.g. [Truo 96], [Li 96], [Kim 96], [Gis 96], [Lee 95], [Chan 90], [Puri 87]) untersucht. Im Vergleich zur Bewegungsschätzung mit festen Blockgrößen, bietet die VBSME eine bes­ sere Schätzung kleiner lokaler und irregulärer Bewegungsfelder (sog. motion fields) und erlaubt auch eine bessere Anpassung von Grenzen der Bewegung an Objektgrenzen, was den Vorteil einer reduzierten Anzahl notwendiger Bits für die Prädiktionsfehlercodierung ergibt. Natürlich, die Unterstützung unterschiedlicher Blockgrößen benö­ tigt mehr Bits im Bitstrom für die Signalisierung der Blockgröße und für die Encodierung der Bewegungsvektoren unterschiedlicher Blockgröße). Die optimale Auswahl von Blockgröße (und die Anzahl der codierten Vektoren, die direkt die Bitrate beeinflußt) und Verzerrung (Distortion) kann durch Lagrange Optimierung [Su 94], [Lee 95] bestimmt werden. Abhängig vom Fehlermaß (SAD) der Blöcke, werden die Blöcke iterativ in kleinere (quadtree) Blöcke aufgesplittet, bis die kleinste Blockgröße erreicht ist oder die SAD innerhalb eines vordefinierten Grenz­ werts liegt (tree-pruning).
N = 32,16,8,4 (6)
2.4 Luminanz-Korrektur
Das häufig verwendete Fehlermaß SAD, das in den bisher beschriebenen Blockmatching-Architekturen verwendet wird, ist ungeeignet, um zwischen Fehlern die durch Objekt-Bewegung oder durch Beleuchtungsänderung entste­ hen zu unterscheiden. Fehler, die durch Luminanzänderungen hervorgerufen werden, resultieren in Bewegungs­ vektoren, die den mittleren absoluten Fehler minimieren, jedoch die Bildstruktur negativ beeinflussen können. Die zerstörte Bildstruktur muß nun mit bitratenaufwendigen Intraframe-Codiertechniken (z. B. DCT) wiederhergestellt werden. Luminanz-Korrektur, wie z. B. in [Gilge 90] beschrieben, ist eine Technik um die Beleuchtungsänderun­ gen einer Szene zu berücksichtigen. Der hier beschriebene Algorithmus versucht die SAD durch Reduktion der Grundhelligkeit des Bildblocks im Vergleich zu jedem Bildblock der Suchposition der Blockmatchingeinheit zu minimieren. Luminanzkorrektur kann jedoch, wie [Gilge 90] zeigt, auch (fälschlicherweise) reale Bewegung kompensieren. Daher ist ein sinnvolles Zusammenarbeiten beider Techniken anstelle eines reinen Pipelining not­ wendig. Gleichung (7) beschreibt das Blockmatching mit dem Luminanzkorrekturkoeffizienten q.
2.5 Umsetzbarkeitsbeispiel: MPEG-4 Core Experiment PS
Die Machbarkeit der hier vorgestellten Architektur wurde mit einem entropieoptimierten Algorithmus für Bewe­ gungsschätzung mit variablen Blockgrößen und Luminanzkorrektur gezeigt, der in [M 1031] als eine Technik für den in Entwicklung befindlichen MPEG-4 Videocodierstandard vorgestellt wurde und durch "Core Experimente" ([Har 96], [M 1294], [M 1291]) überprüft wurde. Dieser Algorithmus verwendet variable Blockgrößen und Lu­ minanzkorrektur und zeigt gute Ergebnisse ohne Verwendung einer Intraframe-Codierungstechnik, was den Vor­ teil einer Decodierung mit niedriger Komplexität bringt, da keine rechenleistungsaufwenige IDCT (inverse DCT) am Decoder notwendig ist.
Zusätzlich zu den eben beschriebenen Techniken der Bewegungsschätzung mit variablen Blockgrößen und Lumi­ nanzkorrektur wird ein Teilblock-"Clusterungs"-Verfahren verwendet, wie in Fig. 2 gezeigt. Der Luminanzkoeffi­ zient q wird hier als quantisierte Differenz des Mittelwerts der Pixel-Intensität eines Subblock Clusters des originalen Frames und des Mittelwerts der Pixel-Intensität eines Subblock Clusters des vorgehenden Frames gebil­ det. Die q-Werte werden quantisiert zu Vielfachen von 4 und befinden sich in einem Bereich von [-252, 252]. Jeder der Subblock Cluster wird im Bitstream mit einem (dx,dy) Bewegungsvektor beschrieben, einer Subblock-Clu­ ster-Nummer und dem entsprechenden Luminanzkorrekturkoeffizient q. Der Blockmatching-Algorithmus ver­ gleicht jeden der Subblock Cluster eines Blocks des originalen Frames bei unterschiedlichen Leveln von Blockgrößen (Fig. 1, modifiziert mit dem berechneten optimalen q Koeffizient) den entsprechenden Blocks des Suchbereichs des vorhergehenden Bildes. Die beste Kombination von Bewegungsvektoren und Subblock-Clustern unterschiedlicher Level kann mit der Lagrange Optimierung bestimmt werden, wobei kleinere Blockgrößen (wenn unvorteilhaft) auch ausgelassen werden können.
Schließlich wird der 32 × 32 Luminanzblock (im Bitstrom) auf allen Levels (32 × 32, 16 × 16, 8 × 8) mit den Bewe­ gungsvektoren für den besten Subblock Cluster, die Nummer für den besten Subblock Cluster und dem q für alle drei Levels beschrieben. Chrominanz-Komponenten (UV) werden genauso beschrieben, jedoch mit halbierter Auflösung und halbierter Blockgröße bei jedem Level (16 × 16, 8 × 8 and 4 × 4). Zur Vermeidung von Blocking-Ef­ fekten wird OBMC (Overlapped Block Motion Compensation) durchgeführt. Der Decoder basiert ausschließlich auf Bewegungskompensation, in dem die Bewegungsvektoren auf die Subblock-Cluster und die q Koeffizienten verwendet werden. Fig. 3 zeigt als Beispiel ein einzelnes Bild der Sequenz "news" bei CW-Auflösung und die Block-Partitionierung der Y (Luminanz) Komponente. Für Gebiete mit komplexer Bewegung (z. B. die Tänzerin im Hintergrund) werden kleinere Blockgrößen bevorzugt. Sichtbar sind auch einige "L"-förmige Subblock Cluster in Fig. 3.
3 Architektur
Die bekannte [Vos 95] Architektur wurde erweitert für 1) Bewegungsschätzung mit beliebig berandeten Objekten, 2) Bewegungsschätzung mit variabler Blockgröße und 3) Unterstützung von Luminanzkorrektur. [Vos 95] be­ schreibt eine flexible, parametrisierbare und sehr effiziente Block-Matching Architektur, die auf einen zweidimen­ sionales systolischen Array-Ansatz mit 16 × 16-Prozessor-Elementen (PEs), sowie auf einen mäander-ähnlichen Datenfluß für das die Suchbereichsdaten aufbaut wodurch ein hoher Durchsatz erreicht wird. Der mäander-ähnli­ chen Datenfluß ist vorteilhaft, da nur lokale Verbindungen zwischen den einzelnen PEs benötigt werde und kein globaler Speicherzugriff für die einzelnen PEs bereitgestellt werden muß. Die Architektur verwendet globale Ak­ kumulation (GA), um die absoluten Differenzen, die im PE-Array gebildet werden, aufzusummieren, was sich als vorteilhaft für die beabsichtigten Erweiterungen dieser Architektur herausstellte. Eine der Alternativen der GA ist die lokale Akkumulation (LA), wo die absoluten Differenzen innerhalb eines jeden einzelnen PEs aufsummiert werden. Die GA und LA Ansätze wurden in [Vos 89] diskutiert, hier wird nun nachfolgend die Eignung für die beabsichtigten Erweiterungen diskutiert. Das Problem war, den iterativen Algorithmus mit variablen Blockgrößen auf eine parallele VLSI Architektur zu bringen und die Luminanzkorrektur ohne schwere Performanceeinbußen zu unterstützen.
3.1 Vergleich: Lokale Akkumulation (LA) und Globale Akkumulation (GA)
Der Block-Matching-Algorithmus Gleichung (1) besteht aus vier geschachtelten Schleifen, wobei zwei der Schlei­ fen mittels eines 2D PE-Arrays parallelisiert werden können, was zu unterschiedlichen, komplementären Archi­ tekturen führt (GA/LA). Die Parameter der parallelisierten Schleifen sind durch das PE-Array fixiert, die Parameter der restlichen Schleifen sind variabel.
In der GA-Architektur verarbeitet das PE-Array (Größe: N × N) alle Pixel (i, j-Schleifen) parallel und verschiebt das Suchgebiet (+/-x, +/-y), das die Eingangsdaten für das PE-Array enthält mit jedem Taktzyklus. Die absoluten Pixeldifferenzen werden außerhalb des Arrays in einem Addiererbaum aufsummiert. Die GA Architektur unter­ stützt nur feste Blockgrößen mit 100% PE Ausnutzung, variable Blockgrößen kann durch PE-Maskierung unter­ stützt werden, für den Algorithmus aus Abschnitt 2.5 hätte das einen Performance-Verlust um den Faktor 295 (4.6) bedeutet, da 295 unterschiedliche Subblock-Formen für einen 32 × 32 Block ausgewertet hätten müssen. GA bietet den Vorteil einer einfachen Kontrolle und flexibler Suchbereichsgrößen, die prinzipiell auch für Spiralsuche oder Low-Power Modi genutzt werden können.
Die LA-Architektur parallelisiert x und y in Gleichung (1) mit Hilfe des 2D PE Arrays und bearbeitet i und j se­ quentiell mit jeder Verschiebung der Inputdaten des Arrays. Für LA ist die Blockgröße variabel (in 2p Schritten) und die PE Array Größe ist durch das Suchgebiet festgelegt.
Die GA-Architektur ist gut geeignet, um die Bewegungsschätzung auf Pixel innerhalb beliebig berandeter Blöcke zu begrenzen, wie bei MPEG-4 benötigt. Da die Eingänge des Addiererbaums direkt den einzelnen Pixeln eines Bildblocks entsprechen, können die Absolut Differenz-Werte von Pixeln außerhalb eines beliebig berandeten Ob­ jekts einfach mittels Multiplexer (MUX3, Fig. 4) am Eingang des Addiererbaums ausgeblendet werden. In der LA Architektur sind die PEs nicht direkt auf Pixel im originalen Frame zuordnungsfähig, was die Unterstützung von beliebig berandeten Objekten erschwert. Bei LA können Pixel außerhalb von Objekten nur durch Unterdrückung dieser Pixels im Datenstrom zum PE-Array erfolgen, das Aufsummieren von Teilsummen für VBSME und Unter­ stützung von beliebig berandeten Objekten wäre nun datenabhängig und würde nun komplexe Kontrolle bei PE- Geschwindigkeit erfordern. Beliebig berandete Objekte können jedoch durch Vorverarbeitung des originalen Fra­ mes mit der alpha_plane (original AND original-alpha_plane) beaufschlagt werden um diesen Nachteil der LA zu umgehen, was jedoch zusätzliche Rechenleistung und Latenzzeit erfordern würde.
Für die Bewegungsschätzung mit variablen Blockgrößen, wie sie im Abschnitt 2.5 benutzt wird, hat sieh GA als effektiver herausgestellt, da die SADs der Subblocks am Addiererbaum schon vorliegen und lediglich zusätzliche Komparatoren, Multiplexer und Register notwendig sind, um die SADs der Subblocks abzuspeichern. Verglichen mit der FBSME benötigt die PE Organisation und der Datenfluß keine Veränderungen. Zusätzliche Logik ist le­ diglich notwendig für den nun etwas komplexeren Addiererbaum. Da die LA die partiellen Summen von Glei­ chung (1) innerhalb der PEs berechnet, müßten für die VBSME die Pixel Sequenz zum PE-Array reorganisiert werden, um die Ergebnisse der kleineren Blöcke zu Ergebnissen von größeren Blocks aufzusummieren. Teilsum­ men jedes dx/dy müßten in zusätzlichen Registern gespeichert werden. Bei geeigneter Pixel Sequenz Reorganisa­ tion könnten jedoch einige der Zwischenergebnisse weiterverwendet werden, es treten jedoch Schwierigkeiten in der Unterstützung von beliebig berandeten Objekten oder Subblock-Clusterung auf.
Für den Algorithmus aus Abschnitt 2.5 wird die Luminanzkorrektur auf jeden Subblock auf jedem Level durch­ geführt, wobei grundsätzlich die gleichen Einschränkungen für LA also für die VBSME gelten.
4 Implementierung 4.1 Überblick
Die Chip-Architektur (Fig. 4) besteht aus einem Preprozessor, einem 12 kB On-Chip RAM, einem 16 × 16 PE Ar­ ray, einer Luminanzkorrektureinheit, einem modifizierten Addiererbaum, der Subblock-Clusterung-Logik und Kontroll-Logik.
4.2 Preprozessor
Um einen regulären Datenfluß durch das PE Array gewährleisten zu können, wurde ein Preprozessor für 1) Pixel Dezimation [Liu 93 : 1], Halb-Pixel Filterung und c) Daten Resortierung für das On-Chip RAM. Die Daten-Re­ sortierung wurde eingeführt, um einen regulären Zugriff auf das Suchgebiet mit abwechselnden (interleaved) RAM Zugriffen von dem PE Array aus ohne Effizienz-Verlust durchführen zu können.
Prinzipiell existieren drei Ansätze für Halfpel-Bewegungsschätzung: 1) Bewegungsschätzung mit Vollsuche in dem mit Halb-Pixel Genauigkeit gefilterten Suchbereich, 2) Halb-Pixel Filterung zwischen MUX2 (Fig. 4) und dem PE Array und 3) Bewegungsschätzung mit Vollsuche in Integer-Genauigkeit und nachfolgender Halb-Pixel Bewegungsschätzung in dem (beispielsweise) +/- 2 pel Gebiet um den Integer Bewegungsvektor. Da für diesen Anwendungsfall ein Maximum von 82 Bewegungsvektoren existiert, erschien Ansatz 3) daher unpraktisch und Ansatz 2) würde ein sehr schnelles Halb-Pixel Interpolationsfilter benötigen, um die Geschwindigkeit des PE Ar­ rays nicht unnötig zu verlangsamen, daher wurde Ansatz 1) gewählt. Natürlich wächst damit für Halb-Pixel in­ terpolierte Bilder das Suchgebiet und die Suchzeit um den Faktor vier. Ansatz 2) erscheint sehr attraktiv und wird derzeit untersucht.
4.3 On-Chip RAM
Für die Anwendung aus Abschnitt 2.5 wurde ein +/-32 Pixel Suchbereich benötigt für einen 32 × 32 Block. Mit dem verwendeten VHDL-Synthese-Ansatz kann dieses große Suchgebiet besser und mit geringeren Flächenko­ sten mit On-Chip RAM anstelle von Registern unterstützt werden. Natürlich, On-Chip RAM-Zugriffe mußten mit Interleaving durchgeführt werden, um die notwendige Geschwindigkeit zu erreichen. Der zweite Vorteil (neben der geringeren Chipfläche) des Synthese- und RAM-Interleaving-Ansatzes ist, daß das Design leicht auf eine em­ bedded DRAM Technology übertragen werden kann.
Das On-Chip Dual-Port RAM hält die Pixeldaten des Suchgebietes des vorausgegangenen Frames. 12 RAM Blöcke (jeder mit 64 bit × 128 Bytes, 15 ns) werden verwendet um die Daten des kompletten +/- 32 Pixel Suchbereichs zwischenzuspeichern. Die zwei RAM Ports werden durch separate Adreß-Controller kontrolliert, die den Vorteil der Entkopplung der Vorverarbeitung (Preprozessor) und des Datenladens des Suchbereichs von dem sehr schnel­ len Speicherzugriff des PE Arrays bietet. Um die Zugriffsanforderungen des PE arrays (128 bit pro Taktzyklus) zu erfüllen, werden vier der 12 RAM Blöcke parallel ausgelesen, wobei aufeinanderfolgende Speicherzugriffe zwi­ schen den drei Speicherbänken abgewechselt werden. Effizienter Speicherzugriff wird erreicht, da keine Daten von den Prozessorelementen zum RAM zurückgeführt werden. Mit jedem Speicherzugriff der vertikalen Verschie­ bungsdaten (16 Bytes des Port A oder C in Fig. 4) wird ein Byte der Daten der nächsten Spalte (das 17. Byte in horizontaler Reihenfolge) gelesen und in ein 16 Byte Register geschoben, das nur für horizontale Datenverschie­ bung des PE arrays ausgelesen wird. Dieser Fall tritt jedoch nur bei horizontalen Suchrichtungswechseln auf.
4.4 Das Prozessor Element Array
Das PE Array besteht aus 256 Prozessorelementen (PEs), welche die absoluten Differenzen jedes Pixels des 16 × 16 Blocks (und 8 × 8, 4 × 4 Subblocks) des originalen und vorhergehenden Bildes unter Einbeziehung des Luminanzko­ effizienten q während eines einzigen Taktes errechnen. Die Pixel Differenzen werden im Addierbaum aufsummiert und mit den vorhergehenden Ergebnissen verglichen. Die Daten des Originalbildes werden in einem "Zig-zag"-Da­ tenfluß und die Daten des vorhergehenden Bildes werden in einem "mäander"-förmigen Datenfluß durch die PEs geleitet. Ein PE besteht aus einer Absoluten Differenzeinheit und zwei Multiplexern. 100% PE Ausnutzung kann für Suchbereiche über 17 pel in y Richtung erreicht werden. 32 × 32 Block-Bewegungsvektoren können durch se­ quentielles bearbeiten der 16 × 16 Blocks und speichern der Zwischenergebnisse in On-Chip Speichern errechnet werden.
4.5 Der modifizierte Addiererbaum
Der modifizierte Addierbaum ist in Fig. 6 dargestellt, der die aktuellen SADs der kleinen (4 × 4, 8 × 8, . . .) Blöcke aufsummiert um die SADs der größeren Blöcke oder Subblock-Cluster zu erhalten. Die Wortlänge jedes Addierers des Addierbaums steigt mit höheren Ebenen der Baumhierarchie, was in einem kompakten Design resultiert. Der Addierbaum enthält auch 82 Komparator/Register Elemente, die die besten (bezüglich SAD) Bewegungsvektoren und SAD für jeden Block, Subblock oder auf jedem Level speichern. Beliebig berandete Objekte werden mit ei­ nem Multiplexer-Input unterstützt, wobei mit einem alpha_plane-Wert von 0 (vgl. Abschnitt 2.2) der absolute Dif­ ferenz-Wert des entsprechenden Pixels von dem Akkumulationsprozeß im Addierbaum ausgeschlossen wird. Das Ergebnis des 16 × 16 Prozessorarrays wird in Ergebnisse von 8 × 8 und 4 × 4-PE Subgruppen aufgesplittet, d. h. eine SAD8×8 wird aus 4 SAD4×4 Ergebnissen errechnet, jedoch hat jedes einzelne Level Vergleicher und Register um die besten SADs und Bewegungsvektoren eines jeden Suchzyklusses zu speichern.
4.6 Subblock Clusterung
Zwei oder drei der Subblöcke eines 32 × 32, 16 × 16 oder 8 × 8 Blocks der Luminanzkomponente (Y) oder eines 16 × 16, 8 × 8 oder 4 × 4 Blocks der Chrominanzkomponente (UV) kann zu "Clustern" zusammengeschlossen werden (Fig. 2) und effizienter durch einen einzelnen Bewegungsvektor oder q Wert beschrieben werden. Zu diesem Zweck werden alle MV, SAD und q-Werte der ähnlichsten Blocks (d. h. mit der besten SAD) der 15 (14), mögli­ chen Cluster auf jedem Level gespeichert. Im Ganzen gibt das 16 × 14 Clusters (8 × 8 Blocks) + 4 × 14 Clusters (16 × 16 Blocks) + 1 × 15 Clusters (32 × 32 Block) = 295 Subblock Cluster Ergebnisse für Y, wobei die besten SAD, MV und q Kombinationen in Komparator/Register-Elementen gespeichert werden. Ein externer, programmierba­ rer Steuerprozessor wählt die beste MV, q und Subblock-Cluster Kombination mit Hilfe der Lagrange Optimie­ rung aus den drei Levels dieser Daten aus, wobei das Fehlermaß (SAD) und die Kodierungskosten (die durch eine externe Tabelle bereitgestellt wird) des MV und q-Wertes bei unterschiedlichen Levels.
Fig. 6 zeigt den Addierbaum mit 82 Komparator/Register Elementen. Fig. 7 zeigt das Subblock-Clusterung eines Levels: Schon berechnete SAD wir für die SAD-Berechnung von nachfolgenden Levels weiterbenutzt.
4.7 Luminanzkorrektur
Die Luminanzkorrektur-Einheit ist für flexible Nutzung ausgelegt, die Unterstützung des Algorithmus des Ab­ schnitts 2.5 wird hier beschrieben (Fig. 8). Die Schwierigkeit diesen Algorithmus auf die bisher beschriebene VLSI-Architektur zu übertragen war, daß der Luminanzkoeffizient q für jeden einzelnen der 295 Subblock Cluster ("L"-Shapes) eines 32 × 32 Blocks berechnet werden muß und dann die SAD dieses Subblock Clusters berechnet werden muß um den optimalen MV für diesen Subblock Cluster zu finden. Prinzipiell besteht der Algorithmus aus 6 verschachtelten Schleifen (dx, dy, i, j, Subblock Clusterung, q), wobei i und j durch das PE Array und das Sub­ block Clusterung durch den Addierbaum durchgeführt wird. Die verbleibenden Schleifen müssen sequentiell be­ arbeitet werden. Im folgenden wird eine Lösung mit reduziertem Aufwand beschrieben.
Gemäß des Abschnitts 2.5 sind die q Werte Vielfache von 4 und im Bereich [-252; 252] und deren probabilistisches Auftreten wird durch eine VLC Tabelle mit 128 Einträgen dargestellt. Da eine vollständige Abarbeitung aller q Werte sich in einem Geschwindigkeitsverlust vom Faktor 128 niederschlagen würde, wurde eine adaptive Lumi­ nanzkorrektur entwickelt, die diesen Aufwand um Größenordnungen verringert. Die q Werte können in einer Ta­ belle gespeichert werden, sortiert gemäß der VLC. Nach einer vollständigen Suche mit q = 0 ("traditionelles"- Blockmatching ohne Luminanzkorrektur) werden die SAD-Ergebnisse mit einem Schwellwert verglichen und ein externer Prozessor entscheidet, ob weitere Suche mit Luminanzkorrektur notwendig ist oder nicht. Wenn ja, dann wird der am häufigsten benutze q-Koeffizient (gemäß der VLC-Tabelle) als erster q-Koeffizient in das PE-Array gegeben und die Vollsuche wird für dieses q gestartet. Mit jeder Verschiebung des Suchgebiets in x oder y-Rich­ tung generieren die Addiererbäume 2 und 3 einen q'-Wert (q'[82]) für jeden der 82 Subblock-Cluster des momen­ tanen 16 × 16 Suchbereichs. Die realen Luminanzkorrekturwerte (q'[82]) werden aus den quantisierten (Quantizer) Differenzen (SUB) der Mittelwerte der Subblock-Cluster des Suchbereichs (meansearch[82]) und der Mittelwerte der Subblock-Cluster des originalen Bildes meanoriginal[82] gebildet. Sobald einer der q'[82]-Werte mit dem aktuellen q- Wert übereinstimmt (Vergleich in Modul CMP), wird der entsprechende SAD, MVx, MVy-Wert in die Ergebnis­ tabelle geschrieben. Diese Prozedur wird mit so vielen q-Werten wiederholt, bis die SAD-Werte innerhalb eines vordefinierten Schwellwerts liegen. Neben linearem Abarbeiten der q-Werte gemäß der VLC-Tabelle kann bei­ spielsweise auch "Bisection"-Suche (vgl. [Press 92]) zur schnelleren Konvergenz Anwendung finden. Mit diesem Verfahren zur adaptiven Luminanz-Korrektur, wird die Luminanzkorrektur nur bei Notwendigkeit durchgeführt (i.d.R. nur für einige wenige Blocks) und der durchschnittliche Berechnungs-Overhead wird niedrig gehalten. Mit geeigneten Schwellwerteinstellungen, modifizierten Suchstrategien (z. B. Spiralsuche), oder modifizierten lumi­ nanzkorrigierten Bewegungsschätzungsalgorithmen ist weitere Beschleunigung möglich.
5 Ergebnisse der Beispielimplementierung
Eine Beispielimplementierung als VLSI wurde mit einer 0.5 µm CMOS Technik durchgeführt. Die Größe einiger Module ist in Fig. 20 angegeben:
Fig. 20: Größe der einzelnen Module
Module
Größe
Preprozessor 2 mm2
On-Chip Dual Port SRAM, 12 kByte 29 mm2
einzelnes PE-Element 0.09 mm2
Pe-Array 25 mm2
Addiererbaum Modul 8.4 mm2
Subblock Clusterungs Modul 2.4 mm2
Fig. 21: Technische Daten des Beispieldesigns für eine Bewegungsschätzung mit variablen Blockgrößen und Luminanzkorrektur
unterstützte Algorithmen - Fixed Block Size Motion Estimation
- Variable Block Size Motion Estimation@ - Subblock Clusterung@ - Luminanz Korrektur (optional)@ Verarbeitungsleistung 25.6 GOPS
Max. Durchsatz 23668 16×16 Blöcke/s bei +/-32 pel Suchgebiet (ohne Luminanzkorrektur)
Chip Takt 100 Mhz (typ.)
Block Größen 4×4, 8×8, 16×16, (32×32 mit Bufferung)
VLSI Herstellungsprozeß 0.5 µm ES2 ECDM05 CMOS
Designstil Standard Zellen Synthese, VHDL
Totale Chipgröße 145 mm2
Horizontaler Suchbereich programmierbar (<17 pels)
Vertikaler Suchbereich programmierbar
On Chip Speicher 12 kByte, Dual Port SRAM
6 Zusammenfassung
Dieser Beitrag präsentiert eine effiziente VLSI-Architektur für 1) Bewegungsschätzung mit variablen Blockgrö­ ßen, 2) Subblock-Clusterung, 3) Unterstützung von Objekten mit beliebiger Umrandung und 4) luminanzkorri­ gierte Bewegungsschätzung mit variablen Blockgrößen. In einem Beispiel-VLSI-Design wurde gezeigt, daß diese Architektur Bewegungsschätzung mit variablen Blockgrößen bei 4CIF (704 × 576, 15 fps) sowie luminanzkorri­ gierte Bewegungsschätzung mit variablen Blockgrößen bei Auflösungen von CIF (352 × 288, 15 fps) leisten kann. Mit einer neuen adaptiven Luminanzkorrekturtechnik wird Echtzeitvideokomprimierung mit luminanzkorrigierter Bewegungsschätzung möglich ohne jegliche intraframe Encodierungs-/Decodierungstechnik zu verwenden. Der Verzicht auf Intraframecodierungstechniken erlaubt die Konstruktion sehr schneller Videodecoder mit niedrigen Rechenleistungsanforderungen, die besonders für mobile Anwendungen geeignet sind.
7 Literaturangaben
[Ber 96] J. P. Bems and T.U. Noll: "A flexible Motion Estimation Chip for Variable Size Block Matching", ASAP' 96, Inter­ national Conference on Application-Specific Systems, Architectures and Processors, Chicago, 1996
[Chan 90]: M.M. Chan and Y.B. Yu and A.G. Constantinides; "Variable size block matching motion compensatioon with ap­ plications to video coding", IEE Proceedings, Vol 137, Pt. 1, No. 4, August 1990
[Gilge 90]: M. Gilge: "Regionenorientierte Transformationscodierung in der Bildkommunikation", Dissertation, Aachen, 1990 (in german)
[Gis 96]: J. V. Gisladottir, K. Ramchandran and M. Orchard: "Motion-based representation of Video Sequences using Variable Block Sizes", SPIE Visual Communications and Image Processing,, Vol. 2727, 1996, Orlando, p 368-374
[H.261]: ITU-T Recommendation H.261: Video Codec for Audiovisual Services at px64 kbit/s, Geneve, 1990
[H.262]: ITU-T Recommendation H.262: Generic Coding of Moving Pictures and Associated Audio: Video - (MPEG-2, ISO/IEC 13818-2)
[H.263]: ITU-T Recommendation H.263: Video Coding for Low Bitrate Communication, Genf, 1996
[Hans 96]: B. Hanssens and J.-D. Legat: "A parallel Processor for Motion Estimation", SPIE Vol. 2727, 1996, pp 1006-1016
[Har 96]: B. Haratsch: "Core Experiment P5 für MPEG-4: Entropy Constrained Variable Block Size Motion Estimation, Mo­ tion Compensation", Studienarbeit, Institute for Integrated Circuits, Technical University of Munich, Germany, 1996
[Kim 96]: J. W. Kim and S. U. Lee: "On the Hierarchical Variable Block Size Motion Estimation Technique for Motion Se­ quence Coding", SPIE Visual Communications and Image Processing, Vol. 2094, 1993, Cambridge, p 372-383
[Kom 93]: T. Komarek: "VLSI-Architekturen für Displacementschätzverfahren auf der Basis von Blockmatching-Algorith­ men", Dissertation, Hannover, 1993 (in german)
[Lee 95]: J. Lee, "Optimal Quadtree for Variable Block Size Motion Estimation", ICIP-95, Washington DC, Oct 1995
[Li 96]: W. Li and F. Dufaux: "Image Sequence Coding by Multigrid Motion Estimation and Segmentation based coding of prediction errors", SPIE Visual Communications and Image Processing, Vol. 2094, 1993, Cambridge, p 542-552
[Lin 96]: H.-D. Lin, A. Anesko, B. Petryna: "A 14 GOPS Programmable Motion Estimator for H.26X Video Coding". 1996 IEEE International Solid-State Circuits Conference, 1996
[Liu 93 : 1]: B. Liu, A. Zaccarin: "New Fast Algorithms for the Estimation of Block Motion Vectors", IEEE Trans. on Circuits and Systems for Video Technology, Vol. 3, No. 2, April 1993, p 148-157
[MPEG 1]: ISO/IEC 11172-2. Information Technology - Coding of Moving Picture and Associated Audio for digital storage media at up to 1.5 Mbit/s - Part 2: Video"
[MPEG 4]: ISO/IEC JTC1/SC29/WG11/N1470: "MPEG-4 Video Working Draft Version 1.0", Maceio, November 1996
[M0920]: P. Kuhn: "Complexity Analysis of the MPEG-4 Video Verfication Model Encoder using Profiling Tools", ISO/IEC JTC1/SC29/WG11 MPEG96/M0920, Tampere, Finland, 1996
[M1031]: R. Chuang, L. Hurd, S. Lyles, J. Muller, and M. Zeug: "Results of Core Experiment P5, Comparision of entropy cons­ trained variable block size motion estimation motion compensation, ISO/IEC JTC1/SC29/WG11 MPEG96/N1031, Tampere, Finland, 1996
[M1291]: T. Wiegand, M. Flierl: "Results of Core Experiment P5 (Entropy Constrained Variable Block Size Coding) ISO/IEC JTC1/SC29/WG11 MPEG96/M1291, Chicago, Illinois, 1996
[M1294]: A. Mutter, P. Kuhn, S. Herrmann, B. Haratsch: "Results of Core Experiment P5 (Entropy Constrained Variable Block Size Coding), ISO/IEC JTC1/SC29/WG11 MPEG96/M1294, Chicago, Illinois, 1996
[N1469]: Video Group: "MPBG-4 Video Verification Model Version 5.0", ISO/IEC JTC1/SC29/WG11 MPBG96/N1469, Ma­ ceio, Brasil, 1996
[Pir 96]: P. Pirsch, N. Demassieux and P. Gehrke: "VLSI architectures for video compression a survey", Proc. of the IEEE, Vol. 83, No. 2, Feb. 1995, pp. 220-246
[Press 92]: W.H. Press, S.A. Teukolsky, W.T. Vetterling, B. P. Flannery: "Numerical Recipes in C", Cambridge University Press, 1992, p 353
[Puri 87]: A. Puri, H. M. Hang and D.L. Schilling: "Interfranie Coding with Variable Block size Motion Compensation", Glo­ becom 1987
[Su 94]: G. J. Sullivan and R.L. Baker: "Efficient Quadtree Coding of Images arid Video", IEEE Trans. Image Processing, vol. 3, no. 3, pp. 327-331, May 1994
[Truo 96]: K. K. Truong and C. H. Richardson: "A hierarchical Video Coder with cache motion estimation", ICASSP 1996, p 1209-1212
[Vos 89]: L. De Vos and M. Stegherr: "Paramaterizable VLSI architectures for the full search block matching algorithm", IEEE Trans. Circuits Syst., Vol. 36, p 1309, Oct. 1989.
[Vos 95]. L. De Vos and M. Schöbinger: "VLSI Architecture for a Flexible Block Matching Processor", IEEE Transactions on Circuits and Systems for Video Technology, Vol. 5, No. 5, October 1995

Claims (20)

  1. Vorgabe eines Korrekturwertes (z. B. Luminanzkorrekturwert q) für die Berechnung eines Fehlermaßes (Beispiel Blockmatching mit fester Blockgröße) oder mehrerer Fehlermaße (Beispiel Blockmatching: gleichzeitige Berech­ nung der Fehlermaße mehrerer Blockgrößen oder Teilblockverbindungen, sog. Subblock-Cluster) mit Hilfe bei­ spielsweise eines Addiererbaumes (Fig. 8, Fig. 6, Fig. 5b). Dann Vergleich der errechneten tatsächlichen Korrekturwerte für entsprechende Teilblockkombinationen und Übernahme ausschließlich der Ergebnisse, bei de­ nen die vorgegebenen Korrekturwerte und die errechneten, tatsächlichen Korrekturwerte übereinstimmen.
    Formulierung des Anspruches für das Problem der Luminanzkorrektur für Blockmatching (Fig. 8, Teil B, Ab­ schnitt 4.7):
    Durch Vorgabe von Luminanzkorrekturwerten (q), werden alle Teilergebnisse (z. B. die Fehlermaße) eines Addier­ erbaumes (z. B. Fig. 6 und Fig. 5 b) (z. B. aller Subclusterkombinationen) mit Hilfe eines Fehlermaßes (z. B. Abso­ lutdifferenz (Gleichung (1) in Abschnitt B) für diesen vorgegebenen Luminanzkorrekturwert errechnet und gleichzeitig die Luminanzkorrekturwerte (q'[i], i = Anzahl der Subblockclusterkombinationen) für alle Subblock- Clusterkombinationen errechnet. Nur wo die errechneten Luminanzkorrekturwerte q'[i] mit den vorgegebenen Lu­ minanzkorrekturwerten übereinstimmen werden die Ergebnisse des Fehlermaßes und damit die Bewegungsvekto­ ren übernommen, sonst nicht. Damit ist die Parallelisierung dieses iterativen Prozesses gelungen. (genauer in B, Abschnitt 4.7 mit Fig. 8 erläutert).
  2. 1.1 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß beliebig berandete Objekte für die Bewegungs­ schätzung verwendet werden, wobei die Fehlermaßwerte der Pixel, die sich außerhalb eines beliebig berande­ ten Objektes durch Multiplexer oder AND-Gatter mit der alpha_plane (vgl. Teil B, 4.5) am Eingang des Addiererbaums unterdrückt werden.
  3. 1.2 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß variable Blockgrößen verwendet werden.
  4. 1.3 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß Teilblockkombinationen (Subblock-Cluster) ver­ wendet werden.
  5. 1.4 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß Teilblockkombinationen (Subblock-Cluster) ver­ schiedener Levels verwendet werden.
  6. 1.5 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß als Fehlermaß die SAD (Summe der absoluten Differenzen) in Anspruch genommen wird.
  7. 1.6 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß als Fehlermaß die Summe der quadratischen Dif­ ferenzen verwendet wird.
  8. 1.7 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zur Fehlermaßberechnung mit Luminanzkorrek­ tur ein eindimensionales Prozessorarray verwendet wird.
  9. 1.8 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zur Fehlermaßberechnung mit Luminanzkorrek­ tur ein zweidimensionales Prozessorarray (2D-Array) verwendet wird.
  10. 1.9 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zur Fehlermaßberechnung mit Luminanzkorrek­ tur ein mehrdimensionales Prozessorarray verwendet wird.
  11. 1.10 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der vorgegebene Korrekturwert iterativ be­ stimmt wird.
  12. 1.11 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß mehrere vorgegebene Korrekturwerte gemäß der VLC-Tabelle sortiert werden.
  13. 1.12 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß mehrere vorgegebene Korrekturwert gemäß der VLC-Tabelle sortiert werden und diese linear abgearbeitet wird.
  14. 1.13 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß mehrere vorgegebene Korrekturwert gemäß der VLC-Tabelle sortiert werden und diese nach Verfahren der Minimumbildung (z. B. Bisection Search, vgl. B, 4.7) abgearbeitet wird.
  15. 1.14 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß mehrere vorgegebene Korrekturwerte gemäß der VLC-Tabelle sortiert werden und diese linear bis zu einem aus den Ergebnissen des Fehlermaßes des Ad­ diererbaumes gebildeten Grenzwert abgearbeitet wird.
  16. 1.15 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der vorgegebenen Korrekturwerte variable ist.
  17. 1.16 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der vorgegebenen Korrekturwerte fest ist.
  18. 1.17 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß anstelle eines Addiererbaums ein program­ mierbarer Prozessor eingesetzt wird.
  19. 1.18 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet anstelle der hier angegebenen Berechnungsvorschrift für den Luminanzkorrekturwert q eine andere Vorschrift Verwendung findet, die aus den Intensitätswerten der Pixel eines Bereichs des originalen Bildes und aus den Intensitätswerten der Pixel eines Bereichs des Suchbe­ reichs vorhergehenden Bildes gebildet werden.
  20. 1.19 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Korrekturwert mittels Addiererbäume be­ rechnet wird.
DE19703251A 1997-01-29 1997-01-29 Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur Withdrawn DE19703251A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19703251A DE19703251A1 (de) 1997-01-29 1997-01-29 Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19703251A DE19703251A1 (de) 1997-01-29 1997-01-29 Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur

Publications (1)

Publication Number Publication Date
DE19703251A1 true DE19703251A1 (de) 1998-11-05

Family

ID=7818699

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19703251A Withdrawn DE19703251A1 (de) 1997-01-29 1997-01-29 Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur

Country Status (1)

Country Link
DE (1) DE19703251A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10143062A1 (de) * 2001-09-03 2003-04-03 Siemens Ag Verfahren und Vorrichtung zur Codierung oder Codierung und Übertragung digitaler Videoinformationen

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0360698A1 (de) * 1988-09-23 1990-03-28 THOMSON multimedia Verfahren und Einrichtung zur Bewegungsabschätzung in einer sich bewegenden Bildfolge
US5406642A (en) * 1988-12-23 1995-04-11 Nec Corporation Image matching method using direction sensitivity and vector smoothing functions for correcting matches
EP0690376A2 (de) * 1988-02-19 1996-01-03 Mitsubishi Denki Kabushiki Kaisha Digitalsignalverarbeitungseinheit
EP0695096A1 (de) * 1994-07-27 1996-01-31 Sony Corporation Vorrichtung zur Detektion von Bewegungsvektoren und zur Verschlüsselung von Bildsignalen
DE19618984A1 (de) * 1995-05-10 1996-11-14 Samsung Electronics Co Ltd Verfahren zur Bewegungsbewertung in Bilddaten sowie Vorrichtung zur Durchführung dieses Verfahrens

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0690376A2 (de) * 1988-02-19 1996-01-03 Mitsubishi Denki Kabushiki Kaisha Digitalsignalverarbeitungseinheit
EP0360698A1 (de) * 1988-09-23 1990-03-28 THOMSON multimedia Verfahren und Einrichtung zur Bewegungsabschätzung in einer sich bewegenden Bildfolge
US5406642A (en) * 1988-12-23 1995-04-11 Nec Corporation Image matching method using direction sensitivity and vector smoothing functions for correcting matches
EP0695096A1 (de) * 1994-07-27 1996-01-31 Sony Corporation Vorrichtung zur Detektion von Bewegungsvektoren und zur Verschlüsselung von Bildsignalen
DE19618984A1 (de) * 1995-05-10 1996-11-14 Samsung Electronics Co Ltd Verfahren zur Bewegungsbewertung in Bilddaten sowie Vorrichtung zur Durchführung dieses Verfahrens

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEE,Han-Kyu, et.al.: Flexible VLSI Architecture for Block-Matching Motion Estimation. In: IEICE Trans. Inf. & Syst., Vol. E79, No. 6, 1996, S.752-758 *
SIKORA,TH.: Entwicklung eines MPEG-4 Video- Standards: Das MPEG-4 Video-Verifikationsmodell. In: Fernseh- und Kino-Technik, 50. Jg., Nr. 8+9, 1996 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10143062A1 (de) * 2001-09-03 2003-04-03 Siemens Ag Verfahren und Vorrichtung zur Codierung oder Codierung und Übertragung digitaler Videoinformationen
DE10143062C2 (de) * 2001-09-03 2003-08-07 Siemens Ag Verfahren und Vorrichtung zur Codierung oder Codierung und Übertragung digitaler Videoinformationen

Similar Documents

Publication Publication Date Title
Strobach Tree-structured scene adaptive coder
DE69913990T2 (de) System zum editieren komprimierter bildsequenzen
DE69813911T2 (de) VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
US5646686A (en) Methods and apparatus for reducing drift in video decoders
DE69735402T2 (de) System und Methode zur Bewegungskompensation mit Hilfe eines Schrägziegelspeicherformats für verbesserte Effizienz
EP0794674B1 (de) Inverser Bewegungsausgleich von schneller DCT
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
EP0944245B1 (de) Hierarchischer rekursiver Bewegungsschätzer für Bewegtbildkodierer
AU748947B2 (en) Method and apparatus for inverse quantization of MPEG-4 video
Wang et al. Scalable coding of very high resolution video using the virtual zerotree
US8594189B1 (en) Apparatus and method for coding video using consistent regions and resolution scaling
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
Hu et al. Fvc: An end-to-end framework towards deep video compression in feature space
KR100267125B1 (ko) 압축 디지탈 비디오 시퀀스 복호화 및 디스플레이 방법과 압축 디지탈 비디오 정보 복호화 장치
US20170164007A1 (en) Mixed boolean-token ans coefficient coding
EP1081959B1 (de) Verfahren zum Erkennen von Zeilensprung oder progressiver Abtastung des Inhalt einer Videosequenz
Sikora MPEG-4 very low bit rate video
Sivam et al. Survey on video compression techniques for efficient transmission
Dai et al. Sparse representation with spatio-temporal online dictionary learning for promising video coding
DE19703251A1 (de) Eine flexible VLSI Architektur für Blockmatching mit variabler Blockgröße, für Teilblockkombinationen, beliebig berandete Objekte und Luminanzkorrektur
Sudhakar et al. ASABSA: adaptive shape assisted block search algorithm and fuzzy holoentropy-enabled cost function for motion vector computation
US6418240B1 (en) Multiple frame image compression and decompression of motion video
DE102011002325A1 (de) Einrichtung mit vertikalem und/oder horizontalem Cachespeicher und in einem Kodierer und/oder Dekodierer verwendete Verfahren
Van Der Schaar et al. Near-lossless complexity-scalable embedded compression algorithm for cost reduction in DTV receivers

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8127 New person/name/address of the applicant

Owner name: KUHN, PETER, DR.-ING., 87439 KEMPTEN, DE

8139 Disposal/non-payment of the annual fee