DE102011056997A1 - Vorrichtung zur digitalen Bildstabilisierung - Google Patents

Vorrichtung zur digitalen Bildstabilisierung Download PDF

Info

Publication number
DE102011056997A1
DE102011056997A1 DE102011056997A DE102011056997A DE102011056997A1 DE 102011056997 A1 DE102011056997 A1 DE 102011056997A1 DE 102011056997 A DE102011056997 A DE 102011056997A DE 102011056997 A DE102011056997 A DE 102011056997A DE 102011056997 A1 DE102011056997 A1 DE 102011056997A1
Authority
DE
Germany
Prior art keywords
vector
motion
frame
feature point
motion vectors
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.)
Pending
Application number
DE102011056997A
Other languages
English (en)
Inventor
Auf Teilnichtnennung Antrag
Matthias Braun
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102011056997A1 publication Critical patent/DE102011056997A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • 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/20021Dividing image into blocks, subimages or windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Abstract

Ein Verfahren zur digitalen Bildstabilisierung (DIS) enthält einen Merkmalspunktsortieralgorithmus zum Auswählen von optimalen Merkmalspunkten und einen rechnerisch effizienten Kachelvektor-basierenden hierarchischen Blockmatching-Suchalgorithmus zum Herleiten von Bewegungsvektoren der ausgewählten Merkmalspunkte und einen Merkmalspunkt-Bewegungsvektor-Gruppier-/Vergleichs-Prozess zum Gruppieren von Paaren der ausgewählten Merkmalspunkte basierend auf deren Vektorbetragsverhältnis und deren Winkeldifferenz.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht unter 35 U.S.C. §120 die Priorität der beim U.S. Patent- und Markenamt am 23. Dezember 2010 eingereichten vorläufigen U.S. Anmeldungen Nr. 61/426,970 und 61/426,975. Die Offenbarung der beiden vorläufigen Anmeldungen ist durch Bezugnahme hierin mitaufgenommen.
  • 1. Technisches Gebiet
  • Das vorliegende erfinderische Konzept hierin betrifft eine digitale Bildstabilisierung (DIS), und insbesondere ein Verfahren zum Erfassen, Auswählen und Gruppieren von Merkmalspunkten für eine digitale Bildstabilisierung.
  • 2. Diskussion des Standes der Technik
  • Digitalkameras, digitale Videokameras und tragbare Vorrichtungen, welche eine derartige Kameraerfassung enthalten, werden oftmals angewandt, um Bilder oder Videos zu erfassen, während die Kamera in der Hand einer Benutzers bedient wird. Somit kann die Videokamera in den Händen des Benutzers während einer Aufnahme des Bildes oder des Videos geschüttelt oder gezittert werden. Das Zittern kann eine horizontale Komponente, eine vertikale Komponente und eine rotatorische Komponente enthalten. Die Rotation kann in etwa eine Achse senkrecht zur Brennebene der Bilderfassungsschaltung, oder in etwa eine Achse parallel zur Brennebene der Bilderfassungsschaltung, oder in etwa eine Achse schräg zwischen einer senkrechten Achse und einer parallelen Achse sein. Das Zittern kann das handerfasste Video für den Betrachter störend oder verwirrend darstellen, und somit ist es wünschenswert, digitale Schaltungen zu verwenden, um eine Kamerabahn digital einzuschätzen (d. h. das Zittern zwischen jedem Paar von aufeinanderfolgenden Rahmen zu erfassen) und um das Zittern aus einer Sequenz von Videorahmen der gleichen Szene herauszufiltern. Die Schaltungen, die verwendet werden, um eine Kamerabahn zwischen aufeinanderfolgenden Videorahmen zu schätzen und um das durch die Kamerabahn verursachte Zittern aus einer Sequenz von Videorahmen herauszufiltern, kann innerhalb der Videokamera selbst enthalten sein und aktiviert werden, um in Echtzeit das Zittern vor einem Speichern der erfassten Videorahmen zu entfernen (z. B. vor oder während einer MEPG-Kodierung, falls die Videokamera einen Echtzeit-MEPG-Kodierer enthält). Alternativ kann die Schaltung, die verwendet wird, um eine Kamerabahn zwischen aufeinanderfolgenden Videorahmen zu schätzen und um das Zittern aus einer gespeicherten Sequenz von Videorahmen herauszufiltern, ein durch eine Software, die ein digitales Bildstabilisierungs(DIS)-Verfahren verkörpert, gesteuerter Allzweck-Mikrocomputer sein oder kann eine bestimmte Hardware sein, wie z. B. ein MEPG-Videoenkoder, der in einer ASIC (anwendungsspezifische integrierte Schaltung) verkörpert ist, die ein digitales Bildstabilisierungs(DIS)-Verfahren ausführt.
  • Das durch eine stabile, entweder stationäre oder bewegende Videokamera erzeugte Video enthält hauptsächlich glatte Bewegungen (Translation, Rotation) in dem erfassten Video. Andererseits erzeugt eine wacklige Videokamera ein Video mit hochfrequenten Zittern (translatorisch und/oder rotatorisch) überall in den Videobildern.
  • Digitale Bildsequenzen, die von physischen Bildvorrichtungen erfasst werden, zeigen oft unerwünschte hochfrequente Zitterbewegung. Der in einer Bildsequenz gegenwärtige Betrag einer Zitterbewegung hängt von der Physik der Bilderfassungsvorrichtung relativ zu den Objekten in der erfassten Sequenz ab. Die Tiefe der Szene und die Instabilität der Bildrechnerhaltung abhängig von dem Gewicht, Trägheit, Gleichgewicht der Halterung kombiniert, erzeugen unerwünschte globale Zitterbewegung.
  • Ein digitales Bildstabilisierungs(DIS)-System schätzt zunächst eine unerwünschte (unbeabsichtigte) Bewegung und wendet anschließend Korrekturen an der Bildsequenz an. Der visuelle Effekt eines stabilisierten Videos hängt im hohen Maße von der Qualität der Kamerabahnschätzung ab. Digitale Bildstabilisierungs(DIS)-Algorithmen verwenden gut nachverfolgbare Merkmalspunkte, um die Zitterbewegung zwischen zwei aufeinanderfolgende Rahmen zu schätzen. Eine digitale Videostabilisierung verwendet Hardware- und/oder Softwareverfahren zum Erzeugen eines räumlich stabilisierten Videos von einem ansonsten instabilen Video, das durch eine wacklige Videokamera verursachte, unbeabsichtigte, ruckartige Bewegungen enthalten. Bei der herkömmlichen DIS-Technologie wird eine Kamerabewegung durch Analysieren von Bewegungsvektoren von verschiedenen Punkten in der Szene erfasst. Allerdings können die Bewegungsvektoren durch Objektbewegungen sowie einer Kamerabewegung verursacht werden.
  • Es gibt Funktionen, die einen numerischen Score für jeden Bildpunkt des Rahmens bereitstellen, die zeigen, wie geeignet dieser Punkt als ein Merkmalspunkt ist, der in zeitlich angrenzenden Rahmen erfassbar ist. Ein Beispiel einer derartigen Funktion ist der Harris Corner Detektor. Allerdings ist der Betrag der Merkmalspunkte typischerweise sehr unterschiedlich für unterschiedliche Teile des Bildes. Die DIS-Verfahren können eine globale Schwelle verwenden, um mit jedem numerischen Bildpunktscore verglichen zu werden, dass nicht notwendigerweise eine optimale Verteilung von Merkmalspunkten zur Folge hat. Somit kann es zu wenige Merkmalspunkte in Bereichen von wenig Kontrast geben (z. B. blauer Himmel ohne jegliche Wolken verursacht wenige oder keine Merkmalspunkte), während in Bereichen mit viel Struktur die Merkmalspunkte zu dicht aufeinander liegen können. Die Missverteilung der Merkmalspunkte kann dann die rechnerische Belastung der Berechnung von redundanten Bewegungsvektoren der Merkmalspunkte, die zu nahe beieinander liegen, erhöhen und eine Bereitstellung von genauen Bewegungsvektoren kann fehlschlagen.
  • Bei einer Implementierung eines digitalen Bildstabilisierungs(DIS)-Verfahren ist es wünschenswert, den Rechenaufwand zu minimieren, um den Leistungsverbrauch der Schaltung zu reduzieren und um die benötigte Zeit, um das DIS-Verfahren auszuführen, zu reduzieren. Es ist zudem wünschenswert, die Kamerabahn zu erfassen und zu messen, und das Zittern genau zu beschreiben, sodass das Zittern für das gespeicherte/angezeigte Video korrekt kompensiert und korrekt entfernt werden kann.
  • In der Mathematik ist die affine Geometrie die Lehre der geometrischen Eigenschaften, welche durch Affintransformationen, d. h. nicht-singuläre lineare Transformationen und Translationen, unverändert bleiben. Ein mathematisches System von durch numerischen Koeffizienten definierten Gleichungen, die als Affinmatrix bezeichnet werden, wurden entwickelt, um Seitwärts- (auf/ab), Dreh- und Skalar-(z. B. Ranzoomen oder Herauszoomen)-Bewegung, die zwischen jedem Paar von aufeinanderfolgenden Rahmen oder Zwischenabschnitte davon (z. B. bewegende Objekte in den Rahmen) erfasst wird, zu beschreiben.
  • Somit kann das Zittern durch eine erste Affintransformationsmatrix betreffend jeglicher tatsächlich-stationärer Objekte (z. B. Felsen, Tische, geparkte Fahrzeuge, Berge, Sonne) in der Szene, die als Haupttransformation oder Globaltransformation bezeichnet werden, beschrieben werden, während irgendwelche bewegenden Objekte (z. B. Vögel, Leute, Bälle, bewegende Fahrzeuge) in dem Rahmen durch zusätzliche Affinmatrizen beschrieben werden können.
  • Die Haupttransformation (Hauptzwischenrahmen-Transformation), die eine Kamerabewegung anzeigt, welche durch das Zittern einer Benutzerhand verursacht werden kann, kann durch Erfassen eines oder mehrerer interessanter Orte (als „Merkmalspunkte” bezeichnet), die zu den tatsächlich-stationären Objekten in jedem Rahmen zugeordnet sind, welche zur Zeit t erfasst werden, und anschließend durch Suchen für die gleichen Merkmalspunkte in einem zeitlich angrenzenden Rahmen (t + 1), und durch Berechnen eines Bewegungsvektors für jeden der Merkmalspunkte berechnet werden. Eine Mehrzahl von Bewegungsvektoren, die zu einem besonderen Objekt zugeordnet (gruppiert) sind, werden anschließend verwendet, um die Affintransformation von deren Objekt zu berechnen, die dessen erfasste Bewegung entsprechend der Affingleichung definiert: x' = sx·x + ry·y + tx y' = rx·x + sy·y + ty
  • Die Bewegungsvektoren von Merkmalspunkten zwischen aufeinanderfolgenden Rahmen können mit verschiedenen in dem Gebiet der Videokomprimierung angewandten Suchverfahren berechnet werden. Derartige Suchverfahren können einen mathematischen Vergleich von Makroblöcken, wie z. B. die Summe der absoluten Differenzen (SAD), die mittlere absolute Differenz (MAD) oder der mittlere quadratische Fehler (MSE) in zeitweise angrenzenden Rahmen verwenden (z. B. Suchen der Position des Merkmalspunkts in einem Referenzrahmen (t + 1) durch Vergleichen des 8×8 Bildpunktmakroblocks, der den Merkmalspunkt in dem aktuellen Rahmen mit einer Mehrzahl von 8×8 Bildpunktmakroblöcken in einem Suchbereich des über die Position des Merkmalpunkts zentrierten Referenzrahmens (t + 1) enthält. Der gemessene Betrag und Richtung der Versetzung eines über einen Merkmalspunkt zentrierten Makroblocks zwischen zeitlich angrenzende Rahmen (t und t + 1) wird als der „Bewegungsvektor” des Merkmalspunkt bezeichnet. Die Bewegungsvektorschätzverfahren des verwandten Standes der Technik mit Blockmatching-Algorithmen (BMA) mit verschiedenen ausgewählten Bereichen werden in den US Patenten 6,895,361 durch Yang und in 7,680,186 durch Lee beschrieben, die durch Bezugnahme hierin mitoffenbart werden.
  • KURZFASSUNG
  • Ein Aspekt des erfinderischen Konzepts stellt einen hocheffizienten Prozess des Identifizieren von Merkmalspunkten und vom Herleiten von Bewegungsvektoren für die Merkmalspunkte bereit, die sich in einer kohärenten Weise aufgrund einer globalen Bewegung oder einer Kamerabewegung bewegen, während sie zur gleichen Zeit für DIS-Zwecke genau sind.
  • Gute Merkmalspunkte für den DIS-Algorithmus sind Punkte, die nicht eindeutige Bewegungsvektoren ergeben, wenn ein geeigneter Bewegungsschätzalgorithmus angewandt wird. Um Merkmalspunkte in einem Bild zu identifizieren, schätzt ein auf Bildpunkte von Videorahmen angewandter Harris Corner Detektor, wie gut jeder Bildpunkt als Merkmalspunkt geeignet ist. Unterschiedliche Bereiche des Bildes weisen eine unterschiedliche Dichte von identifizierten Merkmalspunktkandidaten auf. Ein offenbartes Verfahren von Rasterabtastreihenfolgeauswahl und -sortieren stellt eine endgültige Merkmalspunktverteilung basierend auf kleinen Bereichen des Videorahmens, die als Kacheln bezeichnet werden, bereit, bei denen die maximale Anzahl von Merkmalspunkten linear mit der Abweichung σ2 der Luminanzbilddaten der Kachel wächst.
  • Jeder Videorahmen wird in eine kleine Anzahl j×k von Kacheln aufgeteilt. Die Anzahl j×k von Kacheln kann von 4×4 für SD-Video zu 6×6 oder größer für HD-Video reichen; andere Zahlen im Bereich von (4..8)×(4..8) sind auch möglich und können vorteilhaft sein. Die Kachelgröße wird derart gewählt, dass ausreichend große Objekte, die sich unabhängig bewegen, die Mehrheit der zumindest einen Kachel abdecken, sodass deren Bewegung für DIS-Zwecke erfasst werden kann, während die Bewegung von kleinen Objekten ignoriert wird.
  • Kacheln mit interessanteren Bilddaten und deshalb entsteht ein Bedürfnis für mehr Merkmalspunkte, um eine höhere Abweichung σ2 aufzuweisen. Der Merkmalspunktsortieralgorithmus findet einen programmierbaren Minimalabstand zwischen Merkmalspunkten, wobei jedoch nur ein minimaler Hardwarespeicher erforderlich ist.
  • Ein hierarchischer Bewegungsschätzalgorithmus kann verwendet werden, um die Merkmalspunktbewegung von einem Rahmen zu einem Rahmen zu schätzen, bei der der programmierbare Bewegungsbereich für die späteren Suchwerte absichtlich klein ist, wodurch eine Großobjekt- oder Globalbewegung gegenüber einer Lokalbewegung bevorzugt wird. Folglich wird die erforderliche Anzahl von Operationen minimiert, während das Ergebnis für digitale Bildstabilisierungsanwendungen ausreichend genau ist.
  • Für jeden der Merkmalspunkte, der ausgewählt wurde, z. B. durch einen Auswahlalgorithmus, wird dessen Bewegungsvektor durch Blockmatching innerhalb eines kleinen Bereichs von verwendeten Startvektoren bestimmt. Die Startvektoren sind die Kachelbewegungsvektoren der Kacheln, die den aktuellen Merkmalspunkt und die umliegenden Kacheln (z. B. oben, unten, links, rechts) enthält. Die Kachelbewegungsschätzung ist der erste Schritt in dem Prozess zum Herleiten von Bewegungsvektoren der Merkmalspunkte. Eine Kachelbewegungsschätzung wird basierend auf nicht-überlappenden Kacheln ausgeführt, die den zentralen Abschnitt des Eingaberahmens abdecken (z. B. werden die gleichen Kacheln in dem Merkmalspunktsortieralgorithmus verwendet). Für die Kachelbewegungsschätzung von jeder der Kacheln wird ein Blockmatching mit einer vollständigen Suche auf einem downgesampelten Bild ausgeführt.
  • Der aktuelle Rahmen wird durch einen zweiten subgesampelten Faktor fs2 von vier bis acht für Standardauflösungs(SD)-Video oder acht bis sechzehn für Hochauflösungs(HD)-Videos subgesampelt. In dieser subgesampelten Domain wird ein Blockmatching mit einer vollständigen Suche für jede Kachel ausgeführt und der Kachelvektor wird für eine spätere Verwendung gespeichert (z. B. als Startvektor zum Herleiten der Bewegungsvektoren der Merkmalspunkte). Es wird für jede Kachel ein Bewegungsvektor geschätzt, was durch eine vollständigen Suche mit der geringsten Auflösung, die durch einen zweiten subgesampelten Faktor fs2 subgesampelt wird, von subgesampelten Luminanzdaten ausgeführt wird und der Bewegungsvektorkandidat, der die kleinste SAD hat, wird jeder Kachel zugeordnet. Gemäß einer Ausführungsform kann für die Grenzkacheln die Suche auf einen verfügbaren Suchbereich beschränkt werden, wodurch kein Bewegungsvektor, der den Referenzblock veranlasst, (räumlich) außerhalb der Suchfläche zu sein, erzeugt werden wird. Relativ zu der verwendeten Auflösung wird die Kachelbewegungssuche halbe Bildpunkt (half-pel)-genaue Vektoren erzeugen: Die Suchfläche wird durch eine einfache bilineare Interpolation upgesampelt. Dies nutzt lediglich sehr geringen lokalen Speicher, wodurch Speicher und Logikbereich in einer VLSI-Implementierung gespeichert wird.
  • Ein Aspekt des erfinderischen Konzepts stellt ein digitales Bildstabilisierungs(DIS)-Verfahren bereit, das einen Merkmalspunkt-Bewegungsvektor-Gruppierprozess zum Gruppieren von Paaren von Merkmalspunkten basierend auf deren Bewegungsvektorbetragsverhältnis und der Winkeldifferenz zwischen deren Bewegungsvektoren enthält. Ein Verfahren zum Verarbeiten von Videodaten wird bereitgestellt, aufweisend: Empfangen von ersten Bilddaten, die einen ersten Bilderrahmen darstellen; Identifizieren einer Mehrzahl von Merkmalspunkten in dem ersten Rahmen; Empfangen von zweiten Bilddaten, die einen zweiten Rahmen darstellen; Herleiten eines Bewegungsvektors entsprechend jedem der Merkmalspunkte; Auswählen eines ersten aus den Bewegungsvektoren als aktuellen Vektor A und Auswählen eines zweiten aus den Bewegungsvektoren als aktuellen Vektor B; und Vergleichen von Vektor A mit Vektor B basierend auf deren Vektorbetragsverhältnis und deren Winkeldifferenz.
  • Das Verfahren kann ferner aufweisen: Einstellen einer Betragsverhältnisschwelle und einer Winkeldifferenzschwelle; und Zusammengruppieren von Vektor A und Vektor B, falls deren Vektorbetragsverhältnis innerhalb der Betragsverhältnisschwelle fällt und deren Winkeldifferenz innerhalb der Winkeldifferenzschwelle fällt. Gemäß einem weiteren Aspekt, aufweisend: Nicht-Zusammengruppieren von Vektor A und Vektor B, falls deren Vektorbetragsverhältnis außerhalb der Betragsverhältnisschwelle fällt oder falls deren Winkeldifferenz außerhalb der Winkeldifferenzschwelle fällt.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts wird eine Videoverarbeitungsschaltung bereitgestellt, aufweisend: eine Merkmalspunktschaltung, die ausgebildet ist zum Identifizieren einer Mehrzahl von Merkmalspunkten in einem ersten Rahmen, und zum Herleiten eines Bewegungsvektors zwischen dem ersten Rahmen und einem zweiten Rahmen für jeden Merkmalspunkt; eine Paarungssteuerung, die ausgebildet ist zum Auswählen eines der Bewegungsvektoren als aktuellen Vektor A (xa, ya), und zum Auswählen eines anderen der Bewegungsvektoren als aktuellen Vektor B (xb, yb); einen Betragsverhältnis-Vergleicher, der ausgebildet ist zum Vergleichen eines Vektors A mit einem Vektor B basierend auf deren Vektorbetragsverhältnis; und einen Vektorwinkel-Vergleicher, der ausgebildet ist zum Vergleichen eines Vektors A mit einem Vektor B basierend auf deren Vektorwinkeldifferenz.
  • Gemäß einer beispielhaften Ausführungsform wird ein Verfahren zum Verarbeiten von Videodaten bereitgestellt, aufweisend: Schätzen eines Bewegungsvektors für jeden Merkmalspunkt in einem ersten Rahmen der Videodaten; Gruppieren von Bewegungsvektoren in Bewegungsvektorgruppen basierend auf Vektorbetragsverhältnisse und Winkeldifferenzen; und Auswählen einer Gruppe, die Bewegungsvektoren enthält, welche die Bewegung eines stationären Objekts innerhalb einer Szene des ersten Rahmens darstellen. Das Verfahren kann ferner aufweisen: Schätzen eines Bewegungsvektors für jede einer Mehrzahl von Kacheln, welche von einem Abschnitt des ersten Rahmens aufgeteilt wird, mit subgesampelten Luminanzdaten, und Auswählen des Kachelbewegungsvektorkandidaten mit der kleinsten Summe der absoluten Differenz (SAD); und Gruppieren von Kachelbewegungsvektoren in Kachelbewegungsvektorgrupperi basierend auf Vektorbetragsverhältnisse und Winkeldifferenzen.
  • Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts ist eine Kamera bereitgestellt, aufweisend: eine Bilderfassungsschaltung, die ausgebildet ist zum Erfassen von Bildern und zum Umwandeln einer Mehrzahl von Bildern in einen ersten Rahmen und in einen zweiten Rahmen von Bilddaten; und einen Videoverarbeitungsschaltungschip, aufweisend: eine Merkmalspunktschaltung, die ausgebildet ist zum Identifizieren einer Mehrzahl von Merkmalspunkten in dem ersten Rahmen und zum Herleiten eines Bewegungsvektors zwischen dem ersten Rahmen und dem zweiten Rahmen für jeden Merkmalspunkt; eine Paarungssteuerung, die ausgebildet ist zum Auswählen jedes Paares von Bewegungsvektoren unter den Bewegungsvektoren der Merkmalspunkte; einen Betragsverhältnis-Vergleicher, der ausgebildet ist zum Vergleichen jedes Paares von Bewegungsvektoren basierend auf deren Vektorbetragsverhältnis; und einen Vektorwinkel-Vergleicher, der ausgebildet ist zum Vergleichen jedes Paares von Bewegungsvektoren basierend auf deren Vektorwinkeldifferenz.
  • Beispielhafte Ausführungsformen des erfinderischen Konzepts werden nachstehend ausführlicher mit Bezug auf die begleitenden Figuren beschrieben. Das erfinderische Konzept kann allerdings in verschiedenen Ausführungen verkörpert werden und soll nicht beschränkend auf die hier vorstehenden Ausführungsformen ausgelegt werden. Vielmehr werden diese Ausführungsformen so bereitgestellt, dass diese Offenbarung durchgängig und vollständig sein wird und vollständig den Schutzbereich des erfinderischen Konzepts dem Fachmann übermitteln wird. Gleiche Bezugszeichen beziehen sich durchgehend auf gleiche Elemente.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die begleitenden Figuren sind enthalten, um ein zusätzliches Verständnis des erfinderischen Konzepts zu schaffen, und sind darin mit aufgenommen und bilden einen Teil dieser Beschreibung. Die Figuren zeigen beispielhafte Ausführungsformen des erfinderischen Konzepts und dienen zusammen mit der Beschreibung dazu, Grundsätze des erfinderischen Konzepts zu erläutern. Es zeigen:
  • 1A bis 1F eine Ansicht eines aktuellen Rahmens und eines Referenzrahmens und deren ausgewählte Merkmalspunkte und Bewegungsvektoren zur Darstellung eines Verfahrens einer digitalen Bildstabilisierung entsprechend einer beispielhaften Ausführungsform des erfinderischen Konzepts;
  • 2A ein Diagramm des erfassten Rahmens von 1E, der den aktuellen Rahmen Ft von 1A enthält und der in einen Grenzbereich und eine Mehrzahl j×k von Kacheln in einem Kernbereich entsprechend eines Schritts des in 1A bis 1F dargestellten DIS-Verfahrens aufgeteilt ist;
  • 2B ein Diagramm einer Kachel des Kernbereichs des Bilderrahmens von 2A, das ein Auswählen, Ablehnen und Annullieren von Merkmalspunkten entsprechend der Schritte des in 1A bis 1F dargestellten DIS-Verfahrens darstellt;
  • 3 ein Diagramm von Schaltungsblöcken, die ausgebildet sind zum Ausführen von DIS-Prozessen entsprechend den Ausführungsformen des vorliegenden erfinderischen Konzepts auszuführen;
  • 4A und 4B Flussdiagramme eines Verfahrens zum Identifizieren und Auswählen einer Mehrzahl von Merkmalspunkten in jeder Kachel des Bilderrahmens von 1A und 2A zum Ausführen von Schritten des in 1A bis 1F dargestellten DIS-Verfahrens;
  • 5 eine Ansicht des aktuellen Rahmens Ft von 1A, der mit darauf überlagerten Kachelbewegungsvektoren zum Anzeigen von Bewegungsvektorberechnungsschritte des in 1A bis 1F dargestellten DIS-Verfahrens downgesampelt wird;
  • 6 eine Ansicht eines Abschnitts einer Kachel in dem downgesampelten Rahmen von 5, die ein Verwenden der Kachelbewegungsvektoren von 5 als Startvektoren für eine Blockmatchingsuche darstellt, um den Bewegungsvektor eines ausgewählten Merkmalspunkts, der das in 1A bis 1F dargestellte DIS-Verfahren verwenden wird, zu berechnen;
  • 7 ein Flussdiagramm eines Verfahrens zum Berechnen der Bewegungsvektoren von ausgewählten Merkmalspunkten in dem Bilderrahmen von 1A und 2A zum Ausführen von Schritten des in 1A bis 1F dargestellten DIS-Verfahrens;
  • 8A ein Diagramm von Bewegungsvektoren von zwei Merkmalspunkten des gleichen, tatsächlich-stationären Objekts in einer Videoszene bei dem gleichen Abstand von der Kamera, wenn die Kamera lediglich eine translatorische Bewegung aufweist und keine rotatorische Komponente;
  • 8B ein Diagramm von Bewegungsvektoren von zwei Merkmalspunkten von tatsächlich-stationären Objekten bei dem gleichen Abstand von der Kamera, wenn die Kamera eine rotatorische Komponente aufweist;
  • 8C zeigt ein Diagramm von Bewegungsvektoren von zwei Merkmalspunkten des gleichen, tatsächlich-stationären Objekts bei unterschiedlichen Abständen von der Kamera, wenn die Kamera lediglich eine translatorische Bewegung aufweist und keine rotatorische Komponente;
  • 9A und 9B Diagramme von zwei Paaren von Bewegungsvektoren von Merkmalspunkten von tatsächlich-stationären Objekten in einer Videoszene zum Darstellen, dass jedes Paar den gleichen Betrag einer Vektordifferenz aufweisen kann, selbst während die Richtungen und Beträge von allen vier Bewegungsvektoren unterschiedlich sind;
  • 10 drei Vektordiagramme, welche die Berechnung einer normierten Vektordifferenz für das indirekte Maß einer Winkeldifferenz darstellen, welche für ein Merkmalspunktgruppieren des in 1A bis 1F dargestellten DIS-Verfahrens verwendet wird;
  • 11 ein Flussdiagramm eines Gruppieralgorithmus mit einer normierten Vektordifferenz von 10A, 10B, 10C für das indirekte Maß einer Winkeldifferenz zwischen den Bewegungsvektoren der ausgewählten Merkmalspunkte in dem Bilderrahmen von 1A und 2A zum Ausführen eines Vektorgruppierschritts von 1D des in 1A bis 1F dargestellten DIS-Verfahrens;
  • 12 ein Diagramm des Betrags |(a – b)| einer normierten Vektordifferenz (a – b) über das Betragsverhältnis |b| einer normierten Vektordifferenz (a – b) in Abhängigkeit einer Winkeldifferenz θ, das die Verfügbarkeit einer Annäherung zur Verwendung in einem Schritt des Gruppieralgorithmus von 11 darstellt; und
  • 13 ein Blockdiagramm einer Merkmalspunkt-Gruppierschaltung, die eine Gruppieralgorithmusschaltung 1310 aufweist, die ausgebildet ist zum Ausführen des Merkmalspunktgruppieralgorithmus von 11.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • 1A bis 1F zeigen Ansichten eines aktuellen Rahmens und eines Referenzrahmens und deren ausgewählte Merkmalspunkte und Bewegungsvektoren zum Darstellen der Verfahrenschritte einer digitalen Bildstabilisierung entsprechend einer beispielhaften Ausführungsform des erfinderischen Konzepts.
  • 1A zeigt zwei aufeinanderfolgende Videorahmen, einen aktuellen Rahmen Ft und einen Referenzrahmen Ft+1, einer Szene. Die Szene enthält ein stationäres Objekt, z. B. Hügel im Vordergrund, eine Stange, Berge und die Sonne, und ein bewegendes Objekt, z. B. einen Vogel links oben. Der aktuelle Rahmen Ft und der Referenzrahmen Ft+1 sind Abschnitte von entsprechenden aufeinanderfolgenden erfassten Rahmen mit einer großen Fläche (wie in 1E dargestellt). Die großen erfassten Rahmen sind durch einen Bildsensor erfasste Rohbilder vor einer digitalen Bildstabilisierung (DIS). Der Referenzrahmen Ft+1 wird relativ zu dem aktuellen Rahmen Ft aufgrund einer durch eine Zitterbewegung verursachten Kamerabahn gedreht und umgerechnet. Die Dimensionen des erfassten Rahmens (siehe 1E) ist typischerweise durch die Hardwaredimensionen des physikalischen Bildsensors (nicht gezeigt) der Videokamera vorbestimmt. Die Dimensionen des aktuellen Rahmens Ft und des Referenzrahmens Ft+1, können dynamisch ausgewählt werden, um das Auftreten von „Überauslenkungen” des aktuellen Rahmens Ft über die Grenzen des erfassten Bildes aufgrund einer Zitterbewegung der Kamera zu vermeiden oder zu minimieren.
  • 1B zeigt eine Mehrzahl von ausgewählten Merkmalspunkten (Kreise) in dem aktuellen Rahmen Ft, die den tatsächlich-stationären Objekten und dem bewegenden Objekt in der Szene zugeordnet sind. Der aktuelle Rahmen Ft wird in eine Mehrzahl von rechteckigen Kacheln aufgeteilt und jede Kachel weist zumindest einen ausgewählten Merkmalspunkt auf. Die in 1B gezeigten ausgewählten Merkmalspunkte können durch Ausführen der Schritte eines in 2A, 2B, 4A und 4B dargestellten Verfahrens und/oder durch die Schaltung von 3 identifiziert und ausgewählt werden. Der aktuelle Rahmen und der Referenzrahmen werden in dem Speicher 350 der Schaltung von 3 gespeichert, während die in 1B dargestellten Merkmalspunkte durch die Schritte des in 2A, 2B, 4A und 4B dargestellten Verfahrens identifiziert und ausgewählt werden.
  • 1C zeigt jeden ausgewählten Merkmalspunkt des aktuellen Rahmens Ft mit einem Bewegungsvektor (Pfeil). Die Bewegungsvektoren der in 1C dargestellten ausgewählten Merkmalspunkte kennen durch Ausführen der Schritte eines in 6 und 7 dargestellten Verfahrens ausgeführt werden.
  • 1D zeigt, dass Bewegungsvektoren in der Szene gruppiert wurden (z. B. Gruppe A, Gruppe B, Gruppe C). Die Bewegungsvektoren von tatsächlich-stationären Objekten in der Szene (Gruppe B und Gruppe C) wurden durch eine Kamerabewegung (z. B. Zittern) verursacht. Das Gruppieren der Bewegungsvektoren der ausgewählten Merkmalspunkte, wie in 1D gezeigt, kann durch die Schritte des in 10A, 10B, 10C und 11 dargestellten Verfahrens ausgeführt werden, in dem Bewegungsvektoren basierend auf einem Paarungsalgorithmus mit dem Betragsverhältnis und der normierten Vektordifferenz gepaart/gruppiert (enthalten oder ausgeschlossen) werden.
  • 1B zeigt den Referenzrahmen Ft+1 im größeren Zusammenhang mit einer größeren erfassten Rahmenausgabe durch einen Bildsensor (nicht gezeigt). Die Position des Referenzrahmens Ft+1 wird mit den Bewegungsvektoren von der Gruppe B und der Gruppe C von tatsächlich-stationären Objekten, wie in 1D dargestellt, bestimmt, um den Affinkoeffizienten des Referenzrahmens Ft+1 zu definieren. Die Bilddaten des erfassten Rahmens außerhalb der Grenze des Referenzrahmens können den Schaltungen zur Verfügung gestellt werden, welche die Schritte eines in 6 und 7 dargestellten Verfahrens ausführen, durch das die Bewegungsvektoren der Gruppe B und der Gruppe C berechnet werden.
  • 1F zeigt den Referenzrahmen Ft+1 in der Position, wie er durch den Bildsensor (nicht gezeigt) empfangen worden wäre, wenn nicht ein Zittern einer Kamerabewegung gewesen wäre, welche durch die Bewegungsvektoren von tatsächlich-stationären Objekten, wie in 1D dargestellt, angezeigt wird. Die Affinkoeffizienten des Referenzrahmens Ft+1 wurden durch eine Kompensationsschaltung (nicht gezeigt) angewandt, um den Referenzrahmen Ft+1 zu zu rotieren und zu verschieben, um die Zitterbewegung der Kamera zu korrigieren.
  • MERKMALSIDENTIFIKATION, SORTIEREN UND VERTEILUNG
  • 2A zeigt in Diagramm des erfassten Rahmens des aktuellen Rahmens Ft (siehe 1E), der in einem Grenzbereich und einer Mehrzahl von j×k Kacheln in einem Kernbereich aufgeteilt ist, um eine Merkmalspunktidentifikation und ein Sortieren entsprechend eines Schritts des in 1A bis 1F dargestellten DIS-Verfahrens zu ermöglichen. Die Grenzlinien zwischen dem Grenzbereich und dem Kernbereich können durch eine Hardware oder durch eine Software unabhängig von einen empfangenen Bilderdateninhalt vorbestimmt werden, während die Grenzen des aktuellen Rahmens Ft dynamisch basierend auf dem Grad der Zitterkamerabewegung, der durch einen empfangenen Bilderdateninhalt angezeigt wird, ausgewählt werden können, um z. B. Überauslenkungen des aktuellen Rahmens zu verhindern oder zu reduzieren. Somit kann der Kernbereich den Dimensionen und der Position des in 1A gezeigten aktuellen Bilderrahmens Ft entsprechen oder nicht.
  • Jeder erfasste Videorahmen wird in eine kleine Anzahl von nicht-überlappenden Kacheln (z. B. 4×4 Kacheln für Standardauflösung und 6×6 oder längere Kacheln für eine Hochauflösung) zum Zwecke einer algorithmischen Auswahl von Merkmalspunkten, die eine gute Merkmalspunktverteilung bereitstellen, welche für eine digitale Bildstabilisierung geeignet ist, aufgeteilt. Unterschiedliche Bereiche des Bildes können eine unterschiedliche Dichte eines geeigneten Merkmalspunkts aufweisen. In extremen Fällen kann ein Bereich des Rahmens keine geeigneten Merkmalspunkte aufweisen, wie z. B. in dem Fall eines blauen Himmels ohne jeglicher Wolken. In anderen Bereichen können die potenziellen Merkmalspunkte sehr dicht sein. Wenn eine global-basierte Schwelle verwendet wird, um alle Merkmalspunkte zu identifizieren und auszuwählen, neigen die Merkmalspunkte dazu, in kleinen Bereichen des Bildes konzentriert zu sein, was zu schlechten DIS-Ergebnissen führt. Es ist wünschenswert, mehr Merkmalspunkte in Bildbereichen aufzuweisen, bei denen sich mehr Struktur befindet, da es möglicherweise interessantere Bewegung gibt. In diesen Dichtebereichen gibt es ein weiteres Problem, nämlich wie gewährleistet wird, dass nicht alle Merkmalspunkte zusammen liegen. Somit stellt ein Aspekt des vorliegenden erfinderischen Konzepts ein effizientes Verfahren bereit, um einen Minimalabstand (MIN_DIST) zwischen für DIS verwendbare Merkmalspunkte zu gewährleisten.
  • Für die Stabilität des DIS-Algorithmus werden Merkmalspunkte soweit wie möglich verteilt, während zur gleichen Zeit die Gesamtanzahl von Merkmalspunkten begrenzt wird. Eine „gute Verteilung” von Merkmalspunkten kann wie folgt ausgedrückt werden: Sie weist eine große konvexe Hülle auf; Merkmalspunkte sind nicht zu nahe beieinander (MIN_DIST); in Kacheln mit weniger geeigneten Merkmalspunkten, während, wenn möglich, zumindest eine minimale Anzahl (min_Merkmale) von Merkmalspunkten ausgewählt wird; und in Kacheln mit mehr geeigneten Merkmalspunkten werden mehrere Merkmalspunkte (max_Anz_Merkmale = min_Merkmale + max_plus_Merkmale·(Kachel_Abweichung σ2/Totale_Abweichung)) ausgewählt.
  • Die maximale Anzahl von Merkmalspunkten in jeder Kachel (max_Anz_Merkmale) wird basierend auf der Kachelluminanzabweichung σ2 bestimmt.
  • In einer Ausführungsform ist die maximale Anzahl von Merkmalspunkten in jeder Kachel (max_Anz_Merkmale) die Summe einer programmierbaren minimalen Anzahl von Merkmalspunkten pro Kachel (min_Merkmale) plus die programmierbare maximale Anzahl von zusätzlichen Merkmalspunkten (max_plus_Merkmale), multipliziert durch das Verhältnis der Abweichung σ2 der spezifischen Kachel über die Summe der Kachelabweichungen. Ein Korrekturfaktor kann angewandt werden, falls die Kacheln eine unterschiedliche Größe aufweisen. Somit kann die maximale Anzahl von endgültig-ausgewählten Merkmalspunkten pro Kachel alternativ min_Merkmale plus den Teil von Var_Merkmale sein, dass proportional zu der Kachelabweichung σ2 ist, normiert durch die entsprechende Kachelgewichtung. Den Grenzkacheln kann eine höhere Gewichtung gegeben werden, da sie den Grenzbereich enthalten und dadurch größer sind. In diesem alternativen Fall wird die maximale Anzahl von Merkmalspunkten für eine gegebene Kachel wie folgt berechnet werden:
    Figure 00170001
  • Somit wird die maximale Anzahl von ausgewählten Merkmalspunkten (max_Anz_Merkmale) nicht in allen Kacheln konstant gehalten, und auch nicht konstant zwischen dem Rahmen Ft bis Rahment+1.
  • In einer Ausführungsform ist die maximale Anzahl von Merkmalspunkten (max_Anz_Merkmale) in jeder Kachel eine Funktion der Abweichung σ2 der Luminanzdaten in jeder Kachel, die durch die gesamte Luminanzabweichung geteilt wird, die eine Vorberechnung der Luminanzabweichung σ2 jeder Kachel und die Gesamtabweichung des Rahmens erfordert. Ein Durchschnittsfachmann kann auf einfache Weise erkennen, dass andere Funktionen auch möglich sind; z. B. Funktionen mit dem durchschnittlichen Luminanzwert sowie der Kachelabweichung σ2.
  • Um Merkmalspunkte zu identifizieren, kann ein Eckdetektor, wie z. B. ein Harris Corner Detektor oder dergleichen verwendet werden. Der Harris Corner Detektor bewertet jeden Bildpunkt des Bildes als möglichen Merkmalspunktkandidaten. Bevorzugte Merkmalspunktkandidaten sind Punkte, bei denen die Merkmalsqualitätsschätzfunktion ein lokales Maximum aufweist. Das offenbarte Verfahren einer Merkmalspunktauswahl optimiert die Auswahl der Merkmalspunkte, die durch den Harris Corner Detektor durch Vergleichen des resultierenden Werts jedes identifizierten Merkmalspunkts (Schätzen wie gut dieser Bildpunkt als ein Merkmalspunkt geeignet ist) mit einer lokalen, anstatt einer globalen (Vollrahmen) Schwelle identifiziert werden. Somit berücksichtigt das offenbarte Verfahren eine Merkmalspunktdichte jeder lokalen Fläche und unterscheidet auch den Kontrast von unterschiedlichen Teilen des Rahmens.
  • Die erhaltene Merkmalspunktverteilung basiert auf kleinen Bereichen des Videorahmens (z. B. nicht-überlappende Kacheln), bei denen die Anzahl der Merkmalspunkte in jeder Kachel linear mit der Abweichung σ2 der Luminanzbilddaten der Kachel ansteigt. Kacheln mit interessanteren Bilddaten und dadurch das Bedürfnis für mehr Merkmalspunkte werden erwartet, um eine höhere Abweichung σ2 aufzuweisen.
  • 4A und 4B sind Flussdiagramme, die ein Verfahren zum Bestimmen eines minimalen Abstands (MIN_DIST) zwischen Merkmalspunkten in jeder Kachel darstellen, während zur gleichen Zeit lediglich geringe lokale Zustandsinformationen benötigt werden, wodurch die Hardwareimplementierungskosten reduziert werden.
  • 2B zeigt ein Diagramm einer Kachel des Kernbereichs des Bilderrahmens von 2A, die ausgewählte (grau), abgelehnte (weiß) und zuvor-ausgewählte, jedoch annullierte (grau außer X) Merkmalspunkte darstellen. Die als kleine Quadrate in 2B gezeigten Merkmalspunkte wurden als Merkmalspunktkandidaten mit dem Harris Corner Detektor-Algorithmus identifiziert und anschließend sequenziell in einer Rasterabtast-Reihenfolge ausgewählt, abgelehnt oder annulliert, entsprechend der Schritte in dem in 4A und 4B dargestellten Verfahren.
  • Für jede Kachel wird eine maximale Anzahl (max_Anz_Merkmale) von identifizierten Merkmalspunktkandidaten ausgewählt. Gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts kann jeder identifizierte Merkmalspunktkandidat ausgewählt werden, z. B. in einer Rasterabtast-Reihenfolge durch:
    • i. Identifizierte Merkmalspunktkandidaten sind Bildpunkte, welche die Harris Corner-Schätzfunktion eine programmierbare Schwelle überschreitet und bei der diese Schätzung ein lokales Minimum aufweist. Um ein lokales Minimum zu qualifizieren, muss der Wert des betreffenden Punktes größer als der Wert aller direkten und diagonalen Nachbarn sein, die diesem Bildpunkt in einer Abtast-Reihenfolge vorangehen, jedoch lediglich größer als oder gleich dem Wert der direkten und diagonalen Nachbarn, die diesem Punkt in einer Abtast-Reihenfolge nachfolgen. Damit wird der Tatsache Rechnung getragen, dass identische Werte ziemlich wahrscheinlich sind.
    • ii. Wenn ein Merkmalspunktkandidat identifiziert wurde, wird er in eine Datenspeicherstruktur aufgenommen (z. B. eine sortierte Liste, es sind aber auch andere Durchführungen möglich), die eine vorbestimmte maximale Anzahl von Merkmalspunktkandidaten für jede Kachel, wie z. B. ein Maximum von 32, 48, 64 oder höhere endgültig-ausgewählte Merkmalspunkte, verwalten, vorausgesetzt, es besteht kein Merkmalspunktkandidat mit einem höheren Schätzfunktionswert, der innerhalb eines programmierbaren Aussperrbereichs (MIN_DIST). Zum Zwecke der Darstellung wird ein Maximum von 32 ausgewählt, um die vorliegende Ausführungsform zu beschreiben.
    • iii. Falls ein später identifizierter Merkmalspunktkandidat in der Datenstruktur gespeichert wurde, werden alle anderen Merkmalspunktkandidaten mit einem kleinen Schätzfunktionswert, die näher zu diesem Punkt als der Aussperrbereich (MIN_DIST) sind, von der Datenspeicherstruktur entfernt.
  • Zum Zwecke der Darstellung wird angenommen, dass die vorbestimmte maximale Anzahl von Merkmalspunktkandidaten einer Kachel (5, 4) vier ist (d. h. max_Anz_Merkmale = vier). Wie in 2A dargestellt, enthält eine Kachel (5, 4) vier endgültig-ausgewählte Merkmalspunkte (grau) SFP3, SFP4, SFP5 und SFP7 in einer Rasterabtast-Reihenfolge, und drei zuvor-ausgewählte, jedoch abgelehnte Merkmalspunkte (grau außer X) SFP1, SFP2 und SFP6, plus zwei abgelehnte (niemals ausgewählte) Merkmalspunkte (weiß). Die annullierten, zuvor-ausgewählten Merkmalspunkte (grau außer )) SFP1, SFP2 und SFP6 waren Merkmalspunktkandidaten, die als Merkmalspunkte in einer Rasterabtast-Reihenfolge während des Fortschritts des in 4A und 4B dargestellten Verfahrens ausgewählt, jedoch sequenziell als ausgewählte Merkmalspunkte annulliert wurden, entweder weil sie innerhalb einer Ausschlusszone (MIN_DIST) eines Merkmalspunktskandidaten waren, der später als Merkmalspunktkandidat identifiziert wurde, und ausgewählt waren, oder weil die Liste der ausgewählten Merkmalspunkte voll wurde (d. h. die Anzahl der Merkmalspunktkandidaten SFP_Anzahl = max_Anz_Merkmale) und der zuvor-ausgewählte Merkmalspunkt der kleinste aus der Liste der ausgewählten Merkmalspunkte war und kleiner als ein Merkmalspunktkandidat war, der später identifiziert und ausgewählt wurde.
  • Der annullierte zuvor-ausgewählte Merkmalspunkt SFP1 war der erste zu identifizierende und auszuwählende Merkmalspunkt in einer Rasterabtast-Reihenfolge entsprechend der Schritte des in 4A und 4B dargestellten Verfahrens. Danach wurde ein annullierter zuvor-ausgewählter Merkmalspunkt SFP2 identifiziert und ausgewählt, jedoch nach dem SFP2 ausgewählt wurde, ein ausgewählter Merkmalspunkt SFP3 wurde identifiziert und war größer als SFP2. Da SFP2 innerhalb der Ausschlusszone (MIN_DIST) eines größeren ausgewählten Merkmalspunkts SFP3 ist, wurde SFP2 unmittelbar annulliert, wenn SFP3 ausgewählt wurde. Nach dem SFP3 ausgewählt wurde, wurde ein Merkmalspunktkandidat in der unteren rechten Ecke der Ausschlusszone (MIN_DIST) von SFP3 identifiziert, und da der Merkmalspunktkandidat kleiner als SFP3 war und innerhalb dessen Ausschlusszone sich befindet, wurde er unmittelbar abgelehnt (d. h. nicht ausgewählt). Anschließend wurde ein Merkmalspunktkandidat unterhalb und genau außerhalb der Ausschlusszone (MIN_DIST) von SFP3 identifiziert, und er wurde als SFP4 ausgewählt (und er wurde nicht danach annulliert). Anschließend wurde ein Merkmalspunktkandidat ferner unterhalb und auf der rechten Seite der Ausschlusszone (MIN_DIST) von SFP3 identifiziert, und wurde als SFP5 ausgewählt (und wurde danach nicht annulliert, da er nahe der, jedoch nicht innerhalb der Ausschlusszone von SFP7 war). Anschließend wurde ein Merkmalspunktkandidat unterhalb und auf der rechten Seite der Ausschlusszone (MIN_DIST) von SFP5 identifiziert, und wurde als SFP6 ausgewählt (jedoch wurde er danach annulliert, da er innerhalb der Ausschlusszone des größeren später ausgewählten Merkmalspunkt SFP7 war). Wenn SFP6 ausgewählt wurde, war die Liste der ausgewählten Merkmalspunkte bereits „voll” (z. B. die maximale Anzahl von Merkmalspunkten für diese Kachel war 4) und SFP1 war der kleinste aus der Liste der anschließend ausgewählten Merkmalspunkte SFP1, SFP3, SFP4 und SFP5, und SFP6 war größer als SFP1, wobei SFP1 annulliert wurde. Anschließend wurde ein Merkmalspunktkandidat unterhalb und innerhalb der Ausschlusszone (MIN_DIST) von SFP6 identifiziert, und er wurde als SFP7 ausgewählt (da SFP6 unmittelbar annulliert wurde, da der ausgewählte Merkmalspunkt SFP7 größer als SFP6 ist und/oder da die Liste voll war, usw.). Anschließend wurde ein Merkmalspunktkandidat unterhalb und innerhalb der Ausschlusszone (MIN_DIST) von SFP7 identifiziert, und er wurde abgelehnt (nicht ausgewählt), da der Merkmalspunktkandidat kleiner als SFP7 ist. Es ist möglich, dass SFP7 tatsächlich kleiner als der annullierte SFP2 ist (falls SFP3 viel größer als SFP7 ist), jedoch wurde eine gute Verteilung der Merkmalspunkte erhalten. Der programmierbare Aussperrbereich (MIN_DIST) gewährleistet, dass endgültig-ausgewählte Merkmalspunkte nicht zu nahe zusammen angehäuft werden.
  • Die Bildpunktluminanzabweichung σ2 jeder Kachel kann während des Herunterskalierprozesses bestimmt werden, in dem jede Kachel downgesampelt wird. Die maximale Anzahl von Merkmalspunkten in jeder Kachel wird als die Summe einer programmierbaren konstanten minimalen Anzahl von Merkmalspunkten pro Kachel plus die Anzahl von Gesamtabweichungs-Merkmalspunkten, die durch das Verhältnis der Abweichung σ2 der spezifischen Kachel über die Summe der Kachelabweichung multipliziert wird. Ein Korrekturfaktor kann für die Fläche der Kanten und Eckkachelbereiche hinzugefügt werden, da die Merkmalspunkte auch in dem Grenzbereich sein können. Jede Kachel bis zu der maximalen Anzahl von Merkmalskandidaten wird mit einem Sortierprozess d. h. vorstehend beschriebenes Auswählen, Ablehnen, Annullieren, für jeden Merkmalspunktkandidaten, der in einer Rasterabtast-Reihenfolge identifiziert wird, ausgewählt und gespeichert. Zuletzt sind die endgültig-ausgewählten Merkmalskandidaten für jede Kachel einfach die Merkmalspunktkandidaten mit der höchsten Schätzfunktionsrückmeldung, deren maximale Anzahl vorbestimmt wurde. Es kann Gelegenheiten geben, bei denen nicht genug Merkmalspunktkandidaten in einer gegebenen Kachel verfügbar sind, wie z. B. eine Kachel von geringen Kontrastbilddaten, in dem Fall wird die resultierenden Anzahl von endgültig verwendeten Merkmalspunkten kleiner als die programmierte minimale Anzahl (z. B. eine kleine Anzahl, kleiner als min_Merkmale).
  • Somit wird ein Verfahren zum Verarbeiten von Merkmalspunktkandidaten in einer Rasterabtast-Reihenfolge vorgesehen, wobei eine Liste, die höchstens die berechnete maximale Anzahl von ausgewählten Merkmalspunkten, welche nicht zu nahe zusammen angehäuft sind, aufweist, beibehalten wird, selbst während mehr neue Merkmalspunktkandidaten später identifiziert und ausgewählt werden können. Dieses Rasterabtast-Reihenfolge-Verfahren zum Sortieren von Merkmalspunkten hat den Vorteil des Reduzierens der Speicherkapazität und der Berechnung, verglichen mit verschiedenen anderen Verfahren zum Priorisieren und Auswählen aus den identifizierten Merkmalspunktkandidaten. Beispielweise können in einer alternativen Ausführungsform alle Merkmalspunktkandidaten identifiziert und in einer in einem Speicher gespeicherten, großen Liste gespeichert werden, und anschließend erst nachdem alle Merkmalspunktkandidaten einer Kachel identifiziert wurden kann ein mathematischer Sortieralgorithmus angewandt werden, um die optimale Einstellung (einer vorbestimmten maximalen Größe) der größten Merkmalspunktkandidaten zu finden, die nicht innerhalb der Ausschlusszone (MIN_DIST) eines anderen Mitglieds der Einstellung sind. Allerdings erfordert ein derartiger Sortieralgorithmus mehr physischen Speicher (um die gesamte Liste der identifizierten Merkmalspunktkandidaten einer Kachel zu speichern) und erfordert möglicherweise mehr Gesamtberechnung als das Raster-Reihenfolge-Sortier-(Auswählen, Ablehnen, Annullieren)-Verfahren von 4A und 4B, deren beispielhafte Ergebnisse in 2B gezeigt werden. Der Rasterabtast-Reihenfolge-Sortieralgorithmus von 4A und 4B stellt nicht notwendigerweise eine Einstellung von ausgewählten Merkmalspunkten bereit, das ein globales Optimum ist, da ein Merkmalspunktkandidat von der Liste durch einen Merkmalspunktkandidat annulliert werden kann, der später ausgewählt, jedoch später selbst gelöscht wird, sondern stellt vielmehr ein Algorithmus bereit, der in einer Hardware mit einem begrenzten lokalen Speicher implementiert werden kann. Obwohl das Verfahren von 4A und 4B als Verarbeiten von identifizierten Merkmalspunktkandidaten in einer „Rasterabtast-Reihenfolge” (d. h. von links nach rechts und von oben nach unten) beschrieben wird, die die Bildpunktreihenfolge ist, welche der Harris Corner Detektor gewöhnlich voranschreitet, kann eine Sequenz einer Auswahl von Merkmalspunktkandidaten durch das Verfahren angewandt werden, wie z. B. diskontinuierliche Sequenzen von nicht-angrenzenden Merkmalspunktkandidaten, solange wie alle Merkmalspunkte identifiziert und unmittelbar sequentiell gespeichert werden.
  • 3 zeigt ein Blockdiagramm einer Merkmalspunktschaltung gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts. Eine Merkmalspunktschaltung 3000 weist einen Merkmalspunktselektor 300 und einen ausgewählten Merkmalspunkt-(SFP)-Bewegungsvektor-Berechner 700 und einen gemeinsamen genutzten RAM-Speicher 350 auf. Der Merkmalspunktselektor 300 weist einen Downsampler 310, einen Merkmalspunktkandidatenidentifizierer 330 und einen Merkmalspunktkandidatensortierer 340 auf.
  • Der Merkmalspunktkandidatenidentifizierer 330 identifiziert Merkmalspunktkandidaten mit einem Harris Corner Detektor-Algorithmus und gibt die identifizierten Merkmalspunkte, z. B. in Bildpunktpositionen und Harris Comer-Rückmeldungen, in Rasterabtast-Reihenfolge einer Kachel zu einer Zeit an den Merkmalspunktkandidatensortierer 340 aus. Der Merkmalspunktkandidatensortierer 340 ist ausgebildet, um das Verfahren eines einzelnen Sortierens von identifizierten Merkmalspunkten von jeder Kachel von 4A und 4B, wie ferner in 1B und 2B dargestellt, auszuführen. Der Downsampler 310 enthält einen Kachelabweichungs-σ2-Berechner 320-Funktionsblock, der die Kachelabweichung σ2 jeder Kachel des Bildrahmens entsprechend der Gleichung berechnet:
    Figure 00230001
    wobei die y-Werte Luminanzdaten innerhalb der Kachel sind und N die Anzahl der Bildpunkte in der Kachel ist.
  • Die Schaltung, wie in 3 gezeigt, kann in einem Halbleiterchip implementiert werden, der Eingabe-/Ausgabe-Pins, die ausgebildet sind zum Empfangen von Bilddateien aus einer Kamera mit Sensoren, welche Bilder erfassen, und Schaltungen aufweist, um die erfassten Bilder in Bilddaten umzuwandeln. Die durch die Schaltung von 3 verarbeiteten Daten werden über die Eingabe-/Ausgabe-Daten zu anderen Komponenten der Kamera ausgegeben. Wie ferner nachstehend beschrieben wird, liegt der Speicher 350 innerhalb des Halbleiterchips, und um die Größe des Chips zu minimieren, muss der Speicher eine kleine physikalische Größe aufweisen, und dadurch ist die Speicherkapazität begrenzt. Um Rechenleistung zu sparen und um die Anzahl der erforderlichen Operationen zu verringern, kann der Merkmalspunktselektor 300 lediglich Luma-Daten verarbeiten, welche horizontal und vertikal durch den Downsampler 310 mit einem Faktor fs1 von 2, 4 oder 8 (ein Faktor fs1 von 4 wird aus der vorliegenden Ausführungsform gewählt) subgesampelt werden. Die fs1 downgesampelten Luma-Daten werden für eine Merkmalspunktidentifikation durch den Merkmalspunktkandidatenidentifizierer 330 verwendet, und in alternativen Ausführungsformen können sie später für die Merkmalspunktbewegungsvektorschätzung durch die hierarchische Blockmatching-Sucheinheit 730 des SFP-Bewegungssektorberechners 700 verwendet werden. Während das kleinere downgesampelte Bild durch den Downsampler 310 berechnet wird, wird die Luminanzabweichung (Kachelabweichung) σ2 von jeder Kachel berechnet, und ein globales Maximum des kleineren Eigenwerts der 3×3 Harris Corner-Matrix wird identifiziert. Sowohl der Kacheloffset, der die Koordinate des oberen linken Bildpunkts der oberen linken Kachel ist, als auch die Kachelbildpunktdimensionen sind vorzugsweise vielfache des verwendeten größten Subsampling-Faktors (fs2). Es wird außerdem bevorzugt, dass der Bildkernbereich in dem gesamten Bild zentriert wird. Dadurch ist die Breite des linken Grenzbereichs identisch zu der Breite des rechten Grenzbereichs und die Höhe des oberen Grenzbereichs ist die gleiche wie die Höhe des unteren Grenzbereichs (siehe 2A).
  • Wenn die Eingaberahmenluminanzdaten subgesampelt und in dem RAM-Speicher 350 gespeichert wurden, liest der Merkmalspunktkandidatenidentifizierer 330 sie wieder in Kachelreihenfolge und gibt die identifizierten Merkmalspunktkandidaten sequentiell in den Merkmalspunktkandidatensortierer 340 aus. Für den Merkmalspunktidentifakationsprozess des Blocks 330 erstreckt sich der Statistikbereich der möglichen Merkmalspunkte der an die Grenzfläche angrenzenden Kacheln in die Grenzfläche, und somit werden die Bildpunkte jeder Grenzbereichskachel zusammen mit den Bildpunkten der angrenzenden Kachel verarbeitet. Die Bildpunktdaten werden innerhalb jeder Kachel in Rasterabtast-Reihenfolge gelesen: Zeilen von oben nach unten, Bildpunkte innerhalb jeder Zeile von links nach rechts.
  • Um jede Kachel zu verarbeiten benötigt der Merkmalspunktkandidatenidentifizierer 330 für eine Merkmalspunktidentifizierung mit dem Harris Corner Detektor drei zusätzliche Bildpunkte auf jeder inneren Kachelgrenze. Folglich werden diese Bildpunkte mehr als einmal gelesen. Identifizierte Merkmalspunktkandidaten sind Bildpunkte in jeder Kachel, bei denen der geringe Eigenwert λ1 der Harris-Matrix ein lokales Maximum aufweist. Um ein lokales Maximum zu qualifizieren, muss die Eckrückmeldung des fraglichen Bildpunkts größer als die Rückmeldung der oberen linken, oberen, oberen rechten und linken Nachbarn und größer als oder gleich der Eckrückmeldung der rechten, unteren linken, unteren, und unteren rechten Nachbarn sein. Mit dieser Definition wird zumindest ein Punkt eines großen Bereichs mit der gleichen konstanten Eckrückmeldung als möglicher Merkmalspunktkandidat identifiziert. Die Erfassungslogik für das lokale Maximum wird zwei Zeilenpuffern von Eckrückmeldungen benötigen. Punkte mit einem lokalen Eckrückmeldungsmaximum werden zunächst mit einer programmierbaren Eckrückmeldungsschwelle verglichen. Falls die Eckrückmeldung des fraglichen Punkts kleiner als diese Schwelle ist, wird sie ignoriert. Anderenfalls werden die Merkmalspunktkoordinaten und deren Eckrückmeldung dem Merkmalspunktkandidatensortierer 340 vorgelegt.
  • Der Merkmalspunktkandidatensortierer 340 verfolgt bis zu max_Anz_Merkmale (z. B. 32) Merkmalspunktkandidaten mit der höchsten Eckrückmeldung in jeder Kachel nach, während er gleichzeitig gewährleistet, dass alle Merkmalspunkte einen minimalen programmierbaren Abstand (MIN_DIST) voneinander aufweisen. Der in dem vorstehenden Algorithmus verwendete Abstand zwischen zwei Punkten ist definiert wie folgt:
    Figure 00250001
  • Das Sortieren des Verfahrens von 4A und 4B wird mit Operationen unter Berücksichtigung der lediglich aktuellen Inhalte der Liste der ausgewählten Merkmalspunkte des Sortierers und des eingehenden Merkmalspunktkandidatens durchgeführt und eine Entscheidung erfolgt sofort. Dadurch wird der Merkmalspunktkandidatensortierer 340, der angepasst ist, um das Verfahren von 4A und 4B auszuführen, nicht zwangsläufig das globale Maximum berechnen, und die Ergebnisse werden von der Reihenfolge abhängen, in der die eingehenden Merkmalspunktkandidaten vorgelegt werden.
  • Der Merkmalspunktkandidatensortierer 340 gibt die ausgewählten Merkmalspunkte einzeln aus und sie werden in einer SPF-Liste in einem Abschnitt des Speichers 350 der Schaltung von 3 gespeichert.
  • 4A und 4B sind Flussdiagramme eines Verfahrens zum Identifizieren und Auswählen einer Mehrzahl von Merkmalspunkten in jeder Kachel des Bildrahmens von 1A und 2A zum Ausführen von Schritten des in 1A bis 1F dargestellten DIS-Verfahrens. Das Verfahren beginnt mit einem Dateneingabeschritt S400, bei dem Luminanzdaten eines aktuellen Rahmens Ff empfangen werden, gefolgt durch einen Downsamplingschritt S402. Ein Initialisierungsschritt S404 setzt den Kachelzählwert aktuelle_Kachel und den Bildpunktzähler aktueller_Bildpunkt zurück.
  • Als Nächstes wird in Rasterabtast-Reihenfolge der Harris Corner Detektor ausgeführt (Schritte S406, SD408 und S410), wenn jeder Bildpunkt der downgesampelten Luminanzdaten der aktuellen_Kachel als aktueller Bildpunkt inkrementiert wird (Schritt S428). Jedes Mal wenn die aktuelle Bildpunkteckrückmeldung ein lokales Maximum oder eine Schwelle überschreitet (d. h. der „ja” Zweig des Entscheidungsschritts SD408) wird der aktuelle_Bildpunkt als der aktuelle FP-(Merkmalspunkt)-Kandidat (Schritt S410) identifiziert und wird dann unmittelbar dem Merkmalspunktsortieralgorithmus (SD412, SD414, SD416, S417, SD430, S418, S420) unterworfen.
  • Der Merkmalspunktsortieralgorithmus wählt (S420) lediglich den aktuellen FP-Kandidaten, falls er größer als der bereits in einer Liste der ausgewählten Merkmalspunkte gespeicherte, niedrigste, zuvor-ausgewählte FP-Kandidat ist. (Ja-Zweig des Entscheidungsschritts SD412), andernfalls wird der aktuelle FP-Kandidat ohne jemals ausgewählt zu sein (Nein-Zweig des Entscheidungsschritts SD412) abgelehnt (Ablehnungsschritt S417). Falls die Liste der ausgewählten Merkmalspunkte bereits voll ist, wie durch den ausgewählten-Merkmalspunkt-Zähler SFP_Zähler angezeigt, (d. h. SFP_Zähler = max_Anz_Merkmale = min_Merkmale + max_plus_Merkmale·(Kachel_Abweichung/Totale_Abweichung)), wenn der aktuelle FP-Kandidat ausgewählt ist, dann annulliere den kleinsten zuvor-ausgewählten FP-Kandidaten aus der Liste (SD430), andernfalls inkrementiere den SFP_Zählerwert (SD430).
  • Der Merkmalspunktsortieralgorithmus wählt lediglich den aktuellen FP-Kandidaten aus (S420), falls er nicht innerhalb der Ausschlusszone (MIN_DIST) von einem größeren zuvor-ausgewählten Merkmalspunkt (SD416), der bereits auf der Liste ist (SD414), ist. Somit wird, falls der aktuelle FP-Kandidat innerhalb der MIN_DIST eines größeren (SD416) zuvor-ausgewählten Merkmalspunkt, der bereits auf der Liste ist (SD414), ist, er abgelehnt (Nein-Zweig des Entscheidungsschritts SD416 und Ablehnungsschritt S417), ohne ausgewählt zu werden. Andererseits werden, falls der aktuelle FP-Kandidat innerhalb der MIN_DIST von kleineren (SD416) zuvor-ausgewählten Merkmalspunkten, die bereits auf der Liste (SD414) sind, ist, alle kleineren (SD416) zuvor-ausgewählten Merkmalspunkte annulliert (Ja-Zweig des Entscheidungsschritts SD416 und Annullierungsschritt S418), und der aktuelle FP-Kandidat wird ausgewählt (S420), und der SFP_Zähler wird dementsprechend aktualisiert (418) (z. B. dekrementiert oder unverändert belassen).
  • Wenn der aktuelle FP-Kandidat ausgewählt (S420) oder abgelehnt (S417) wurde, gibt der Harris Corner Detektor den Wert des nächsten (S428) aktuellen_Bildpunkts (S410) der aktuellen_Kachel (SD422) aus und der nächste identifizierte FP-Kandidat wird unmittelbar dem Merkmalspunktsortieralgorithmus (SD412, SD414, SD416, S417, SD430, S418, S420), usw. unterworfen. Falls der letzte Bildpunkt der aktuellen_Kachel verarbeitet wurde (SD422), dann wird die nächste Kachel (SD424, S426) verarbeitet. Falls die letzte Kachel verarbeitet wurde, dann wird der Prozess ausgeführt bis der nächste Bilderrahmen verarbeitet werden soll.
  • MERKMALSPUNKT-BEWEGNUNGVEKTORBERECHNUNG
  • Nachdem die Merkmalspunkte jeder Kachel in dem aktuellen Rahmen Ft identifiziert und sortiert wurden, ist der nächste Schritt des DIS-Verfahrens von 1A bis 1F Bewegungsvektoren für jeden der ausgewählten Merkmalspunkte zu erhalten.
  • Blockmatching-Algorithmen (BMA), die zur Berechnung der Bewegungsvektoren von Merkmalspunkte verwendet werden, sind bekannt. Beim Blockmatching wird eine Fehlerfunktion (z. B. SAD, MAD, MSE) für alle möglichen Positionen eines Blocks in einer Soll-Fläche des Referenzrahmens berechnet. Die Position mit dem geringsten Ergebnis dieser Funktion wird verwendet, um den geschätzten Bewegungsvektor zu berechnen. Blockmatching ist rechenintensiv. Es gibt verschiedene bekannte Weisen, um Rechenaufwand zu reduzieren. Hierarchisches- oder Multi-Auflösungs-Blockmatching ist eine dieser Weisen, in der die globale Bewegung zunächst bei geringeren Auflösungen berechnet wird. Die Ergebnisvektoren werden verwendet, um einen kleineren Bereich bei höheren Auflösungen zu suchen, wodurch die Gesamtanzahl von benötigten arithmetischen Operationen verringert wird.
  • Für die meisten Anwendungen und insbesondere für Videokodierung werden genaue Bewegungsvektoren für alle Blöcke eines Rahmens benötigt. Folglich ist der Auswahlbereich in späteren Phasen gewöhnlich relativ groß. Bei dem in 1A bis 1F dargestellten digitalen Bildstabilisierungs(DIS)Verfahren ist es lediglich notwendig, die relative Bewegung der Merkmalspunkte (z. B. von tatsächlich-stationären Objekten) von einem Rahmen zum nächsten zu schätzen. Zum Zwecke der Bildstabilisierung werden genaue Bewegungsvektoren, welche die Bewegung des Hintergrunds und große Objekte darstellen, benötigt, wohingegen kleine Objekte keinen zu denen zugeordneten genauen Bewegungsvektor aufweisen müssen. Jegliche ungenaue Vektoren für kleine Objekte können bei einer späteren Phase des DIS-Algorithmus gefiltert werden.
  • Es wird erwartet, dass Merkmalspunkte von bedeutsamen großen stationären Objekten in dem DIS-Verfahren auf eine kohärente Weise aufgrund einer globalen Bewegung oder einer Kamerabewegung bewegt werden. Es wird anerkannt, dass ausreichend große Objekte, die sich bewegen, unabhängig den Großteil wenigstens einer Kachel abdecken, sodass deren Bewegung selbst als die überwiegende Bewegung der Kachel geschätzt werden kann, während die Bewegung der kleinen Objekte einen kleinen Einfluss auf den Bewegungsvektor der Kachel selbst haben. Somit kann der Prozess des Berechnens der Bewegungsvektoren modifiziert werden, um Berechnungen unter Einsatz eines hierarchischen Bewegungsschätzalgorithmus und durch Bevorzugen einer Kachelbewegung gegenüber einer lokalen Bewegung mit dem Bewegungsvektor der Kachel zu verringern. Somit ist ein erster Schritt, den aktuellen Bilderrahmen in eine Mehrzahl j×k von Kacheln aufzuteilen (Dieser erste Schritt soll bereits zum Zwecke der Merkmalspunktauswahl, wie vorstehend mit Bezug auf 1B und 2A beschrieben, ausgeführt worden sein).
  • Ein zweiter Schritt eines genau genug Berechnens der Bewegungsvektoren der Merkmalspunkte für das DIS wäre, einen Bewegungsvektor pro Kachel mit Blockmatching auf der geringsten Auflösung aufzuteilen. In diesem Schritt wird die SAD (Summe der absoluten Differenzen) für eine bestimmte Kachel berechnet. Der Bewegungsvektor für eine bestimmte Kachel ist einer, der die SAD minimiert, Die SAD (Summe der absoluten Differenzen) für einen bestimmten Bewegungsvektorkandidaten v = (vx, vy) wird definiert:
    Figure 00290001
  • Unter Verwendung eines downgesampelten Bildes mit geringer Auflösung wird die Berechnung reduziert und der Einfluss der kleinen Objekte in der Szene wird weiter reduziert.
  • Bei dem dritten Schritt werden die Bewegungsvektoren der Kacheln bei einem Blockmatching-Algorithmus als Startvektoren für die lokale Suche für den Bewegungsvektor der Merkmalspunkte in jeder Kachel verwendet. Da ein ausreichend großes Objekt, das den Großteil der wenigstens einen Kachel abdeckt, in angrenzende Kacheln erstrecken kann, ist es wahrscheinlich, dass einige Merkmalspunkte in jeder Kachel stärker dem Bewegungsvektor einer angrenzenden Kachel zugeordnet werden können, anstatt dem Bewegungsvektor der Kachel, innerhalb der sie gefunden werden. Somit wäre es wirksam, die Bewegungsvektoren für alle angrenzenden Kacheln als Mehrfachstartvektoren in der Blockmatchingsuche für den Bewegungsvektor der Merkmalspunkte jeglicher bestimmter Kacheln zu verwenden. Die hier verwendeten Kacheln sind in dem Rahmen innerhalb eines Grenzbereichs einer Größe wenigstens des maximalen unterstützten Bewegungsvektor zentriert, sodass die Bewegungssuche für alle Merkmalspunkte in allen Kacheln ausgeführt werden kann, ohne Bezugnahme auf Bildpunkte außerhalb des Rahmens.
  • 5 zeigt eine Ansicht des aktuellen Rahmens Ft von 1A, der mit berechneten darauf überlagerten Kachelbewegungsvektoren zur Darstellung des Bewegungsvektors-Berechnungsschritts des in 1A bis 1F dargestellten DIS-Verfahrens downgesampelt wird. Das kleinere (weniger Bildpunkte, weniger Daten) Bild in 5 wird von dem ursprünglichen, aktuell erfassten Rahmen oder von dem zuvor subgesampelten Bild davon (Schritt S402 von 4A und 4B) durch sowohl horizontales als auch vertikales Subsampling hergeleitet. Subsampling mit einem Subsampling-Faktor fs2, z. B. 4, wird für globale (Kachel) Bewegungsschätzung verwendet. Das 4×4-Downsampling beträgt im Mittel gerade 16 Bildpunkte (mit Abrundung), ohne auf der Eingabeseite zu überlappen. Anschließend wird eine Blockmatchingsuche mit jeder vollständigen subgesampelten Kachel ausgeführt, um jeden Kachelbewegungsvektor zu bestimmen.
  • Der Bewegungsvektor für eine bestimmte Kachel ist der Eine, der die SAD minimiert. Im Fall eines Gleichstands wird die zunächst gefundene genommen. Die Bewegungsvektoren werden als Startvektoren für die lokale Suche für die Bewegungsvektoren der nahe gelegenen Merkmalspunkte verwendet. Der Bewegungsbereich über jedem Startvektor ist programmierbar.
  • Da die Anzahl der benötigten Operationen für die Kachelbewegungsschätzung nur etwa 12% der benötigten Operationen für die lokale Bewegungsschätzung ist, ist es ausreichend, die Summe von etwa 8 absoluten Differenzen pro Zyklus zu berechnen. Dadurch wird keine systolische Matrix benötigt.
  • 6 zeigt eine Ansicht eines Abschnitts einer Kachel des downgesampelten Rahmens von 5, welche die Verwendung der Kachelbewegungsvektoren von 5 als Startvektoren für eine Blockmatchingsuche darstellen, um den Bewegungsvektor eines in dem in 1A bis 1F dargestellten DIS-Verfahren verwendeten, ausgewählten Merkmalspunkt zu berechnen.
  • Eine kleine lokale Blockmatchingsuche wird in einer höheren Auflösungsdomain um jede Reihe von Startvektoren für jeden Merkmalspunkt in der Kachel herum auszuführen. Dieser Schritt könnte bei der ursprünglichen Videoauflösung ausgeführt werden oder durch einen Faktor fs3 von 2 oder 4 downgesampelt werden. Die verwendeten Startvektoren sind die Kachelbewegungsvektoren, welche vorstehend bestimmt wurden. Die verwendeten Startvektoren sind diejenigen der Kachel, welche dem Merkmalspunkt angehören, sowie diejenigen, welche zu den vier direkten Nachbarn (obere Kachel, linke Kachel, rechte Kachel, untere Kachel) gehören, vorausgesetzt, sie existieren. Somit in 6: der Startvektor entsprechend der Blockmatchingsuchfläche 1 ist der eigene Kachelbewegungsvektor des Merkmalspunkts (FPs); der Startvektor entsprechend der Blockmatchingsuchfläche 2 ist der Block unterhalb dem FP-Kachelbewegungsvektor; der Startvektor entsprechend der Blockmatchingsuchfläche 3 ist der Block rechts von dem FP-Kachelbewegungsvektor; der Startvektor entsprechend der Blockmatchingsuchfläche 4 ist der Block links von dem FP-Kachelbewegungsvektor; und der Startvektor entsprechend der Blockmatchingsuchfläche 5 ist der Block oberhalb dem FP-Kachelbewegungsvektor. Gemäß einer weiteren Ausführungsform werden die Startvektoren der vier diagonalen Nachbarn verwendet. Andere Schritte zum Auswählen aus den Startvektoren (z. B. um die Anzahl der Blockmatching-Berechnungen zu reduzieren) können ausgeführt werden, insbesondere, falls eine erste Gruppe von Kachelvektoren Beträge und eine Richtung ähnlich zueinander suggestiv eines großen Objekts aufweisen (siehe Diskussion des Bewegungsvektorgruppierens bezüglich 8A, 8B, 9, 14A, 10B, 10C). Alternativ kann das Blockmatching mit einer bestimmten Priorität oder wo sich lediglich zwei oder mehre Blockmatching-Suchflächen überlappen oder zwischen jenen, welche zueinander am nächsten sind, usw. ausgeführt werden.
  • Im Allgemeinen wird die Zuweisung der Bewegungsvektoren zu Merkmalspunkten von Kachel zu Kachel fortschreiten, und jeder Merkmalspunkt für eine bestimmte Kachel wird die gleichen Startvektoren verwenden (z. B. die gleiche Auswahl der Kachelbewegungsvektoren). Allerdings können in verschiedenen weiteren Ausführungsformen die Merkmalspunkte in verschiedenen Teilen einer bestimmten Kachel eine unterschiedliche Auswahl von Startvektoren verwenden, unter der Annahme, dass ein an Kacheln in einer detektierten Gruppierung von Kachelbewegungsvektoren angrenzender Merkmalspunkt wahrscheinlicher ein sichtbarer Funkt auf dem gleichen Objekt, das gewöhnlich in jedem Mitglied von dieser Gruppe gefunden wird, ist. Somit kann eine Blockmatchingsuche zunächst an diejenigen Merkmalspunkte nahe am Umfang jeder Kachel ausgeführt werden, um zu erfassen, falls sie alle oder größtenteils alle gleich zu ihren eigenen Kachelbewegungsvektor und/oder zu den Kachelbewegungsvektor einer angrenzenden Gruppierung der Kachelbewegungsvektoren sind. Falls z. B. die Bewegungsvektoren aller anfänglich ausgewählten Merkmalspunkte (z. B. alle diejenigen, die nahe dem Umfang einer bestimmten Kacheln oder am weitesten von deren Mittelpunkt entfernt sind) im gleichen oder ähnlich zu deren eigenen Kachelbewegungsvektor sind, dann kann die Reihe der ausgewählten Startvektoren der Restmerkmalspunkte verringert werden.
  • Für jeden verwendeten Startvektor verwendet man einen sehr kleinen Bereich für die lokale Suche. Das Ziel ist hier nicht so sehr, gleiche Vektoren für jeden einzelnen Merkmalspunkt zu bestimmen. Vielmehr sind die interessanten Merkmalspunkte diejenigen, welche dem Hintergrund oder große Objekte angehören. Für jene Merkmalspunkte sollte einer der Kachelbewegungsvektoren gut sein oder nahe dem Bewegungsvektor der interessanten Merkmalspunkte sein, und dadurch ist eine kleine lokale Suche über jeden ausgewählte Kachelbewegungsvektoren ausreichend.
  • Erneute Bezugnahme auf 3, der SFP-(ausgewählter Merkmalspunkt)-Bewegungsvektor-Berechner 700 der Merkmalspunktschaltung 3000 weist einen zweiten Downsampler 710 zum Ausgeben von weiter downgesampelten Luma-Daten als der erste Downsampler 310 für eine Kachelvektorberechnung, einen Kachelvektor-Berechner 720 zum Berechnen jedes Kachelbewegungsvektors und eine hierarchische Blockmatching-Sucheinheit 730 auf, um den Bewegungsvektor jedes von dem Merkmalspunktkandidatensortierer 340 des Merkmalspunktselektors 300 empfangenen ausgewählten Merkmalspunkt (SFP) zu bestimmen und auszugeben. Der zweite Downsampler 710 gibt den in 5 gezeigten, stark downgesampelten, aktuellen Rahmen Ft aus. Der zweite Downsampler 710 gibt die stark downgesampelten Luma-Daten des in 5 gezeigten aktuellen Rahmens Ft aus. Der Kachelvektor-Berechner 720 berechnet den Bewegungsvektor jeder Kachel mit den stark downgesampelten Luma-Daten des aktuellen Rahmens Ft, welche durch den zweiten Downsampler 710 ausgegeben werden. Die hierarchische Blockmatching-Sucheinheit 730 bestimmt unter Verwendung der vollständigen-Auflösung-Luma-Daten (oder der Ausgabe des ersten Downsamplers 310) der zwei aufeinanderfolgenden Rahmen und unter Verwendung der Kachelvektoren als Startvektoren, wie vorstehend beschrieben den Bewegungsvektor jedes der ausgewählten Merkmalspunkte, welche durch den Merkmalspunktkandidatensortierer 340 des Merkmalspunktselektors 300 ausgegeben werden.
  • 7 zeigt ein Flussdiagramm, das ein Verfahren zum Berechnen der Bewegungsvektoren der ausgewählten Merkmalspunkte (SFP) in dem aktuellen Rahmen Ft von 1A und 2A für die Ausführungsschritte des in 1A bis 1F dargestellten DIS-Verfahrens zeigt.
  • Bei den Anfangsschritten empfängt die in 3 gezeigte hierarchische Blockmatching-Suchschaltung 730 Luma-Daten von zwei aufeinanderfolgenden Rahmen des Videos, den aktuellen Rahmen und den Referenzrahmen (Schritt S700i) und die Bildpunktpositionen der ausgewählten Merkmalspunkte (S700ii). Der aktuelle Rahmen Ft wird in eine Mehrzahl von subgesampelten Kacheln (S710) aufgeteilt, die vorzugsweise die gleichen wie die zuvor verwendeten Kacheln der Merkmalspunktssortierverfahren von 4A und 4B sind. Im Teilschritt S710-A wird der aktuelle Rahmen Ft in eine Mehrzahl j×k von Kacheln plus einen in 2A dargestellten Grenzbereich aufgeteilt. In Teilschritt S710-B werden die zu jeder Kachel zugehörigen Luma-Daten mit dem Faktor fs2 (z. B. fs2 = 4, 8 für SD; fs2 = 8, 16 für HD), wie in 5 dargestellt, subgesampelt.
  • Als Nächstes wird in Schritt S720 der Bewegungsvektor für jede Kachel unter Verwendung von Blockmatching mit einer vollständigen Suche mit stark subgesampelten Luma-Daten, wie in 5 dargestellt, berechnet, um die halbe Bildpunkt(half-pel)-Genauigkeit relativ zur subgesampelten Auflösung zu erreichen. Die berechneten minimalen SAD-Werte entsprechend den berechneten Bewegungsvektoren können zur Verwendung in anderen Merkmalen des DIS (z. B. um Merkmalspunkte von kleinen Objekten herauszufiltern) gespeichert werden. In Schritt S730 werden Startvektoren für den aktuellen ausgewählten Merkmalspunkt (SFP) basierend auf den berechneten Kachelbewegungsvektoren aus Schritt S720, wie hier vorstehend beschrieben, ausgewählt.
  • In Schritt S740 wird ein hierarchischer Blockmatching-Algorithmus mit Luma-Daten mit vollständiger Auflösung ausgeführt und mit ausgewählten Startvektoren basierend auf den Kachelvektoren verwendet, um den Bewegungsvektor des aktuellen SFP zu bestimmen. Die Schritte S730 und S740 werden wiederholt bis der Bewegungsvektor eines jeden SFP in jeder Kachel berechnet wurde (durch eine Schleife SD750 und S752).
  • MERKMALSPUNKTGRUPPIERUNG DURCH BEWEGUNGSVEKTORBETRAG UND RICHTUNG
  • Eine Bewegung zwischen den Videorahmen wird durch Berechnen von Bewegungsvektoren identifizierbaren „Merkmalspunkten” in angrenzende Rahmen erfasst. Bewegungsvektoren von Merkmalspunkten können im Unterschied zu einer globalen Bewegung der Kamera/Szene dann zum Zwecke der Identifizierung von bewegenden Objekten innerhalb der Szene „gruppiert” werden. Die globale Bewegung der Kamera/Szene wird analysiert, um zwischen einer beabsichtigten (z. B. Schwenken) und einer unbeabsichtigten (Zittern) globalen Bewegung zu unterscheiden.
  • Falls es keine Kamerabewegung gibt (keine Kamerabahn), dann wird jeder erfasste Merkmalspunkt von tatsächlich-stationären Objekten (z. B. die Ecken von Felsen, die Spitzen von Bergen) erwartet, das diese in der gleichen Position in jedem der zwei oder mehreren aufeinanderfolgenden Rahmen gefunden werden, und der Bewegungsvektor aller jener erfassten Bewegungspunkte wird als Null gemessen. Allerdings können, falls es eine Kamerabewegung gibt, dann die Vektoren der vielen Merkmalspunkte eines bestimmten tatsächlich-stationären Objekts unterschiedliche Beträge und Richtung aufweisen. Eine digitale Bildstabilisierungsschaltung kann verwendet werden, um eine Mehrzahl von Bewegungsvektoren (von Merkmalspunkten) korrekt zu „gruppieren”, sodass sie dem gleichen tatsächlich-stationären Objekt beigemessen werden.
  • Gewöhnliche Kamerabewegungen sind eine Vermischung von translatorischen und rotatorischen Bewegungen und der Abstand von der Kamera zu den Objekten in der Szene verändert sich. Während die translatorische Kamerabewegung zu den Betragsdifferenzen von Bewegungsvektoren basierend auf dem Objektabstand von der Kamera beitragen, trägt die rotatorische Kamerabewegung sowohl zu dem Betrag als auch zu der Richtung der Bewegungsvektoren bei.
  • 8A und 8B stellen die unterschiedlichen Vektoren dar, welche sich aus einer rotatorischen Kamerabewegung im Vergleich zu einer reinen translatorischen Vektorbewegung ergeben. In den Figuren weisen zwei ausgewählte Merkmalspunkte SFP4 und SFP5 des gleichen stationären physischen Objekts physikalisch den gleiche Abstand von der Kamera auf, und in dem Fall einer reinen translatorischen Kamerabewegung ist Vektor A der Bewegungsvektor von SFP4 und B ist der Bewegungsvektor von SFP5, und in dem Fall, der eine rotatorische Kamerabewegung enthält, ist Vektor A' der Bewegungsvektor von SFP4 und B' ist der Bewegungsvektor von SFP5.
  • Mit bloßen translatorischen Kamerabewegungsvektoren A und B wird man exakt die gleichen Bewegungsvektoren aufweisen, jedoch haben die Vektoren A' und B' einen unterschiedlichen Betrag und eine unterschiedliche Richtung aufgrund der rotatorischen Kamerabewegung, obwohl sie den gleichen Abstand von der Kamera aufweisen.
  • 8C zeigt unterschiedliche Vektoren, welche sich aus einer reinen translatorischen Vektorbewegung in dem Fall ergeben, bei dem zwei Merkmalspunkte des gleichen stationären Objekts unterschiedliche Abstände von der Kamera aufweisen. Angenommen zwei ausgewählte Merkmalspunkte SFP4 und SFP7 des gleichen stationären physikalischen Objekts weisen unterschiedliche physikalische Abstände von der Kamera auf, und in dem Fall einer reinen translatorischen Kamerabewegung ist Vektor A immer noch der Bewegungsvektor von SFP4 und Vektor C'' ist der Bewegungsvektor von SFP7. Da SFP7 näher an der Kamera ist als SFP4, während sich die Punkte auf dem gleichen stationären Objekt befinden, sind der Betrag ihrer Bewegungsvektoren unterschiedlich (Vektor C'' ist größer als Vektor A).
  • Somit wird eine Spanne eines Vektorunterschieds während eines Gruppierens von Bewegungsvektoren benötigt, um die Vektorbetrags- und Vektorrichtungs-(Winkel)-Differenzen zu berücksichtigen, welche durch diese Faktoren verursacht werden, sodass die Bewegungsvektoren aller Merkmalspunkte des gleichen stationären Objekts zusammengruppiert werden können. Der gewöhnliche Weg des Erfassens von Bewegungsvektorgruppen mit einer Fehlerspanne und die Verwendung von simplen Bewegungsvektardifferenzen ist eine Fehlerschwelle zu definieren.
  • Der Betrag der Bewegungsvektordifferenzen ΔM ist die Messung, welche als Basis für die Gruppierentscheidungen verwendet werden können, und die Fehlerspanne ThΔM kann definiert sein als: ΔM = SQRT((xa – xb)^2 + (ya – yb)^2) <ThΔM, wobei A = (xa, ya); B = (xb, yb); und
    ThΔM ist eine Fehlerspanne für den Betrag der Vektordifferenz ΔM (eine positive Zahl).
  • Der Betrag des Bewegungsvektordifferenz-Verfahrens ist dann angemessen, wenn die Kamerabewegung rein translatorisch ist (auf, ab, und/oder von Seite zu Seite), da die Bewegungsvektoren von allen Merkmalspunkten des stationären Objekts die gleiche Richtung aufweisen werden, da sie alle durch die gleiche translatorische Kamerabewegung definiert werden. Wie durch Vergleich von 8A und 8C dargestellt, können die Bewegungsvektoren von unterschiedlichen stationären Merkmalspunkten aufgrund von unterschiedlichen Abständen von dem/den Objekt(en) zu der Kamera auch unterschiedlich sein, selbst in dem Fall einer reinen translatorischen Kamerabewegung. Die Betragsdifferenzen von Bewegungsvektoren von Merkmalspunkten des gleichen stationären Objekts sind typischerweise relativ klein in der gewöhnlichen Videoszene, und die Betragsdifferenz kann auch durch Erlauben irgendeiner Spanne einer Vektorbetragsdifferenz (|A| – |B|) toleriert werden, und der Betrag des Bewegungsvektordifferenz ΔM-Verfahrens ist in diesem Fall angemessen.
  • 9A stellt einen Fall von zwei Bewegungsvektoren A und B dar, in dem der Betrag der Vektordifferenz ΔM eine gute Basis zum Zusammengruppieren von zwei Merkmalspunkten ist.
  • Der Betrag der Vektordifferenz ΔM alleine kann in manchen Fällen keine gute Basis zum Gruppieren von Vektoren sein.
  • 9B stellt einen Fall von zwei Bewegungsvektoren A' und B' dar, in dem der Betrag der Vektordifferenz ΔM keine gute Basis zum Zusammengruppieren von zwei Merkmalspunkten ist.
  • In 9A und 9B haben Vektorpaare (A, B) und (A', B') exakt den gleichen Betrag der Vektordifferenz (ΔM = ΔM'), wie gezeigt. Jedes Paar (A, B) und (A', B') kann auch dessen jeweiligen Betrag einer Vektordifferenz ΔM, ΔM' innerhalb der Fehlerspanne ThΔM aufweisen. Die Vektorpaare A und B können basierend auf dem Betrag von dessen Vektordifferenz ΔM passend zusammengruppiert werden. Allerdings weist das Vektorpaar A' und B' einen zu großen Winkel(gerichteten)-Unterschied auf (z. B. verglichen mit dem Paar A und B), um angemessen zu sein, um Vektor A' und Vektor B' zusammen in die gleiche Gruppe zu gruppieren.
  • Der Betrag des Vektordifferenz ΔM-Verfahren alleine kann in den Fällen für Bewegungsvektorgruppierung nicht geeignet sein, bei dem zwei Merkmalspunkte deren Betrag der Vektordifferenz der Spanne ThΔM aufweisen, während sie einen zu großen Winkel(gerichteten)-Unterschied aufweisen. Eine rotatorische Komponente der Kamerabahn kann bei einem oder mehreren Merkmalspunkten von stationären Objekten bewirken, den gleichen oder einen ähnlichen Betrag aufzuweisen, jedoch unterschiedliche Richtungen, welche nicht durch den Betrag des Vektordifferenzverfahrens erfasst wird. Somit kann der Betrag des Vektordifferenzverfahrens eine fehlerhafte Zitterkompensation und/oder weniger als eine optimale Videokomprimierung und/oder übermäßige rechnerische Leistung oder Zeitverbrauch und/oder Videoartefakte aufgrund falscher Videokomprimierung von stationären oder bewegenden Objekten verursachen.
  • Die Bewegungsvektoren von ausgewählten Merkmalspunkten (SFP), welche durch die hierarchische Blockmatching-Sucheinheit 730 der Merkmalspunktschaltung 3000 ausgegeben werden, werden als nächstes entsprechend ihres Betrags und Richtung gruppiert, um die Bewegungsvektoren von ausgewählten Merkmalspunkten (SFPs) mit Objekten in der Szene basierend auf der wahrgenommenen relativen Bewegung des Objekts zwischen aufeinanderfolgende Videorahmen zu verbinden.
  • Wenn eine Kamerabewegung eine rotatorische Komponente aufweist, wie z. B. etwa eine Achse senkrecht zu der Ebene der Bildsensor/Photodiodenmatrix, kann die Richtung der Bewegungsvektoren eines Objekts (z. B. der Hintergrund) nicht der gleiche sein. Sowohl der Betrag als auch die Richtung der Vektoren sind für unterschiedliche Merkmalspunkte des Hintergrunds unterschiedlich, selbst wenn sie tatsächlich-stationär sind und den gleichen Abstand von der Kamera aufweisen.
  • Anstatt lediglich den Betrag der Bewegungsvektordifferenz ΔM und die Fehlerspanne ThΔM für die Gruppierentscheidung zu verwenden, verwendet man das Betragsverhältnis von Bewegungsvektoren und einer normierten Vektordifferenz, um eine Menge von durch eine rotatorische Kamerabewegung verursachten Bewegungsvektordifferenzen zu erfassen und zu tolerieren.
  • Wobei Vektor A = (xa, ya) und Vektor B = (xb, yb).
  • Ein erstes Gruppierentscheidungskriterium basiert auf dem Betragsverhältnis |b|, wobei |b|^2 = (|B|/|A|)^2 = (|B|^2)/(|A|^2) = (xb^2 + yb^2)/(xa^2 + ya^2).
  • Ein zweites Gruppierentscheidungskriterium basiert auf einer normierten Vektordifferenz (zur Bewertung einer Winkeldifferenz verwendet) = |a – b|, wobei |a – b|^2 = [{(xa – xb)^2 + (ya – yb)^2}/(xa^2 + ya^2)].
  • Da die erste Gruppierentscheidung auf einem Betragsverhältnis (|B|/|A|) anstelle einer absoluten Differenz (A – B) basiert, wird eine Betragsverhältnisschwelle rth anstelle einer absoluten Fehlerspanne ThΔM verwendet. Für Gruppierentscheidungen wird eine untere Grenze einer Betragsverhältnisschwelle und eine obere Grenze einer Betragsverhältnisschwelle jeweils als MrLth und MrUth definiert. MrLth^2 < |b|^2 < MrUth^2 wobei MrLth ≡ (1 – rth); und MrUth ≡ (1 + rth); und 0 < rth < 1
  • Beispielsweise wird, falls 30% der Betragsverhältnisschwelle erlaubt wird, rth 0,3 sein; MrLth wird 0,7 sein; und MrUth wird 1,3 sein, was den nachstehenden Bereich ergibt: 0.7^2 < |b|^2 < 1.3^2
  • Für eine Winkeldifferenz zwischen dem Vektor A und dem Vektor B mit höchstens einer Schwelle von θth Grad, wobei das zweite Gruppierentscheidungskriterium ist |a – b|^2 < Math^2 wobei Math^2 = SQRT(1 + |b|^2 – 2·|b|·cosθth); und |b| = SQRT{(xb^2 + yb^2)/(xa^2 + ya^2)}
  • Das Gruppierverfahren mit Entscheidungen basierend auf diesen zwei Gruppierentscheidungskriterien kann ein optimales Bewegungsvektorgruppieren ausführen, selbst in Gegenwart einer rotatorischen Kamerabewegung.
  • 10 zeigt drei Vektordiagramme, welche die Berechnung einer normierten Vektordifferenz für das indirekte Maß einer Winkeldifferenz, welche für ein Merkmalspunktgruppieren des in 1A bis 1F dargestellten DIS-Verfahrens verwendet wird, darstellt. Mit Bezugnahme auf Diagramm (a) in 10 wird der Differenzvektor (A – B) zwischen dem Vektor A und dem Vektor B als der bezeichnete horizontale Vektor (A – B) gezeichnet. Zur Erleichterung des Lesens wird Diagramm (c) mit einem größeren Maßstab als die Diagramme (a) und (b) gezeichnet. Der absolute Betrag ΔM(A – B) des Differenzvektors (A – B) würde wie folgt berechnet werden: ΔM(A – B) = SQRT((xa – xb)^2 + (ya – yb)^2), wobei A = (xa, ya) B = (xb, yb)
  • Mit Bezugnahme auf Diagramm (b) in 10 wird der normierte Vektor-a als Vektor A, der durch den absoluten Wert des Vektors |A| geteilt wird, und somit weist der normierte Vektor-a einen Betrag von Eins auf (siehe Diagramm (c) von 10). Der normierte Vektor-b ist als Vektor B definiert, der durch den absoluten Wert des Vektors |A| geteilt wird. Die Beträge |A| und |B| sind durch folgende Gleichungen definiert: |A|^2 = (xa^2 + xa^2) |B|^2 = (xb^2 + xb^2)
  • Es sei angemerkt, dass b = B/|A|, somit das Betragsverhältnis des absoluten Werts |b| = |B|/|A| = |(B/|A|)| ist. Somit ist |b| der Betrag des normierten Vektors-b, der durch Teilen des Vektors B durch den Betrag |A| von Vektor A (d. h., b = B/|A|) normiert wurde. Somit ist das Betragsverhältnis |b| = SQRT{(xb^2 + yb^2)/(xa^2 – xb^2)}.
  • Da der Betrag |a| des normierten Vektors-a Eins ist, ist der Betrag |b| auch gleich zu dem Betragsverhältnis zwischen: dem Betrag |a| des normierten Vektors-A, der durch den Betrag |b| des normierten Vektors |b| geteilt wird. Somit wird der Betrag |b| als das Betragsverhältnis |b| bezeichnet. Das Betragsverhältnis |b| ist keine Funktion einer Winkeldifferenz zwischen den Vektoren A und B.
  • Bei unseren ersten Gruppierentscheidungskriterien wird überprüft, falls |b| (|b| = |A|/|B|) innerhalb der unteren und oberen Betragsverhältnisschwelle von MrLth und MrUth ist. Falls |b|^2 < MrLth^2 oder |b|^2 > MrUth^2 ist, dann wird entschieden, dass der Vektor A und der Vektor B nicht in einer gleichen Gruppe sind. Allerdings, falls MrLth^2 < |b|^2 < MrUth^2, dann wird ein zweiter Vergleich basierend unter Verwendung der normierten Vektordifferenz |a – b| als Kriterium ausgeführt.
  • Der absolute Betrag |(a – b)| der normierten Vektordifferenz (a – b) wird entsprechend dieser Gleichung errechnet: |a – b|^2 = [{(xa – xb)^2 + (ya – yb)^2}/{xa^2 + ya^2)]
  • Die normierte Vektordifferenz (a – b) weist einen absoluten Betrag |(a – b)|, wie in Diagramm (c) von 10 dargestellt, in der die Längen |a|, |b| und |(a – b)| von einem Dreieck mit einem Vektordifferenzwinkel θ, der auf der gegenüberliegenden Seite |(a – b)| liegt, was bedeutet, dass |(a – b)| auch mit dem Kosinussatz als Funktion von θ berechnet werden kann. Der Kosinussatz definiert die mathematische Beziehung zwischen der Länge einer unbekannten Seite eines Dreiecks zu der Länge der anderen Seite und des zu der unbekannten Seite gegenüberliegenden Winkels. Der Betrag |(a – b)| einer normierten Vektordifferenz (a – b) kann mit der Kosinussatzgleichung erhalten werden, falls der Winkel zwischen zwei Vektoren gegeben ist: |(a – b)| = SQRT(1 + |b|^2 – 2·|b|·cosθ).
  • Somit kann eine als eine Schwelle eines Betrags |(a – b)| einer normierten Vektordifferenz (a – b) (die der Winkeldifferenz θ in Diagramm (c) von 10 gegenüberliegende Seite des Dreiecks) ausgedrückte Winkelschwelle als eine Funktion von |b| und der Winkeldifferenz θ, wie durch den Kosinussatz angegeben, berechnet werden. Somit kann ein Schwellbetrag Math des Betrags |(a – b)| als Winkeldifferenzschwellenwert 0th definiert werden, wobei Math eine Funktion eines gewählten Schwellenwinkels θth ist. Somit kann das Quadrat des berechneten Betrags |(a – b)| einer normierten Vektordifferenz (a – b) mit dem Quadrat von Math verglichen werden. Somit wird |a – b|^2 mit Math^2 verglichen, um zu entscheiden, ob die Winkeldifferenz zwischen dem Vektor A und dem Vektor B klein genug ist, dass sie zusammen gruppiert werden sollen.
  • Wir definieren Math^2 = (1 + |b|^2 – 2·|b|·cosθth), wobei
    θth eine vorbestimmte Winkelschwelle für Gruppierentscheidungszwecke ist (z. B. 30 Grad), und |b| = |(B/|A|)| = SQRT{(xb^2 + yb^2)/(xa^2 + ya^2)}.
  • Falls |a – b|^2 kleiner als Math^2 ist, dann wird entschieden, dass der Vektor A und der Vektor B in der gleichen Gruppe sein können. Somit ist, falls |a – b|^2 kleiner als Math^2 ist, die geeignete Endgruppierentscheidung, dass der Vektor A und der Vektor B in der gleichen Gruppe sind.
  • Somit ist der Vektor A und der Vektor B in der gleichen Gruppe, falls |a – b|^2 kleiner als Math^2 ist und genau dann falls |b|^2 (≡(|B|/|A|)^2) größer als MrLth^2 und kleiner als MrUth^2 ist. Die exakte Berechnung von Math^2 erfordert eine Quadratwurzeloperation (d. h. zum Berechnen von |b|), und eine Quadratwurzeloperation kann rechenintensiv sein, oder erfordert eine erhebliche Hardwareimplementierung. Somit kann die Beseitigung einer Quadratwurzeloperation die Rechenintensität oder die Hardware signifikant verringern. Es wurde eine Annäherung für Math (d. h. Math = 0,5) entwickelt, die gute Gruppierergebnisse für |b| gleich 1 plus oder minus 30% (d. h. für 0.7 ≤ |b| ≤ 1.3) und innerhalb 30 Grad eines Vektorfehler(Vektordifferenz)-Winkel (d. h. für –30 Grad ≤ θ ≤ + 30 Grad) vorsieht. Somit wird das zweite Gruppierkriterium |a – b|^2 < 0.5^2.
  • Wenn die Beziehung zwischen der Winkeldifferenz θ, Betragsverhältnis |b| und einer normierten Differenz |a – b| dargestellt wird, wird das Diagramm von 12 erhalten.
  • 12 zeigt ein Diagramm des Betrags |(a – b)| einer normierten Vektordifferenz (a – b) gegenüber dem Betragsverhältnis |b| einer normierten Vektordifferenz (a – b) als eine Funktion von verschiedenen Werten einer Winkeldifferenz θ (zwischen 0 Grad und 90 Grad), welche die Verfügbarkeit einer Annäherung, welche für den Einsatzentscheidungsschritt dS1140 des Gruppieralgorithmus von 11 verfügbar ist, darstellt.
  • Durch Experimente ist bekannt, dass typische Videos ein gutes Gruppierergebnis mit einem Betragsverhältnis von größer als 1 plus oder minus 30% und mit einem Differenzwinkel θ bis zu 30 Grad größer ergeben, wie durch die Grenzen des quadratischen Bereichs in 12 angegeben. Dieser empirische Bereich ist für die Annäherung einer normierten Vektordifferenz zwischen Null und 0,5 wirksam, wie in dem Diagramm von 12 dargestellt.
  • Unter Verwendung der Annäherung kann die SQRT(1 + |b|^2 – 2·|b|·cosθ) als 0,5 angenähert werden, ungeachtet von |b|, um die rechnerische Belastung zu verringern. Somit wird mit dieser Annäherung das zweite Gruppierentscheidungskriterium |a – b|^2 < 0,5^2.
  • 11 zeigt ein Flussdiagramm, das einen Gruppierprozess gemäß einer Ausführungsform des vorliegenden erfinderischen Konzepts darstellt. Ein Gruppierprozess 1100 verwendet zwei Kriterien, welche eine normierte Vektordifferenz für das indirekte Maß einer Winkeldifferenz zwischen den Bewegungsvektoren der ausgewählten Merkmalspunkte (siehe den Bilderrahmen von 1A und 2A) zum Ausführen eines Vektorgruppierschritts von 1D des in 1A bis 1F dargestellten DIS-Verfahrens enthält. Der Gruppieralgorithmus 1100 enthält das Betragsverhältnis-Gruppierentscheidungskriterium (in Entscheidungsschritt SD1120) und das normierte Vektordifferenz-Gruppierentscheidungskriterium (in Entscheidungsschritt SD1140). Ein Paarungsalgorithmus (Schritte S1104, S1106, S1152, dS1150 und S1154), der extern an dem Gruppieralgorithmus 1100 operiert, verfolgt, welche Merkmalspunkte (Bewegungsvektoren) bereits mit den anderen gepaart wurden, welche ungepaart bleiben, und welche vollständig von dem Gruppieralgorithmus 1100 ausgeschlossen werden. Der Paarungsalgorithmus stellt ein Paar von SPF-Bewegungsvektoren A und B als Eingaben an den Gruppieralgorithmus 1100 bereit (S1104, S1106). Bei dem Anfangsschritt iS1102 werden eine Betragsverhältnisspanne(n) (z. B. MrLth^2 und MrUth^2) und eine Winkelspanne aus einer externen Schaltung empfangen und dem Gruppieralgorithmus bereitgestellt.
  • Der Gruppieralgorithmus 1100 berechnet zur Verwendung dieser berechneten Werte, um anschließend Berechnungen in dem zumindest anschließenden Schritten S1116, dS1120 und dS1140 vorzunehmen, |A|^2 basierend auf einem Vektor A und |B|^2 basierend auf einem empfangenen Vektor B (Schritte S1112 und S1114). Somit teilt, wenn der empfangene Vektor B von dem Gruppieren mit dem empfangenen Vektor A ausgeschlossen wird (durch den Ja-Zweig des Entscheidungsschritts dS1120 oder durch den Nein-Zweig des Entscheidungsschritts dS1140), der Paarungsalgorithmus einen neuen Vektor B (Schritt S1152) zu und der Gruppieralgorithmus berechnet einen neuen Wert von |B|^2 (Schritt S114) basierend auf dem neuen Vektor B, jedoch muss der berechnete Wert von |A|^2 (Schritt S112) eines aktuellen Vektors A nicht zur gleichen Zeit aktualisiert werden, da ein Vergleich des gleichen Vektors A fortgesetzt wird, jedoch mit neuen Vektor(en) B. Somit kann eine Hardware oder Software, die angepasst ist, um den Gruppieralgorithmus 1100 auszuführen, ausgebildet sein, um einen oder mehrere Fälle von den Werten |B|^2 und |A|^2 separat zu speichern, um rechnerisch effizient mehrere Vergleiche mit einem jener Werte vorzunehmen, solange wie nur einer aus den Vektoren A und B zu einer Zeit verändert wird.
  • Der Gruppieralgorithmus 1100 berechnet als Nächstes ein Betragsverhältnis (|b|^2) und |a – b|^2 (S1116) mit |A|^2 und |B|^2 (aus den Schritten S112 und S114). Das erste (Betragsverhältnis) Gruppierentscheidungskriterium wird in einem Entscheidungsschritt dS1120 angewandt. In dem Entscheidungsschritt dS1120 wird das Quadrat des Betragsverhältnisses |b|^2 mit Betragsverhältnisspannen (aus Schritt iS1102) verglichen. Falls (|A|/|B|)^2 < MrUth^2 oder (|A|/|B|)^2 > MrUth^2 (Nein-Zweig von Entscheidungsschritt dS1120), dann wird der aktuelle Vektor A nicht mit dem aktuellen Vektor B gruppiert und ein Vergleich mit dem aktuellen Vektor B wird beendet und ein neuer Vektor B wird ausgewählt (Schritt S1152). Falls (|A|/|B|)^2 zwischen MrLth^2 und MrUth^2 ist (Ja-Zweig von Entscheidungsschritt dS1120), dann kann ein aktueller Vektor A mit einem aktuellen Vektor B gruppiert werden und die zweiten Gruppierentscheidungskriterien werden angewandt (in Entscheidungsschritt dS1140). Falls |b| innerhalb eines vorbestimmten Bereichs ist (z. B. basierend auf dem Wert von |b|^2), und falls die Winkeldifferenz θ innerhalb eines vorbestimmten Bereichs ist (Ja-Zweig des Entscheidungsschritts dS1130), dann wird der Betrag Math des normierten Differenzvektors (a – b) angenähert (z. B. wie Math^2 = 0,5^2). Anderenfalls wird (Nein-Zweig des Entscheidungsschritts dS1130) der Betrag Math des normierten Differenzvektors (a – b) berechnet (S1132).
  • Als Nächstes wird der angenäherte oder berechnete Betrag Math des normierten Differenzvektors (a – b) in den zweiten (normierte Vektordifferenz) Gruppierentscheidungskriterien in Entscheidungsschritt dS1140 verwendet. In Entscheidungsschritt dS1140 wird das Quadrat von Math (Math^2) mit (|a – b|)^2 und/oder mit der Winkelspanne (aus Schritt iS1102) verglichen. Falls (|a – b|)^2 weniger als Math^2 ist (Ja-Zweig des Entscheidungsschritts dS1140), dann kann der aktuelle Vektor A mit einem aktuellen Vektor B (S1142) gruppiert werden. Falls (|A|/|B|)^2 nicht kleiner als Math^2 ist (Nein-Zweig des Entscheidungsschritts dS1140), dann wird der aktuelle Vektor A nicht mit dem aktuellen Vektor B gruppiert und ein Vergleich mit dem aktuellen Vektor B wird beendet und ein neuer Vektor B wird ausgewählt (Schritt S1152).
  • Wenn der aktuelle Vektor A mit allen verfügbaren Gruppierkandidatenvektor Bs verglichen wurde (Ja-Zweig des Entscheidungsschritts dS1150), dann wird ein neuer Vektor A ausgewählt und die Vergleiche für die verbleibenden (ungruppierten) Gruppierungskandidatenvektor Bs (S1154, S1112, usw.) gehen weiter, oder falls alle Vektoren gruppiert wurden, wartet der Gruppieralgorithmus 1100 bis ein neuer Rahmen verarbeitet werden muss.
  • 13 zeigt ein Blockdiagramm einer Merkmalspunkt-Gruppierschaltung 1300, welche eine Gruppieralgorithmusschaltung 1310 aufweist, welche ausgebildet ist zum Ausführen des Merkmalspunktgruppieralgorithmus von 11. Die Merkmalspunkt-Gruppierschaltung 1300 weist einen Betragsverhältnis(|b|)-Vergleicher 1320, der ausgebildet ist zum Ausführen der ersten Gruppierentscheidung (des Entscheidungsschritts dS1120 von 11) basierend auf den Kriterien der Betragsverhältnisschwellen (MrLth und MrUth), und einen Vektorwinkel-Vergleicher 1330 auf, der ausgebildet ist zum Ausführen der zweiten Gruppierentscheidung (von Entscheidungsschritt dS1140 von 11) basierend auf den Kriterien der normierten Vektordifferenz (für die Bewertung der Winkeldifferenz verwendet). Der Vektorwinkel-Vergleicher 1330 enthält in dieser beispielhaften Ausführungsform des erfinderischen Konzepts einen Betrag-einernormierten-Differenz-(Math)-Berechner/Schätzer 1334 und einen Betrag-einer-normierten-Differenz-(Math)-Vergleicher 1334. Der Betrag-einer-normierten-Differenz-(Math)-Berechner/Schätzer 1334 erzeugt oder berechnet so, wie vorstehend hier bezüglich der Schritte dS1130, S1132 und S1134 von 11 beschrieben.
  • Die Merkmalspunkt-Gruppierschaltung 1300 teilt den RAM-Speicher 350 mit der Merkmalspunktsschaltung 3000 von 3. Der SPF-Liste-352-Abschnitt des Speichers 350 enthält die Liste von ausgewählten Merkmalspunkten, welche durch den Merkmalspunktkandidatensortierer 340 ausgegeben werden. Die Paarungsalgorithmussteuerung 1302 in der Merkmalspunkt-Gruppierschaltung 1300 greift auf die SPF-Liste 352 zu und wählt den Vektoren A und den Vektoren B zum Vergleich in der Gruppieralgorithmusschaltung 1310, wie vorstehend hier bezüglich den Schritten S1152, S1154, dS1156 und dS1150 von 11 beschrieben. Wenn ein Vergleich eine oder mehrere Gruppen von Vektoren (Gruppe von ausgewählten Merkmalspunkten) ergibt, schreibt die Paarungsalgorithmussteuerung 1302 die gruppierten Vektoren oder eine anschauliche Liste davon in den FP-Gruppenbestandsaufnahmen 354-Abschnitt des Speichers 350. Gemäß einer Ausführungsform sind die Merkmalspunkt-Gruppierschaltung 1300 und der Speicher 350 in einen einzigen integrierten Schaltungschip verkörpert und aus dem Speicher 350 abrufbare Daten werden an Schaltungen, welche außerhalb des Chips liegen, über I-/O-Pins ausgegeben. Gemäß einer weiteren Ausführungsform sind die Merkmalspunkt-Gruppierschaltung 1300, der RAM-Speicher 350 und die Merkmalspunktschaltung 3000 in einem einzelnen integrierten Schaltungschip verkörpert. Gemäß einer derartigen Ausführungsform kann ein Durchschnittsfachmann auf einfache Weise erkennen, dass, falls eine zusätzliche Speicherkapazität benötigt wird, ein weiterer RAM-Speicher außerhalb des integrierten Speicherchips hinzugefügt werden kann.
  • Die Merkmalspunkt-Gruppierschaltung 1300 weist ferner einen |A|^2 Berechner 1312, einen |B|^2 Berechner 1312 und einen |b|^2 und |a – b|^2 Berechner 1316 auf, welche ausgebildet sind zum Ausführen jeweils der Schritte S1112, S1114 und S1116 von 11.
  • Der vorstehend offenbarte Gegenstand soll darstellend betrachtet werden und nicht beschränkend, und die angehängten Ansprüche beabsichtigen, alle derartigen Abwandlungen, Erweiterungen und weitere Ausführungsformen, welche innerhalb des Erfindungsgedankens und Schutzbereichs des erfinderischen Konzepts fallen, abzudecken. Somit soll, soweit dies gesetzlich zulässig ist, der Schutzumfang des erfinderischen Konzepts durch die breitest zulässige Interpretation der nachstehenden Ansprüche und deren Äquivalente bestimmt werden und sollen nicht durch die vorstehende detaillierte Beschreibung beschränkt oder begrenzt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 6895361 [0012]
    • US 7680186 [0012]

Claims (26)

  1. Verfahren zum Verarbeiten von Videodaten, aufweisend: Empfangen von ersten Bilddaten, die einen ersten Rahmen darstellen; Identifizieren einer Mehrzahl von Merkmalspunkten in dem ersten Rahmen; Empfangen von zweiten Bilddaten, die einen zweiten Rahmen darstellen; Herleiten eines Bewegungsvektors entsprechend jedem der Merkmalspunkte; Auswählen eines ersten der Bewegungsvektoren als aktuellen Vektor A und Auswählen eines zweiten der Bewegungsvektoren als aktuellen Vektor B; und Vergleichen des Vektors A mit dem Vektor B basierend auf deren Vektorbetragsverhältnis und deren Winkeldifferenz.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Einstellen einer Betragsverhältnisschwelle und einer Winkeldifferenzschwelle; und Zusammengruppieren des Vektors A und des Vektors B, falls deren Vektorbetragsverhältnis innerhalb der Betragsverhältnisschwelle fällt und deren Winkeldifferenz innerhalb der Winkeldifferenzschwelle fällt.
  3. Verfahren nach Anspruch 2, ferner aufweisend: kein Zusammengruppieren des Vektors A und des Vektors B, falls deren Vektorbetragsverhältnis außerhalb der Betragsverhältnisschwelle fällt oder falls deren Winkeldifferenz außerhalb der Winkeldifferenzschwelle fällt.
  4. Verfahren nach Anspruch 1, ferner aufweisend ein Identifizieren einer ersten Merkmalspunktgruppe, falls das Vektorbetragsverhältnis des aktuellen Vektors A und des aktuellen Vektors B außerhalb der Betragsverhältnisschwelle fällt oder falls deren Winkeldifferenz außerhalb der Winkeldifferenzschwelle fällt, anschließend wird entschieden, den aktuellen Vektor A und den aktuellen Vektor B nicht zusammen zu gruppieren und einen dritten der Bewegungsvektoren als neuen Vektor B auszuwählen, und anschließend den aktuellen Vektor A mit dem neuen Vektor B basierend auf deren Vektorbetragsverhältnis und deren Winkeldifferenz zu vergleichen, um zu entscheiden, ob der aktuelle Vektor A und der neue Vektor B zusammen gruppiert werden.
  5. Verfahren nach Anspruch 3, ferner aufweisend ein Identifizieren einer zweiten Merkmalspunktgruppe durch: falls den aktuelle Vektor A und der aktuelle Vektor B nicht zusammengruppiert werden, da deren Vektorbetragsverhältnis außerhalb der Betragsverhältnisschwelle fällt oder da deren Winkeldifferenz außerhalb der Winkeldifferenzschwelle fällt, dann Auswählen des zweiten der Bewegungsvektoren als neuen Vektor A und Auswählen eines vierten der Bewegungsvektoren als neuen Vektor B, und anschließend Vergleichen des aktuellen Vektors A mit dem neuen Vektor B basierend auf deren Vektorbetragsverhältnis und deren Winkeldifferenz, um zu entscheiden, ob der aktuelle Vektor A und der neue Vektor B zusammen gruppiert werden soll.
  6. Verfahren nach Anspruch 5, wobei ein Vergleich des Vektorbetragsverhältnisses ein Berechnen (|B|/|A|)^2 = ((xb^2 + yb^2)/(xa^2 + ya^2)) aufweist.
  7. Verfahren nach Anspruch 1, wobei die Betragsverhältnisschwelle rth ist, sodass (1 – r)^2 < (|B|/|A|)^2 <(1 + r)^2 ist, wobei r eine vorbestimmte reelle Zahl kleiner als Eins und größer als Null ist.
  8. Verfahren nach Anspruch 1, wobei ein Vergleich der Winkeldifferenz zwischen dem Vektor A und dem Vektor B einen Vergleich des Quadrats des Betrags der normierten Vektordifferenz |a – b|^2 mit der Winkeldifferenzschwelle Math^2 aufweist, wobei |a – b|^2 = {(xa – xb)^2 + (ya – yb)^2}/(xa^2 + ya^2) ist.
  9. Verfahren nach Anspruch 8, wobei die Winkeldifferenzschwelle Math^2 basierend auf einer vorbestimmten Winkelschwelle θth berechnet wird, wobei Math^2 = (1 + |b|^2 – 2·|b|·cosθth) ist, und wobei |b| = SQRT{(|B|/|A|)^2) ist, und wobei ein Vergleich des Vektors A mit dem Vektor B mit lediglich einer Quadratwurzeloperation ausgeführt wird.
  10. Verfahren nach Anspruch 8, wobei die Winkeldifferenzschwelle Math^2 = 0,5^2.
  11. Verfahren nach Anspruch 1, wobei ein Vergleich des Vektors A mit dem Vektor B ohne Verwendung einer Quadratwurzeloperation ausgeführt wird.
  12. Videoverarbeitungsschaltung, aufweisend: eine Merkmalspunktschaltung (3000), die ausgebildet ist, um eine Mehrzahl von Merkmalspunkten in einem ersten Rahmen zu identifizieren und einen Bewegungsvektor zwischen dem ersten Rahmen und einem zweiten Rahmen für jeden Merkmalspunkt herzuleiten; eine Paarungssteuerung, die ausgebildet ist, um einen der Bewegungsvektoren als aktuellen Vektor A (xa, ya) auszuwählen und einen anderen der Bewegungsvektoren als aktuellen Vektor B (xb, yb) auszuwählen; einen Betragsverhältnis-Vergleicher, der ausgebildet ist, um einen Vektor A mit einem Vektor B basierend auf deren Vektorbetragsverhältnis zu vergleichen; und einen Vektorwinkel-Vergleicher (1330), der ausgebildet ist, um den Vektor A mit dem Vektor B basierend auf deren Vektorbetragsdifferenz zu vergleichen.
  13. Schaltung nach Anspruch 12, wobei der Betragsverhältnis-Vergleicher das Quadrat des Betragsverhältnisses (|B|/|A|)^2 mit einer Betragsverhältnisschwelle vergleicht, wobei (|B|/|A|)^2 = ((xb^2 + yb^2)/(xa^2 + ya^2)) ist.
  14. Schaltung nach Anspruch 12, wobei die Vektorbetragsverhältnisschwelle gleich (|A|/|B|)^2 ist.
  15. Schaltung nach Anspruch 12, wobei die Betragsverhältnisschwelle rth ist, sodass (1 – r)^2 < (|B|/|A|)^2 < (1 + r)^2 ist, wobei r eine vorbestimmte reelle Zahl kleiner als Eins und größer als Null ist.
  16. Schaltung nach Anspruch 12, wobei der Vektorwinkel-Vergleicher (1330) das Quadrat des Betrags der normierten Vektordifferenz |a – b|^2 mit einer Winkeldifferenzschwelle Math^2 vergleicht, wobei |a – b|^2 = {(xa – xb)^2 + (ya – yb)^2}/(xa^2 + ya^2) ist.
  17. Schaltung nach Anspruch 16, wobei die Winkeldifferenzschwelle Math^2 basierend auf einer vorbestimmten Winkelschwelle θth berechnet wird, wobei Math^2 = (1 + |b|^2 – 2·|b|·cosθth) ist, und wobei |b| = SQRT{(|B|/|A|^2) ist.
  18. Schaltung nach Anspruch 16, wobei die Winkeldifferenzschwelle Math^2 = 0,5^2 ist.
  19. Schaltung nach Anspruch 12, ferner aufweisend einen Merkmalspunktgruppen-Speicher, der ausgebildet ist, um eine erste Gruppe von Merkmalspunkten mit einer ersten Bewegungseigenschaft und eine zweite Gruppe von Merkmalspunkten mit einer zweiten Bewegungseigenschaft zu speichern.
  20. Schaltung nach Anspruch 12, die ferner I/O-Pins aufweist, die mit dem Merkmalspunktgruppen-Speicher verbunden sind, um aus dem Speicher abgerufene Daten zu einer Schaltung außerhalb eines Chips zu übermitteln.
  21. Verfahren zum Verarbeiten von Videodaten, aufweisend: Schätzen eines Bewegungsvektors für jeden Merkmalspunkt in einem ersten Rahmen der Videodaten; Gruppieren von Bewegungsvektoren in Bewegungsvektorgruppen basierend auf Vektorbetragsverhältnissen und Winkeldifferenzen; und Auswählen einer Gruppe, die Bewegungsvektoren enthält, welche die Bewegung eines stationären Objekts innerhalb einer Szene des ersten Rahmens darstellt.
  22. Verfahren nach Anspruch 21, wobei der Gruppierschritt ein Vergleichen eines Vektors A mit einem Vektor B basierend auf deren Vektorbetragsverhältnis und deren Winkeldifferenz enthält.
  23. Verfahren nach Anspruch 21, ferner aufweisend Schätzen eines Bewegungsvektors für jede einer Mehrzahl von Kacheln, die aus einem Abschnitt des ersten Rahmens mit unterabgetasteten Luminanzdaten aufgeteilt werden, und Auswählen des Kachelbewegungsvektorkandidats mit der kleinsten Summe der absoluten Differenz (SAD); und Gruppieren von Kachelbewegungsvektoren in Kachelbewegungsvektorgruppen basierend auf Vektorbetragsverhältnissen und Winkeldifferenzen.
  24. Verfahren nach Anspruch 21, wobei das Auswählen einer Bewegungsvektorgruppe, die ein stationäres Objekt innerhalb des ersten Rahmens darstellt, ein Ablehnen zumindest einer Bewegungsvektorgruppe, die eine lokale Bewegung der bewegenden Objekte in dem ersten Rahmen darstellt, enthält.
  25. Kamera, aufweisend: eine Bilderfassungsschaltung, die ausgebildet ist, um Bilder zu erfassen und eine Mehrzahl von Bilder in einen ersten Rahmen und einen zweiten Rahmen von Bilderdaten umzuwandeln; und einen Videoverarbeitungs-Schaltungschip, aufweisend: eine Merkmalspunktschaltung (3000), die ausgebildet ist, um eine Mehrzahl von Merkmalspunkten in dem ersten Rahmen zu identifizieren und einen Bewegungsvektor zwischen dem ersten Rahmen und dem zweiten Rahmen für jeden Merkmalspunkt herzuleiten; eine Paarungssteuerung, die ausgebildet ist zum Auswählen jedes Paares von Bewegungsvektoren aus den Bewegungsvektoren der Merkmalspunkte; einen Betragsverhältnis-Vergleicher, der ausgebildet ist zum Vergleichen jedes Paares von Bewegungsvektoren basierend auf deren Vektorbetragsverhältnis; und einen Vektorwinkel-Vergleicher (1330), der ausgebildet ist zum Vergleichen jedes Paares von Bewegungsvektoren basierend auf deren Vektorwinkeldifferenz.
  26. Kamera nach Anspruch 25, die ferner eine Gruppierschaltung (1300) enthält, die ausgebildet ist zum Sortieren von Bewegungsvektoren in Gruppen basierend auf Bewegungseigenschaften, und zum Auswählen einer Bewegungsvektorgruppe, um ein stationäres Objekt innerhalb einer Szene des Rahmens darzustellen.
DE102011056997A 2010-12-23 2011-12-23 Vorrichtung zur digitalen Bildstabilisierung Pending DE102011056997A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201061426970P 2010-12-23 2010-12-23
US61/426,975 2010-12-23
US61/426,970 2010-12-23
US201161426975P 2011-12-23 2011-12-23

Publications (1)

Publication Number Publication Date
DE102011056997A1 true DE102011056997A1 (de) 2012-08-09

Family

ID=46547102

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011056997A Pending DE102011056997A1 (de) 2010-12-23 2011-12-23 Vorrichtung zur digitalen Bildstabilisierung

Country Status (1)

Country Link
DE (1) DE102011056997A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109983469A (zh) * 2016-11-23 2019-07-05 Lg伊诺特有限公司 使用车辆驾驶信息的图像分析方法、装置、系统和程序以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895361B2 (en) 2002-02-23 2005-05-17 Samsung Electronics, Co., Ltd. Adaptive motion estimation apparatus and method
US7680186B2 (en) 2003-07-29 2010-03-16 Samsung Electronics Co., Ltd. Apparatus for estimating motion considering correlation between blocks and method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895361B2 (en) 2002-02-23 2005-05-17 Samsung Electronics, Co., Ltd. Adaptive motion estimation apparatus and method
US7680186B2 (en) 2003-07-29 2010-03-16 Samsung Electronics Co., Ltd. Apparatus for estimating motion considering correlation between blocks and method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109983469A (zh) * 2016-11-23 2019-07-05 Lg伊诺特有限公司 使用车辆驾驶信息的图像分析方法、装置、系统和程序以及存储介质
CN109983469B (zh) * 2016-11-23 2023-08-08 Lg伊诺特有限公司 使用车辆驾驶信息的图像分析方法、装置、系统和程序以及存储介质

Similar Documents

Publication Publication Date Title
DE102011056972A1 (de) Vorrichtung und Verfahren zur digitalen Bildstabilisierung
DE112018002228B4 (de) Konfigurierbare faltungsmaschine für verschachtelte kanaldaten
DE69812882T2 (de) Verfahren zur bewegungskompensierten Mehrhalbbildverbesserung von Videostandbildern
DE60221757T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Entfernung des Mosaikeffekts und Grössenänderung von Rohbilddaten
DE69735488T2 (de) Verfahren und vorrichtung zum ausrichten von bildern
DE4433329C2 (de) Bewegungsvektor-Detektionsverfahren und Bewegungsvektor-Detektionsvorrichtung
DE69531583T2 (de) Bildverarbeitungsverfahren und -gerät
DE102006001904B4 (de) Verfahren und Gerät für das automatische Anpassen von Überwachungsbildfeldern basierend auf Bildänderung
DE102014014944A1 (de) Füllen eines Zielbereichs unter Verwendung von Transformationen
US5635994A (en) Method of making a hierarchical estimate of image motion in a television signal
EP2929503B1 (de) Verfahren und vorrichtung zur erzeugung eines verbesserten farbbildes mit einem sensor mit farbfilter
DE102015116599A1 (de) Elektronische Vorrichtung und Verfahren zum Steuern ihrer Kameras
DE102011006272A1 (de) Bildverarbeitungsvorrichtung und Verfahren des Steuerns von dieser
DE112011103452T5 (de) Verfahren zum Angleichen von Pixeln einer Entfernungsdarstellung
DE102012006493A1 (de) Kameraimplementierung des Wählens und Stitchens von Einzelbildern für Panoramaaufnahmen
DE102010046259A1 (de) Bildrequenzumwandlung unter Verwendung von Bewegungseinschätzung und -kompensation
DE102015102772B4 (de) Bildverarbeitungsvorrichtung und Verfahren für deren Steuerung
DE112008004060T5 (de) Verfahren und digitale Bilderzeugungsvorrichtung, die angepasst ist zum Auswählen einer Fokuseinstellung
DE102015110326A1 (de) Bildverarbeitungsvorrichtung, Verfahren zum Steuern derselben und Speichermedium
RU2690757C1 (ru) Система синтеза промежуточных видов светового поля и способ ее функционирования
EP2229784A1 (de) Verfahren und vorrichtung zur echtzeit-multiview-erzeugung
DE112017007695T5 (de) Facettenaugen-bildaufnahmevorrichtung, bildverarbeitungsverfahren, programm und aufzeichnungsmedium
DE102015110026B4 (de) Bildverarbeitungsvorrichtung, zugehöriges steuerverfahren und speichermedium
CN113436130B (zh) 一种非结构光场智能感知系统与装置
DE102011056997A1 (de) Vorrichtung zur digitalen Bildstabilisierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed