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 LuminanzkorrekturInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
- G06T7/238—Analysis of motion using block-matching using non-full search, e.g. three-step search
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/96—Tree coding, e.g. quad-tree coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
Description
Die Erfindung betrifft eine Vorrichtung entsprechend dem Oberbegriff des Anspruchs 1.
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).
"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.
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 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).
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).
- - 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.
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.
Block Matching, Luminanzkorrektur, Quadtree, VLSI implementierung, Video Kompression
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.
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.
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.
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).
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)
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Eine Beispielimplementierung als VLSI wurde mit einer 0.5 µm CMOS Technik durchgeführt. Die Größe einiger
Module ist in Fig. 20 angegeben:
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 |
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 |
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.
[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
[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)
- 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). - 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.
- 1.2 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß variable Blockgrößen verwendet werden.
- 1.3 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß Teilblockkombinationen (Subblock-Cluster) ver wendet werden.
- 1.4 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß Teilblockkombinationen (Subblock-Cluster) ver schiedener Levels verwendet werden.
- 1.5 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß als Fehlermaß die SAD (Summe der absoluten Differenzen) in Anspruch genommen wird.
- 1.6 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß als Fehlermaß die Summe der quadratischen Dif ferenzen verwendet wird.
- 1.7 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zur Fehlermaßberechnung mit Luminanzkorrek tur ein eindimensionales Prozessorarray verwendet wird.
- 1.8 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zur Fehlermaßberechnung mit Luminanzkorrek tur ein zweidimensionales Prozessorarray (2D-Array) verwendet wird.
- 1.9 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß zur Fehlermaßberechnung mit Luminanzkorrek tur ein mehrdimensionales Prozessorarray verwendet wird.
- 1.10 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der vorgegebene Korrekturwert iterativ be stimmt wird.
- 1.11 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß mehrere vorgegebene Korrekturwerte gemäß der VLC-Tabelle sortiert werden.
- 1.12 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß mehrere vorgegebene Korrekturwert gemäß der VLC-Tabelle sortiert werden und diese linear abgearbeitet wird.
- 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.
- 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.
- 1.15 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der vorgegebenen Korrekturwerte variable ist.
- 1.16 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Anzahl der vorgegebenen Korrekturwerte fest ist.
- 1.17 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß anstelle eines Addiererbaums ein program mierbarer Prozessor eingesetzt wird.
- 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.
- 1.19 Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß der Korrekturwert mittels Addiererbäume be rechnet wird.
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)
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)
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 |
-
1997
- 1997-01-29 DE DE19703251A patent/DE19703251A1/de not_active Withdrawn
Patent Citations (5)
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)
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)
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 |