DE112021002288T5 - Inhaltsbasierte bildverarbeitung - Google Patents

Inhaltsbasierte bildverarbeitung Download PDF

Info

Publication number
DE112021002288T5
DE112021002288T5 DE112021002288.1T DE112021002288T DE112021002288T5 DE 112021002288 T5 DE112021002288 T5 DE 112021002288T5 DE 112021002288 T DE112021002288 T DE 112021002288T DE 112021002288 T5 DE112021002288 T5 DE 112021002288T5
Authority
DE
Germany
Prior art keywords
content
image
pixel
map
factor
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
DE112021002288.1T
Other languages
English (en)
Inventor
Ching E. Ho
D. Amnon Silverstein
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE112021002288T5 publication Critical patent/DE112021002288T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • 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/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • 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
    • 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/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Image Processing (AREA)

Abstract

Einige Ausführungsformen beziehen sich auf das Schärfen von Segmenten eines Bildes, die basierend auf dem Inhalt in dem Bild unterschiedlich sind. Die inhaltsbasierte Schärfung wird von einer Inhaltsbildverarbeitungsschaltung durchgeführt, die Luminanzwerte eines Bildes und eine Inhaltskarte empfängt. Die Inhaltskarte identifiziert Inhaltskategorien in Segmenten des Bildes. Basierend auf einer oder mehreren der identifizierten Inhaltskategorien bestimmt die Schaltung einen Inhaltsfaktor, der einem Pixel zugeordnet ist. Der Inhaltsfaktor kann auch auf einem Textur- und/oder einem Chromawert basieren. Ein Texturwert zeigt eine Wahrscheinlichkeit einer Inhaltskategorie an und basiert auf erkannten Kanten im Bild. Ein Chromawert zeigt eine Wahrscheinlichkeit einer Inhaltskategorie an und basiert auf Farbinformationen des Bildes. Die Schaltung empfängt den Inhaltsfaktor und wendet ihn auf eine Version des Luminanzwerts des Pixels an, um eine geschärfte Version des Luminanzwerts zu generieren.

Description

  • STAND DER TECHNIK
  • 1. Gebiet der Offenbarung
  • Die vorliegende Offenbarung bezieht sich auf eine Schaltung zur Verarbeitung von Bildern und insbesondere auf die Schärfung von Segmenten eines Bildes, die basierend auf dem Inhalt im Bild unterschiedlich sind.
  • 2. Beschreibung des Stands der Technik
  • Von einem Bildsensor erfasste oder von anderen Datenquellen empfangene Bilddaten werden häufig in einer Bildverarbeitungspipeline verarbeitet, bevor sie weiterverarbeitet oder verbraucht werden. Beispielsweise können Rohbilddaten korrigiert, gefiltert oder auf andere Weise modifiziert werden, bevor sie nachfolgenden Komponenten, wie beispielsweise einem Videocodierer, bereitgestellt werden. Um Korrekturen oder Verbesserungen für erfasste Bilddaten durchzuführen, können verschiedene Komponenten, Einheitsstufen oder Module verwendet werden.
  • Solch eine Bildverarbeitungspipeline kann so strukturiert sein, dass Korrekturen oder Erweiterungen der erfassten Bilddaten in einer zweckdienlichen Weise durchgeführt werden können, ohne dass andere Systemressourcen verbraucht werden. Obwohl viele Bildverarbeitungsalgorithmen durch Ausführen von Softwareprogrammen auf einer zentralen Verarbeitungseinheit (CPU) ausgeführt werden können, würde die Ausführung solcher Programme auf der CPU beträchtliche Bandbreite der CPU und anderer peripherer Ressourcen verbrauchen sowie den Energieverbrauch erhöhen. Folglich sind Bildverarbeitungspipelines oft als eine Hardware-Komponente getrennt von der CPU implementiert und dafür vorgesehen, einen oder mehrere Bildverarbeitungsalgorithmen auszuführen.
  • Bildverarbeitungspipelines schließen oft Schärfungs- oder Glättungsprozesse ein. Diese Prozesse werden unter Verwendung eines oder mehrerer Abstimmungsparameter implementiert, die gleichmäßig über das gesamte Bild angewendet werden. Dadurch können ein oder mehrere Segmente des Inhalts im Bild auf eine Weise geglättet oder geschärft werden, die das Aussehen des endgültigen Bildes negativ beeinflusst.
  • In ähnlicher Weise werden auch andere Bildverarbeitungsprozesse wie Tonabbildung, Weißabgleich und Rauschreduzierung unter Verwendung eines oder mehrerer Abstimmungsparameter implementiert, die im Allgemeinen gleichmäßig über das gesamte Bild angewendet werden. Dadurch können ein oder mehrere Segmente des Inhalts im Bild auf eine Weise verarbeitet werden, die das Aussehen des endgültigen Bildes negativ beeinflusst.
  • KURZDARSTELLUNG
  • Einige Ausführungsformen beziehen sich auf einen Bildprozessor, der eine Inhaltsbildverarbeitungsschaltung einschließt, die einen Inhaltsfaktor unter Verwendung einer Inhaltskarte bestimmt, die Inhaltskategorien in Segmenten eines Bildes identifiziert. Die Inhaltsbildverarbeitungsschaltung schließt eine Inhaltsfaktorschaltung und eine Inhaltsänderungsschaltung ein, die mit der Inhaltsfaktorschaltung gekoppelt ist. Die Inhaltsfaktorschaltung bestimmt den einem Pixel des Bildes zugeordneten Inhaltsfaktor gemäß den identifizierten Inhaltskategorien im Bild und mindestens einem von Texturwerten von Pixeln im Bild oder Chromawerten von Pixeln im Bild. Ein Texturwert zeigt eine Wahrscheinlichkeit einer Inhaltskategorie an, die dem Pixel basierend auf einer Textur im Bild zugeordnet ist. Ein Chromawert zeigt eine Wahrscheinlichkeit einer Inhaltskategorie an, die dem Pixel basierend auf Farbinformationen des Bildes zugeordnet ist. Die Inhaltsänderungsschaltung empfängt den Inhaltsfaktor von der Inhaltsfaktorschaltung. Die Inhaltsänderungsschaltung erzeugt eine geschärfte Version eines Luminanzpixelwerts des Pixels, indem mindestens der Inhaltsfaktor auf eine Version eines Luminanzpixelwerts des Pixels angewendet wird.
  • In einigen Ausführungsformen wird die Inhaltskarte von einer Schaltung des neuronalen Prozessors generiert, die einen maschinell erlernten Vorgang an einer Version des Bildes durchführt, um die Inhaltskarte zu generieren.
  • In einigen Ausführungsformen ist die Inhaltskarte relativ zum Bild herunterskaliert. Die Inhaltsfaktorschaltung kann den Inhaltsfaktor durch Hochabtasten der Inhaltskarte bestimmen. Die Inhaltskarte kann hochabgetastet werden durch: (1) Erhalten von Inhaltsfaktoren, die Rasterpunkten in der Inhaltskarte zugeordnet sind, und (2) Interpolieren der Inhaltsfaktoren, die den Rasterpunkten zugeordnet sind, die das Pixel umgeben, wenn die Inhaltskarte vergrößert wird, um die Größe des Bildes anzupassen.
  • In einigen Ausführungsformen wird der Inhaltsfaktor gemäß einem Wahrscheinlichkeitswert gewichtet. Der Wahrscheinlichkeitswert basiert auf einer der identifizierten Kategorien des Inhalts im Bild, einem Texturwert und einem Chromawert.
  • In einigen Ausführungsformen sind die Luminanzpixelwerte in den ersten Informationen des Bildes eingeschlossen, wenn die Luminanzversion des Bildes in die ersten Informationen und zweite Informationen geteilt wird, die Frequenzkomponenten einschließt, die niedriger sind als die Frequenzkomponenten der ersten Komponente.
  • In einigen Ausführungsformen schließt der Bildprozessor einen bilateralen Filter ein, der mit der Inhaltsbildverarbeitungsschaltung gekoppelt ist. Der bilaterale Filter erzeugt die Version des Luminanzpixelwerts.
  • In einigen Ausführungsformen wendet die Inhaltsänderungsschaltung den Inhaltsfaktor auf die Version des Luminanzpixelwerts an, indem sie den Inhaltsfaktor mit der Version des Luminanzpixelwerts multipliziert, wenn der Inhaltsfaktor über einem Schwellenwert liegt. Die Inhaltsänderungsschaltung wendet den Inhaltsfaktor auf die Version des Luminanzpixelwerts an, indem sie den Luminanzpixelwert der Version basierend auf dem Inhaltsfaktor als Reaktion darauf, dass der Inhaltsfaktor unter dem Schwellenwert liegt, überblendet.
  • In einigen Ausführungsformen ist die Inhaltskarte eine Wärmekarte, die einen Betrag der Schärfung anzeigt, der auf die Pixel des Bildes angewendet werden soll, die den Rasterpunkten in der Inhaltskarte entsprechen.
  • Figurenliste
    • Figur (FIG.) 1 ist ein Diagramm auf hoher Ebene von einer elektronischen Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockdiagramm, das Komponenten in der elektronischen Vorrichtung gemäß einer Ausführungsform veranschaulicht.
    • 3 ist ein Blockdiagramm, das Bildverarbeitungspipelines veranschaulicht, die gemäß einer Ausführungsform unter Verwendung eines Bildsignalprozessors implementiert sind.
    • 4 ist ein Blockdiagramm, das einen Abschnitt der Bildverarbeitungspipeline einschließlich einer Mehrband-Rauschreduzierungsschaltung gemäß einer Ausführungsform veranschaulicht.
    • 5 ist ein Blockdiagramm, das eine Schaltung des neuronalen Prozessors veranschaulicht, die gemäß einer Ausführungsform eine Inhaltskarte für den Bildsignalprozessor bereitstellt.
    • 6A ist ein beispielhaftes Eingabebild für die Schaltung des neuronalen Prozessors gemäß einer Ausführungsform.
    • 6B ist eine Inhaltskarte basierend auf dem Eingabebild von 6A gemäß einer Ausführungsform.
    • 7 ist ein Blockdiagramm, das Komponenten einer ersten Schaltung der Kontrastverstärkungsstufe gemäß einer Ausführungsform veranschaulicht.
    • 8 ist ein Blockdiagramm, das Komponenten einer Inhaltsbildverarbeitungsschaltung gemäß einer Ausführungsform veranschaulicht.
    • 9 ist ein Diagramm, das ein Texturmodell gemäß einer Ausführungsform veranschaulicht.
    • 10 ist ein Diagramm, das ein Chromamodell gemäß einer Ausführungsform veranschaulicht.
    • 11 ist ein Diagramm, das ein Verfahren zur Hochabtastung einer Inhaltskarte gemäß einer Ausführungsform veranschaulicht.
    • 12 ist ein Flussdiagramm, das ein Verfahren zur Schärfung eines oder mehrerer Pixel eines Bildes basierend auf dem Inhalt innerhalb von Segmenten des Bildes gemäß einer Ausführungsform veranschaulicht.
  • Die Figuren zeigen und die detaillierte Beschreibung beschreibt verschiedene nicht einschränkende Ausführungsformen nur zum Zwecke der Veranschaulichung.
  • DETAILLIERTE BESCHREIBUNG
  • Es wird nun ausführlich auf Ausführungsformen Bezug genommen, von denen Beispiele in den beigefügten Zeichnungen veranschaulicht sind. In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details aufgeführt, um für ein umfassendes Verständnis der verschiedenen beschriebenen Ausführungsformen zu sorgen. Die beschriebenen Ausführungsformen können jedoch ohne diese spezifischen Details ausgeführt werden. In anderen Fällen wurden hinlänglich bekannte Verfahren, Vorgehensweisen, Komponenten, Schaltungen und Netzwerke nicht im Detail beschrieben, um Gesichtspunkte der Ausführungsformen nicht unnötig zu verschleiern.
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf das Schärfen von Segmenten eines Bildes basierend auf Inhalt innerhalb der Segmente, wie durch die Inhaltskarte angegeben. Ein Inhaltsfaktor für ein Pixel oder ein Segment des Bildes wird basierend auf einer oder mehreren der identifizierten Inhaltskategorien bestimmt, die dem Pixel oder dem Segment zugeordnet sind. Der Inhaltsfaktor kann außerdem basierend auf einem Satz von Texturwerten und/oder einem Satz von Chromawerten angepasst werden. Ein Texturwert zeigt eine Wahrscheinlichkeit einer der identifizierten Inhaltskategorien an und basiert auf einer Textur im Bild. Ein Chromawert zeigt eine Wahrscheinlichkeit einer der identifizierten Inhaltskategorien an und basiert auf Farbinformationen des Bildes. Der Inhaltsfaktor wird auf das Pixel oder das Segment angewendet, um eine geschärfte Version des Luminanzwerts zu generieren.
  • Beispielhafte elektronische Vorrichtung
  • Es werden Ausführungsformen von elektronischen Vorrichtungen, von Benutzerschnittstellen für solche Vorrichtungen und zugehörige Verfahren zur Verwendung solcher Vorrichtungen beschrieben. In einigen Ausführungsformen handelt es sich bei der Vorrichtung um eine tragbare Kommunikationsvorrichtung, wie ein Mobiltelefon, das auch andere Funktionen umfasst, wie etwa die eines persönlichen digitalen Assistenten (Personal Digital Assistant, PDA) und/oder Funktionen zur Wiedergabe von Musik. Beispielhafte Ausführungsformen von tragbaren Multifunktionsvorrichtungen schließen, ohne Einschränkung, die iPhone®-, iPod Touch®-, Apple Watch®- und iPad®-Vorrichtungen von Apple Inc. in Cupertino, Kalifornien, ein. Optional werden auch andere tragbare elektronische Vorrichtungen wie Wearables, Laptops oder Tablet-Computer verwendet. In einigen Ausführungsformen ist die Vorrichtung keine tragbare Kommunikationsvorrichtung, sondern ein Desktop-Computer oder eine andere Rechenvorrichtung, die nicht für die tragbare Verwendung ausgelegt ist. In einigen Ausführungsformen kann die offenbarte elektronische Vorrichtung eine berührungsempfindliche Oberfläche umfassen (z. B. eine Touchscreen-Anzeige und/oder ein Touchpad). Eine beispielhafte elektronische Vorrichtung, die nachstehend in Verbindung mit 1 beschrieben wird (z. B. Vorrichtung 100) kann eine berührungsempfindliche Oberfläche zum Empfangen von Benutzereingaben einschließen. Die elektronische Vorrichtung kann auch eine oder mehrere andere physikalische Benutzerschnittstellenvorrichtungen, wie eine physikalische Tastatur, eine Maus und/oder einen Joystick, einschließen.
  • Figur (FIG.) 1 ist ein Diagramm auf hoher Ebene einer elektronischen Vorrichtung 100 gemäß einer Ausführungsform. Die Vorrichtung 100 kann eine oder mehrere physische Tasten, wie eine „Home“- oder Menütaste 104, einschließen. Die Menütaste 104 wird zum Beispiel verwendet, um zu einer beliebigen Anwendung aus einer Reihe von Anwendungen zu navigieren, die auf der Vorrichtung 100 ausgeführt werden. In einigen Ausführungsformen schließt die Menütaste 104 einen Fingerabdrucksensor ein, der einen Fingerabdruck auf der Menütaste 104 identifiziert. Der Fingerabdrucksensor kann verwendet werden, um zu bestimmen, ob ein Finger auf der Menütaste 104 über einen Fingerabdruck verfügt, der mit einem für das Entsperren der Vorrichtung 100 gespeicherten Fingerabdruck übereinstimmt. Alternativ dazu ist in einigen Ausführungsformen die Menütaste 104 als Softkey in einer grafischen Benutzerschnittstelle (GUI) implementiert, die auf einem Touchscreen angezeigt wird.
  • In einigen Ausführungsformen umfasst die Vorrichtung 100 den Touchscreen 150, die Menütaste 104, die Drucktaste 106 zum Ein-/Ausschalten und zum Sperren der Vorrichtung, die Lautstärkeregelungstasten 108, den SIM (Subscriber Identity Module)-Kartenschlitz 110, den Kopfhöreranschluss 112 und einen externen Anschluss 124 zum Docking/Aufladen. Die Drucktaste 106 kann verwendet werden, um die Vorrichtung ein- und auszuschalten, indem die Taste gedrückt wird und die Taste für ein vordefiniertes Zeitintervall im gedrückten Zustand gehalten wird; um die Vorrichtung zu sperren, indem die Taste gedrückt und die Taste losgelassen wird, bevor das vordefinierte Zeitintervall verstrichen ist; und/oder um die Vorrichtung zu entriegeln oder einen Entriegelungsprozess zu initiieren. In einer alternativen Ausführungsform akzeptiert die Vorrichtung 100 auch verbale Eingaben zur Aktivierung oder Deaktivierung einiger Funktionen über das Mikrofon 113. Die Vorrichtung 100 schließt verschiedene Komponenten ein, einschließlich, aber nicht beschränkt auf einen Speicher (der ein oder mehrere computerlesbare Speichermedien enthalten kann), eine Speichersteuerung, eine oder mehrere zentrale Verarbeitungseinheiten (CPUs), eine Peripherieschnittstelle, eine HF-Schaltung, eine Audioschaltung, einen Lautsprecher 111, ein Mikrofon 113, ein Eingabe/Ausgabe- bzw. E/A-Subsystem und andere Eingabe- oder Steuervorrichtungen. Die Vorrichtung 100 kann einen oder mehrere Bildsensoren 164, einen oder mehrere Näherungssensoren 166 und einen oder mehrere Beschleunigungsmesser 168 einschließen. Die Vorrichtung 100 kann mehr als einen Typ von Bildsensoren 164 einschließen. Jeder Typ kann mehr als einen Bildsensor 164 einschließen. Zum Beispiel kann ein Typ von Bildsensoren 164 Kameras sein und ein anderer Typ von Bildsensoren 164 kann Infrarotsensoren sein, die zur Gesichtserkennung verwendet werden können. Zusätzlich oder alternativ dazu können die Bildsensoren 164 unterschiedlichen Linsenkonfiguration zugeordnet sein. Zum Beispiel kann die Vorrichtung 100 rückseitige Bildsensoren - einen mit einem Weitwinkelobjektiv und einen anderen mit einer Telefotolinse - einschließen. Die Vorrichtung 100 kann Komponenten einschließen, die nicht in 1 gezeigt sind, wie einen Umgebungslichtsensor, einen Punktprojektor und einen Flutstrahler.
  • Die Vorrichtung 100 ist nur ein Beispiel einer elektronischen Vorrichtung und die Vorrichtung 100 kann mehr oder weniger Komponenten als vorstehend aufgeführt aufweisen, von denen einige zu einer Komponente kombiniert sein können oder eine andere Konfiguration oder Anordnung aufweisen können. Die verschiedenen Komponenten der oben aufgeführten Vorrichtung 100 sind in Hardware, Software, Firmware oder einer Kombination davon ausgeführt, einschließlich einer oder mehrerer signalverarbeitender und/oder anwendungsspezifischer integrierter Schaltungen (ASICs). Während die Komponenten in 1 als im Allgemeinen auf derselben Seite wie der Touchscreen 150 angeordnet gezeigt sind, können sich auch eine oder mehrere Komponenten auf einer gegenüberliegenden Seite der Vorrichtung 100 befinden. Zum Beispiel kann die Vorderseite der Vorrichtung 100 einen Infrarotbildsensor 164 zur Gesichtserkennung und einen anderen Bildsensor 164 als die vordere Kamera der Vorrichtung 100 einschließen. Die Rückseite der Vorrichtung 100 kann auch zusätzliche zwei Bildsensoren 164 als die hinteren Kameras der Vorrichtung 100 einschließen.
  • 2 ist ein Blockdiagramm, das Komponenten in der Vorrichtung 100 gemäß einer Ausführungsform darstellt. Die Vorrichtung 100 kann verschiedene Operationen ausführen, einschließlich Bildverarbeitung. Zu diesem und anderen Zwecken kann die Vorrichtung 100 unter anderem einen Bildsensor 202, eine System-on-a-Chip-Komponente (SOC-Komponente) 204, einen Systemspeicher 230, einen persistenten Speicher (z. B. einen Flash-Speicher) 228, einen Ausrichtungssensor 234 und eine Anzeige 216 einschließen. Die Komponenten, wie sie in 2 dargestellt sind, sind lediglich veranschaulichend. Beispielsweise kann die Vorrichtung 100 weitere Komponenten (wie Lautsprecher oder Mikrofon) einschließen, die in 2 nicht veranschaulicht sind. Ferner können einige Komponenten (wie der Ausrichtungssensor 234) in der Vorrichtung 100 weggelassen werden.
  • Bildsensoren 202 sind Komponenten zum Erfassen von Bilddaten. Jeder der Bildsensoren 202 kann beispielsweise als ein komplementärer Metalloxidhalbleiter-Aktivpixelsensor (CMOS-Aktivpixelsensor), eine Kamera, eine Videokamera oder andere Vorrichtungen ausgeführt sein. Bildsensoren 202 generieren Rohbilddaten, die zur weiteren Verarbeitung an die SOC-Komponente 204 gesendet werden. In einigen Ausführungsformen werden die von der SOC-Komponente 204 verarbeiteten Bilddaten auf der Anzeige 216 angezeigt, im Systemspeicher 230 oder im dauerhaften Speicher 228 gespeichert oder über eine Netzwerkverbindung an eine entfernte Rechenvorrichtung gesendet. Die durch die Bildsensoren 202 generierten Rohbilddaten können in einem Bayer-Farbfilterarray- (CFA-) Muster vorliegen (im Folgenden auch als „Bayer-Muster“ bezeichnet). Ein Bildsensor 202 kann auch optische und mechanische Komponenten einschließen, die Bilderfassungskomponenten (z. B. Pixel) zum Erfassen von Bildern unterstützen. Die optischen und mechanischen Komponenten können eine Öffnung, ein Linsensystem und einen Aktuator einschließen, der die Brennweite des Bildsensors 202 steuert.
  • Der Bewegungssensor 234 ist eine Komponente oder ein Satz von Komponenten zum Erfassen der Bewegung der Vorrichtung 100. Der Bewegungssensor 234 kann Sensorsignale erzeugen, welche die Ausrichtung und/oder Beschleunigung der Vorrichtung 100 anzeigen. Die Sensorsignale werden für verschiedene Vorgänge an die SOC-Komponente 204 gesendet, wie das Einschalten der Vorrichtung 100 oder das Drehen von Bildern, die auf der Anzeige 216 angezeigt werden.
  • Die Anzeige 216 ist eine Komponente zum Anzeigen von Bildern, die von der SOC-Komponente 204 erzeugt wurden. Die Anzeige 216 kann beispielsweise eine Flüssigkristallanzeigenvorrichtung (LCD-Vorrichtung) oder eine organische Leuchtdioden-Vorrichtung (OLED-Vorrichtung) einschließen. Basierend auf Daten, die von der SOC-Komponente 204 empfangen wurden, kann die Anzeige 116 verschiedene Bilder anzeigen, wie beispielsweise Menüs, ausgewählte Betriebsparameter, vom Bildsensor 202 erfasste und von der SOC-Komponente 204 verarbeitete Bilder und/oder andere von einer Benutzerschnittstelle der Vorrichtung 100 empfangene Informationen (nicht gezeigt).
  • Der Systemspeicher 230 ist eine Komponente zum Speichern von Anweisungen zur Ausführung durch die SOC-Komponente 204 und zum Speichern von Daten, die durch die SOC-Komponente 204 verarbeitet werden. Der Systemspeicher 230 kann als ein beliebiger Speichertyp ausgeführt sein, einschließlich beispielsweise einem dynamischen Direktzugriffsspeicher (DRAM), synchronem DRAM (SDRAM), DRAM mit doppelter Datenübertragungsrate (DDR, DDR2, DDR3 usw.), einem RAMBUS-DRAM (RDRAM), einem statischen RAM (SRAM) oder einer Kombination davon. In einigen Ausführungsformen kann der Systemspeicher 230 Pixeldaten oder andere Bilddaten oder Statistiken in verschiedenen Formaten speichern.
  • Der dauerhafte Speicher 228 ist eine Komponente zum nichtflüchtigen Speichern von Daten. Der dauerhafte Speicher 228 behält Daten auch dann bei, wenn kein Strom verfügbar ist. Der dauerhafte Speicher 228 kann als Festwertspeicher (ROM), Flash-Speicher oder andere nichtflüchtige Speichervorrichtungen mit wahlfreiem Zugriff ausgeführt sein. Der dauerhafte Speicher 228 speichert ein Betriebssystem der Vorrichtung 100 und verschiedene Softwareanwendungen. Im dauerhafte Speicher 228 können auch ein oder mehrere maschinelle Lernmodelle gespeichert werden, wie etwa Regressionsmodelle, Random-Forest-Modelle, Stützvektormaschinen (SVMs) wie Kernel-SVMs und künstliche neuronale Netzwerke (ANNs) wie Faltungsnetzwerk Netzwerke (CNNs), rekurrente Netzwerke (RNNs), Autocodierer und Langzeitspeicher (LSTMs). Ein maschinelles Lernmodell kann ein unabhängiges Modell sein, das mit der Schaltung des neuronalen Prozessors 218 und verschiedenen Softwareanwendungen oder Sensoren der Vorrichtung 100 arbeitet. Ein maschinelles Lernmodell kann auch Teil einer Softwareanwendung sein. Die maschinellen Lernmodelle können verschiedene Aufgaben übernehmen, wie beispielsweise Gesichtserkennung, Bildklassifizierung, Objekt-, Konzept- und Informationsklassifizierung, Spracherkennung, maschinelle Übersetzung, Stimmerkennung, Sprachbefehlserkennung, Texterkennung, Text- und Kontextanalyse, sonstige Verarbeitung natürlicher Sprache, Vorhersagen und Empfehlungen.
  • Verschiedene maschinelle Lernmodelle, die in Vorrichtung 100 gespeichert sind, können vollständig trainiert, untrainiert oder teilweise trainiert sein, damit Vorrichtung 100 die maschinellen Lernmodelle während der Verwendung von Vorrichtung 100 verstärken oder weiter trainieren kann. Die Vorgänge der maschinellen Lernmodelle schließen verschiedene Berechnungen ein, die für das Training der Modelle und das Bestimmen der Ergebnisse zur Laufzeit unter Verwendung der Modelle verwendet werden. In einem Fall nimmt die Vorrichtung 100 beispielsweise Gesichtsbilder des Benutzers auf und verwendet die Bilder, um ein maschinelles Lernmodell weiter zu verbessern, das zur Verriegelung oder Entsperrung der Vorrichtung 100 verwendet wird.
  • Die SOC-Komponente 204 ist als ein oder mehrere Chips mit integrierter Schaltung (IC, Integrated Circuit) ausgeführt und führt verschiedene Datenverarbeitungsprozesse aus. Die SOC-Komponente 204 kann neben anderen Teilkomponenten einen Bildsignalprozessor (ISP) 206, eine Zentraleinheit (CPU) 208, eine Netzwerkschnittstelle 210, eine Bewegungssensorschnittstelle 212, eine Anzeigesteuerung 214, einen Grafikprozessor (GPU) 220, eine Speichersteuerung 222, einen Videocodierer 224, eine Datenspeichersteuerung 226, eine Schaltung des neuronalen Prozessors 218 und einen Bus 232 zur Verbindung dieser Teilkomponenten einschließen. Die SOC-Komponente 204 kann mehr oder weniger Teilkomponenten als die in 2 gezeigten einschließen.
  • ISP 206 ist eine Schaltung, die verschiedene Stufen einer Bildverarbeitungspipeline durchführt. In einigen Ausführungsformen kann der ISP 206 Rohbilddaten von dem Bildsensor 202 empfangen und die Rohbilddaten in eine Form verarbeiten, die von anderen Teilkomponenten der SOC-Komponente 204 oder Komponenten der Vorrichtung 100 verwendet werden kann. Der ISP 206 kann verschiedene Bildmanipulationsoperationen ausführen, wie beispielsweise Bildübersetzungsoperationen, horizontale und vertikale Skalierung, Farbraumumwandlung und/oder Bildstabilisierungstransformationen, wie dies nachstehend unter Bezugnahme auf 3 ausführlich beschrieben wird.
  • Die CPU 208 kann unter Verwendung einer beliebigen geeigneten Befehlssatzarchitektur ausgeführt werden und kann konfiguriert sein, um Befehle auszuführen, die in dieser Befehlssatzarchitektur definiert sind. Die CPU 208 kann ein Allzweck- oder ein eingebetteter Prozessor sein, der eine Vielzahl von Befehlssatzarchitekturen (ISAs) verwendet, wie x86-, PowerPC-, SPARC-, RISC-, ARM- oder MIPS-ISAs oder eine andere geeignete ISA. Obwohl in 2 eine einzelne CPU veranschaulicht ist, kann die SOC-Komponente 204 mehrere CPUs einschließen. In Multiprozessorsystemen kann jede der CPUs gemeinhin, jedoch nicht zwingend, dieselbe ISA implementieren.
  • Die Grafikverarbeitungseinheit (Graphics Processing Unit, GPU) 220 ist eine Grafikverarbeitungsschaltlogik zur Durchführung von Operationen an grafischen Daten. Zum Beispiel kann die GPU 220 die anzuzeigenden Objekte in einen Bildpuffer rendern (z. B. einen, der die Pixeldaten für ein ganzes Bild einschließt). Die GPU 220 kann einen oder mehrere Grafikprozessoren einschließen, die Grafiksoftware ausführen, um einen Teil oder alle Grafikoperationen oder eine Hardwarebeschleunigung bestimmter Grafikoperationen durchzuführen.
  • Die Schaltung des neuronalen Prozessors 218 ist eine programmierbare Schaltung, die maschinelle Lernoperationen an den Eingabedaten der Schaltung des neuronalen Prozessors 218 durchführt. Maschinelle Lernoperationen können unterschiedliche Berechnungen zum Trainieren eines maschinellen Lernmodells und zur Durchführung von Schlussfolgerungen oder Vorhersagen auf der Grundlage des trainierten maschinellen Lernmodells einschließen. Die Schaltung des neuronalen Prozessors 218 ist eine Schaltung, die verschiedene auf Berechnungen basierende maschinelle Lernoperationen durchführt, einschließlich der Multiplikation, Addition und Akkumulation. Eine solche Berechnung kann zum Beispiel angeordnet werden, um verschiedene Arten von Tensormultiplikationen wie Tensorprodukt und Faltung von Eingabedaten und Kerneldaten durchzuführen. Die Schaltung des neuronalen Prozessors 218 ist eine konfigurierbare Schaltung, die diese Operationen schnell und leistungseffizient durchführt und gleichzeitig die CPU 208 von ressourcenintensiven Operationen im Zusammenhang mit Operationen des neuronalen Netzwerks entlastet. Die Schaltung des neuronalen Prozessors 218 kann die Eingabedaten von der Sensorschnittstelle 212, dem Bildsignalprozessor 206, dem dauerhaften Speicher 228, dem Systemspeicher 230 oder anderen Quellen wie der Netzwerkschnittstelle 210 oder der GPU 220 empfangen. Die Ausgabe der Schaltung des neuronalen Prozessors 218 kann verschiedenen Komponenten der Vorrichtung 100 wie dem Bildsignalprozessor 206, dem Systemspeicher 230 oder der CPU 208 für verschiedene Operationen bereitgestellt werden.
  • Die Netzwerkschnittstelle 210 ist eine Teilkomponente, die den Datenaustausch zwischen Vorrichtungen 100 und anderen Vorrichtungen über ein oder mehrere Netzwerke (z. B. Träger- oder Agentenvorrichtungen) ermöglicht. Beispielsweise können Video- oder andere Bilddaten von anderen Vorrichtungen über die Netzwerkschnittstelle 210 empfangen und zur nachfolgenden Verarbeitung und Anzeige im Systemspeicher 230 gespeichert werden (z. B. über eine Back-End-Schnittstelle zum Bildsignalprozessor 206, wie nachstehend in 3 erläutert). Die Netzwerke können lokale Netzwerke (LANs) (z. B. ein Ethernet- oder Firmennetzwerk) und Weitverkehrsnetzwerke (WANs) einschließen, sind aber nicht darauf beschränkt. Die über die Netzwerkschnittstelle 210 empfangenen Bilddaten können Bildverarbeitungsprozessen durch den ISP 206 unterzogen werden.
  • Die Bewegungssensorschnittstelle 212 ist eine Schaltlogik zum Verbinden mit dem Bewegungssensor 234. Die Bewegungssensorschnittstelle 212 empfängt Sensorinformationen vom Bewegungssensor 234 und verarbeitet die Sensorinformationen, um die Ausrichtung oder Bewegung der Vorrichtung 100 zu bestimmen.
  • Die Anzeigesteuerung 214 ist eine Schaltlogik zum Senden von Bilddaten, die auf der Anzeige 216 angezeigt werden sollen. Die Anzeigesteuerung 214 empfängt die Bilddaten vom ISP 206, der CPU 208, dem Grafikprozessor oder dem Systemspeicher 230 und verarbeitet die Bilddaten in ein Format, das für die Anzeige auf der Anzeige 216 geeignet ist.
  • Die Speichersteuerung 222 ist eine Schaltlogik zum Kommunizieren mit dem Systemspeicher 230. Die Speichersteuerung 222 kann Daten aus dem Systemspeicher 230 zur Verarbeitung durch den ISP 206, die CPU 208, die GPU 220 oder andere Teilkomponenten der SOC-Komponente 204 lesen. Die Speichersteuerung 222 kann auch Daten in den Systemspeicher 230 schreiben, die von verschiedenen Teilkomponenten der SOC-Komponente 204 empfangen werden.
  • Bei dem Videocodierer 224 handelt es sich um Hardware, Software, Firmware oder eine Kombination davon zum Codieren von Videodaten in ein Format, das zum Speichern in einem dauerhaften Speicher 128 oder zum Weiterleiten der Daten an die Netzwerkschnittstelle w10 zur Übertragung über ein Netzwerk an eine andere Vorrichtung geeignet ist.
  • In einigen Ausführungsformen können eine oder mehrere Teilkomponenten der SOC-Komponente 204 oder einige Funktionen dieser Teilkomponenten von Softwarekomponenten durchgeführt werden, die auf der Schaltung des neuronalen Prozessors 218, dem ISP 206, der CPU 208 oder der GPU 220 ausgeführt werden. Solche Softwarekomponenten können im Systemspeicher 230, im dauerhaften Speicher 228 oder in einer anderen Vorrichtung gespeichert sein, die über die Netzwerkschnittstelle 210 mit der Vorrichtung 100 kommuniziert.
  • Bilddaten oder Videodaten können durch verschiedene Datenpfade innerhalb der SOC-Komponente 204 fließen. In einem Beispiel können Rohbilddaten von den Bildsensoren 202 generiert und von dem ISP 206 verarbeitet und dann über den Bus 232 und die Speichersteuerung 222 an den Systemspeicher 230 gesendet werden. Nachdem die Bilddaten in dem Systemspeicher 230 gespeichert sind, kann durch den Videocodierer 224 zum Codieren oder durch die Anzeige 116 zum Anzeigen über den Bus 232 darauf zugegriffen werden.
  • In einem anderen Beispiel werden Bilddaten von anderen Quellen als den Bildsensoren 202 empfangen. Beispielsweise können Videodaten über ein drahtgebundenes oder ein drahtloses Netzwerk gestreamt, heruntergeladen oder auf andere Weise an die SOC-Komponente 204 übertragen werden. Die Bilddaten können über die Netzwerkschnittstelle 210 empfangen und über die Speichersteuerung 222 in den Systemspeicher 230 geschrieben werden. Die Bilddaten können dann durch den ISP 206 aus dem Systemspeicher 230 erhalten und durch eine oder mehrere Bildverarbeitungspipelinestufen verarbeitet werden, wie dies nachstehend unter Bezugnahme auf 3 ausführlich beschrieben wird. Die Bilddaten können dann an den Systemspeicher 230 zurückgesendet oder an den Videocodierer 224, die Anzeigesteuerung 214 (zur Anzeige auf der Anzeige 216) oder die Speichersteuerung 226 zur Speicherung im persistenten Speicher 228 gesendet werden.
  • Beispiel für Pipelines zur Bildsignalverarbeitung
  • 3 ist ein Blockdiagramm, das Bildverarbeitungspipelines veranschaulicht, die gemäß einer Ausführungsform unter Verwendung des ISP 206 implementiert sind. In der Ausführungsform von 3 ist der ISP 206 mit einem Bildsensorsystem 201 gekoppelt, das einen oder mehrere Bildsensoren 202A bis 202N (im Folgenden gemeinsam als „Bildsensoren 202“ oder auch einzeln als „Bildsensor 202“ bezeichnet) einschließt, um Rohbilddaten zu empfangen. Das Bildsensorsystem 201 kann ein oder mehrere Teilsysteme einschließen, die die Bildsensoren 202 einzeln steuern. In einigen Fällen kann jeder Bildsensor 202 unabhängig arbeiten, während in anderen Fällen die Bildsensoren 202 einige Komponenten teilen können. Zum Beispiel können in einer Ausführungsform zwei oder mehr Bildsensoren 202 gemeinsam die gleiche Leiterplatte nutzen, die die mechanischen Komponenten der Bildsensoren steuert (z. B. Aktuatoren, die die Brennweiten der einzelnen Bildsensoren verändern). Die Bilderfassungskomponenten eines Bildsensors 202 können unterschiedliche Typen von Bilderfassungskomponenten einschließen, die dem ISP 206 Rohbilddaten in unterschiedlichen Formen bereitstellen können. Zum Beispiel können in einer Ausführungsform die Bilderfassungskomponenten eine Vielzahl von Fokuspixeln einschließen, die für die Autofokussierung verwendet werden, und eine Vielzahl von Bildpixeln, die für die Bildaufnahme verwendet werden. In einer anderen Ausführungsform können die Bilderfassungspixel sowohl für Autofokussierungs- als auch für Bildaufnahmezwecke verwendet werden.
  • Der ISP 206 implementiert eine Bildverarbeitungspipeline, die eine Reihe von Stufen enthalten kann, die Bildinformationen von der Erzeugung, Erfassung oder dem Empfang bis zur Ausgabe verarbeiten. Der ISP 206 kann neben anderen Komponenten die Sensorschnittstelle 302, die zentrale Steuerung 320, die Front-End-Pipelinestufen 330, die Back-End-Pipelinestufen 340, das Bildstatistikmodul 304, einen Skalierer 322, die Back-End-Schnittstelle 342, die Ausgabeschnittstelle 316 und die Autofokus-Schaltungen 350A bis 350N (im Folgenden gemeinsam als „Autofokus-Schaltungen 350“ oder einzeln als „Autofokus-Schaltungen 350“ bezeichnet) einschließen. Der ISP 206 kann andere Komponenten einschließen, die in 3 nicht dargestellt sind oder kann auf eine oder mehrere der in 3 dargestellten Komponenten verzichten.
  • In einer oder mehreren Ausführungsformen verarbeiten unterschiedliche Komponenten des ISP 206 Bilddaten mit unterschiedlichen Raten. In der Ausführungsform von 3 können die Front-End-Pipeline-Stufen 330 (z. B. die Rohverarbeitungsstufe 306 und die Neuabtastungsverarbeitungsstufe 308) Bilddaten mit einer Anfangsrate verarbeiten. Somit werden die verschiedenen unterschiedlichen Techniken, Anpassungen, Modifikationen oder anderen Verarbeitungsoperationen, die von diesen Front-End-Pipeline-Stufen 330 ausgeführt werden, mit der Anfangsgeschwindigkeit ausgeführt. Wenn beispielsweise die Front-End-Pipeline-Stufen 330 2 Pixel pro Taktzyklus verarbeiten, können die Operationen der Rohverarbeitungsstufe 306 (z. B. Schwarzpegelkompensation, Hervorhebungswiederherstellung und Korrektur fehlerhafter Pixel) 2 Pixel von Bilddaten gleichzeitig verarbeiten. Im Gegensatz dazu können eine oder mehrere Back-End-Pipeline-Stufen 340 Bilddaten mit einer anderen Rate verarbeiten, die geringer ist als die Anfangsrate. In der Ausführungsform von 3 können die Back-End-Pipeline-Stufen 340 (z. B. Rauschverarbeitungsstufe 310, Farbverarbeitungsstufe 312 und Ausgangsneuskalierung 314) mit einer reduzierten Rate (z. B. 1 Pixel pro Taktzyklus) verarbeitet werden.
  • Rohbilddaten, die von Bildsensoren 202 erfasst werden, können auf verschiedene Weise an verschiedene Komponenten von ISP 206 übertragen werden. In einer Ausführungsform können Rohbilddaten, die den Fokuspixeln entsprechen, an die Autofokus-Schaltungen 350 gesendet werden, während Rohbilddaten, die den Bildpixeln entsprechen, an die Sensorschnittstelle 302 gesendet werden können. In einer anderen Ausführungsform können Rohbilddaten, die beiden Pixeltypen entsprechen, gleichzeitig sowohl an die Autofokus-Schaltungen 350 als auch an die Sensorschnittstelle 302 gesendet werden.
  • Die Autofokus-Schaltungen 350 können Hardwareschaltung einschließen, die Rohbilddaten analysiert, um eine geeignete Brennweite jedes Bildsensors 202 zu bestimmen. In einer Ausführungsform können die Rohbilddaten Daten einschließen, die von Bilderfassungspixeln übertragen werden, die auf die Bildfokussierung spezialisiert sind. In einer anderen Ausführungsform können Rohbilddaten von Bildaufnahmepixeln auch für Autofokussierungszwecke verwendet werden. Eine Autofokus-Schaltung 350 kann verschiedene Bildverarbeitungsoperationen durchführen, um Daten zu generieren, die die geeignete Brennweite bestimmen. Die Bildverarbeitungsoperationen können das Beschneiden, das Binning, den Bildausgleich und die Skalierung einschließen, um Daten zu generieren, die für Autofokussierungszwecke verwendet werden. Die Autofokussierungsdaten, die durch die Autofokus-Schaltungen 350 generiert werden, können zum Bildsensorsystem 201 zurückgeführt werden, um die Brennweiten der Bildsensoren 202 zu steuern. Zum Beispiel kann ein Bildsensor 202 eine Steuerschaltung einschließen, die die Autofokussierungsdaten analysiert, um ein Befehlssignal zu bestimmen, das an einen dem Linsensystem des Bildsensors zugeordneten Aktuator gesendet wird, um die Brennweite des Bildsensors zu ändern. Die von den Autofokus-Schaltungen 350 generierten Daten können außerdem für andere Bildverarbeitungszwecke an andere Komponenten des ISP 206 gesendet werden. Zum Beispiel können einige der Daten an Bildstatistiken 304 gesendet werden, um Informationen bezüglich der Autobelichtung zu bestimmen.
  • Die Autofokus-Schaltungen 350 können einzelne Schaltungen sein, die von anderen Komponenten wie der Bildstatistik 304, der Sensorschnittstelle 302, dem Front-End 330 und dem Back-End 340 getrennt sind. Dies ermöglicht es dem ISP 206, die Autofokussierungsanalyse unabhängig von anderen Bildverarbeitungspipelines durchzuführen. Zum Beispiel kann der ISP 206 die Rohbilddaten des Bildsensors 202A analysieren, um die Brennweite des Bildsensors 202A unter Verwendung der Autofokus-Schaltung 350A anzupassen und gleichzeitig eine stromabwärts gerichtete Bildverarbeitung der Bilddaten aus dem Bildsensor 202B durchzuführen. In einer Ausführungsform kann die Anzahl der Autofokus-Schaltungen 350 der Anzahl von Bildsensoren 202 entsprechen. Mit anderen Worten kann jeder Bildsensor 202 eine entsprechende Autofokus-Schaltung aufweisen, die für die Autofokussierung des Bildsensors 202 vorgesehen ist. Die Vorrichtung 100 kann die Autofokussierung für unterschiedliche Bildsensoren 202 auch dann durchführen, wenn ein oder mehrere Bildsensoren 202 nicht in aktiver Verwendung sind. Dies ermöglicht einen nahtlosen Übergang zwischen zwei Bildsensoren 202, wenn die Vorrichtung 100 von einem Bildsensor 202 zum anderen wechselt. Zum Beispiel kann in einer Ausführungsform eine Vorrichtung 100 eine Weitwinkel- und eine Telekamera als Doppelrückseitenkamera-System für die Foto- und Bildverarbeitung einschließen. Die Vorrichtung 100 kann Bilder anzeigen, die von einer der beiden Kameras erfasst wurden, und kann von Zeit zu Zeit zwischen den beiden Kameras umschalten. Die angezeigten Bilder können nahtlos von Bilddaten, die von einem Bildsensor 202 erfasst wurden, zu Bilddaten, die von einem anderen Bildsensor erfasst wurden, übergehen, ohne darauf zu warten, dass der zweite Bildsensor 202 seine Brennweite anpasst, weil zwei oder mehr Autofokus-Schaltungen 350 dem Bildsensorsystem 201 kontinuierlich Autofokus-Daten bereitstellen können.
  • Rohbilddaten, die von verschiedenen Bildsensoren 202 erfasst werden, können auch an die Sensorschnittstelle 302 übertragen werden. Die Sensorschnittstelle 302 empfängt Rohbilddaten vom Bildsensor 202 und verarbeitet die Rohbilddaten zu Bilddaten, die von anderen Stufen in der Pipeline verarbeitet werden können. Die Sensorschnittstelle 302 kann verschiedene Vorverarbeitungsoperationen ausführen, wie Bildbeschneiden, Binning oder Skalieren, um die Bilddatengröße zu reduzieren. In einigen Ausführungsformen werden Pixel vom Bildsensor 202 in Rasterreihenfolge (z. B. horizontal, zeilenweise) an die Sensorschnittstelle 302 gesendet. Die nachfolgenden Prozesse in der Pipeline können auch in Rasterreihenfolge ausgeführt werden und das Ergebnis kann auch in Rasterreihenfolge ausgegeben werden. Obwohl in 3 nur ein einzelner Bildsensor und eine einzelne Sensorschnittstelle 302 dargestellt sind, kann, wenn mehr als ein Bildsensor in der Vorrichtung 100 bereitgestellt ist, eine entsprechende Anzahl von Sensorschnittstellen in dem ISP 206 bereitgestellt sein, um Rohbilddaten von jedem Bildsensor zu verarbeiten.
  • Die Front-End-Pipeline-Stufen 330 verarbeiten Bilddaten in Roh- oder Vollfarbdomänen. Die Front-End-Pipeline-Stufen 330 können die Rohverarbeitungsstufe 306 und die Neuabtastungsverarbeitungsstufe 308 einschließen, sind aber nicht darauf beschränkt. Rohbilddaten können beispielsweise im Bayer-Rohformat vorliegen. Im Bayer-Rohbildformat werden in jedem Pixel Pixeldaten mit für eine bestimmte Farbe spezifischen Werten (anstelle aller Farben) bereitgestellt. In einem Bilderfassungssensor werden Bilddaten in der Regel in einem Bayer-Muster bereitgestellt. Die Rohverarbeitungsstufe 306 kann Bilddaten in einem Bayer-Rohformat verarbeiten.
  • Die Operationen, die von der Rohverarbeitungsstufe 306 ausgeführt werden, schließen ein, ohne darauf beschränkt zu sein, eine Sensorlinearisierung, eine Schwarzpegelkompensation, eine Rauschreduzierung mit festem Muster, eine Fehlpixelkorrektur, eine Rohrauschfilterung, eine Linsenschattierungskorrektur, eine Weißabgleichverstärkung und eine Glanzlichtwiederherstellung. Die Sensorlinearisierung bezieht sich auf die Abbildung nichtlinearer Bilddaten auf den linearen Raum für andere Verarbeitungen. Die Schwarzpegelkompensation bezieht sich auf die Bereitstellung von digitaler Verstärkung, Offset und Beschneidung unabhängig für jede Farbkomponente (z. B. Gr, R, B, Gb) der Bilddaten. Die Rauschunterdrückung mit festem Muster bezieht sich auf das Entfernen von versetztem Rauschen mit festem Muster und das Verstärken von Rauschen mit festem Muster durch Subtrahieren eines dunklen Rahmens von einem Eingabebild und Multiplizieren verschiedener Verstärkungen mit Pixeln. Die Korrektur fehlerhafter Pixel bezieht sich auf das Erkennen fehlerhafter Pixel und das Ersetzen fehlerhafter Pixelwerte. Rohrauschfilterung bezieht sich auf das Reduzieren des Rauschens von Bilddaten durch Mitteln von Nachbarpixeln, deren Helligkeit ähnlich ist. Die Glanzlichtwiederherstellung bezieht sich auf die Schätzung der Pixelwerte für die Pixel, die von anderen Kanälen abgeschnitten (oder nahezu abgeschnitten) wurden. Die Linsenschattierungskorrektur bezieht sich auf das Anwenden einer Verstärkung pro Pixel, um einen Intensitätsabfall zu kompensieren, der ungefähr proportional zu einem Abstand von einem optischen Zentrum der Linse ist. Die Weißabgleichverstärkung bezieht sich auf die Bereitstellung digitaler Verstärkungen für Weißabgleich, Versatz und Beschneiden unabhängig für alle Farbkomponenten (z. B. Gr, R, B, Gb im Bayer-Format). Komponenten des ISP 206 können Rohbilddaten in Bilddaten im Vollfarbbereich konvertieren und somit kann die Rohverarbeitungsstufe 306 Bilddaten im Vollfarbbereich zusätzlich zu oder anstelle von Rohbilddaten verarbeiten.
  • Die Neuabtastungsverarbeitungsstufe 308 führt verschiedene Operationen durch, um von der Rohverarbeitungsstufe 306 empfangene Bilddaten zu konvertieren, neu abzutasten oder zu skalieren. Operationen, die von der Neuabtastungsverarbeitungsstufe 308 ausgeführt werden, können einen Demosaik-Vorgang, eine Pro-Pixel-Farbkorrekturoperation, eine Gamma-Abbildungsoperation, eine Farbraumumwandlung und eine Herunterskalierung oder eine Teilbandaufteilung umfassen, sind jedoch nicht darauf beschränkt. Der Demosaik-Vorgang bezieht sich auf das Konvertieren oder Interpolieren fehlender Farbmuster aus Rohbilddaten (z. B. in einem Bayer-Muster), um Bilddaten in eine Vollfarbdomäne auszugeben. Der Demosaik-Vorgang kann eine Tiefpass-Richtungsfilterung auf den interpolierten Abtastwerten umfassen, um Vollfarbpixel zu erhalten. Die Farbkorrekturoperation pro Pixel bezieht sich auf einen Prozess zum Ausführen einer Farbkorrektur pro Pixel unter Verwendung von Informationen über relative Rauschstandardabweichungen jedes Farbkanals, um die Farbe zu korrigieren, ohne das Rauschen in den Bilddaten zu verstärken. Die Gamma-Abbildung bezieht sich auf das Konvertieren von Bilddaten von Eingabebilddaten in Ausgabedatenwerte, um eine Gammakorrektur durchzuführen. Zum Zweck der Gamma-Abbildung können Nachschlagetabellen (oder andere Strukturen, die Pixelwerte auf einen anderen Wert indizieren) für verschiedene Farbkomponenten oder Kanäle jedes Pixels (z. B. eine separate Nachschlagetabelle für R-, G- und B-Farbkomponenten) verwendet werden. Farbraumkonvertierung bezieht sich auf das Konvertieren des Farbraums von Eingabebilddaten in ein anderes Format. In einer Ausführungsform konvertiert die Neuabtastungsverarbeitungsstufe 308 das RGG-Format zur weiteren Verarbeitung in das YCbCr-Format. In einer anderen Ausführungsform konvertiert die Neuabtastungsverarbeitungsstufe 308 das RBD-Format zur weiteren Verarbeitung in das RGB-Format.
  • Das Zentralsteuerungsmodul 320 kann den Gesamtbetrieb anderer Komponenten im ISP 206 steuern und koordinieren. Das Zentralsteuerungsmodul 320 führt Operationen aus, einschließlich, aber nicht beschränkt auf, Überwachen verschiedener Betriebsparameter (z. B. Protokollieren von Taktzyklen, Speicherlatenz, Dienstqualität und Statusinformationen), Aktualisieren oder Verwalten von Steuerparametern für andere Komponenten des ISP 206 und Verbinden mit der Sensorschnittstelle 302, um das Starten und Stoppen anderer Komponenten des ISP 206 zu steuern. Beispielsweise kann das Zentralsteuerungsmodul 320 programmierbare Parameter für andere Komponenten im ISP 206 aktualisieren, während sich die anderen Komponenten in einem Ruhezustand befinden. Nach dem Aktualisieren der programmierbaren Parameter kann das Zentralsteuerungsmodul 320 diese Komponenten des ISP 206 in einen Betriebszustand versetzen, um eine oder mehrere Operationen oder Aufgaben auszuführen. Das Zentralsteuerungsmodul 320 kann auch andere Komponenten des ISP 206 anweisen, Bilddaten zu speichern (z. B. durch Schreiben in den Systemspeicher 230 in 2), bevor, während oder nach der Neuabtastungsverarbeitungsstufe 308. Auf diese Weise können Bilddaten mit voller Auflösung im Roh- oder Vollfarbdomänenformat zusätzlich zu oder anstelle der Verarbeitung der Bilddaten gespeichert werden, die von der Neuabtastungsverarbeitungsstufe 308 durch die Backend-Pipeline-Stufen 340 ausgegeben werden.
  • Das Bildstatistikmodul 304 führt verschiedene Operationen durch, um statistische Informationen zu sammeln, die den Bilddaten zugeordnet sind. Die Operationen zum Sammeln von Statistikinformationen können umfassen, ohne darauf beschränkt zu sein, Sensorlinearisierung, Ersetzen von strukturierten fehlerhaften Pixeln, Rohbilddaten von Unterabtastungen, Erkennen und Ersetzen von nicht strukturierten fehlerhaften Pixeln, Schwarzpegelkompensation, Linsenschattierungskorrektur und inverse Schwarzpegelkompensation. Nach Durchführung eines oder mehrerer solcher Operationen können Statistikinformationen wie 3A-Statistiken (automatischer Weißabgleich (AWB), automatische Belichtung (AE), Histogramme (z. B. 2D-Farben oder -Komponenten)) und andere Bilddaten gesammelt oder nachverfolgt werden. In einigen Ausführungsformen können bestimmte Pixelwerte oder Bereiche von Pixelwerten aus Sammlungen bestimmter Statistikdaten ausgeschlossen werden, wenn vorhergehende Operationen abgeschnittene Pixel identifizieren. Obwohl in 3 nur ein einziges Statistikmodul 304 dargestellt ist, können mehrere Bildstatistikmodule in dem ISP 206 enthalten sein. Zum Beispiel kann jeder Bildsensor 202 einer individuellen Bildstatistikeinheit 304 entsprechen. In solchen Ausführungsformen kann jedes Statistikmodul von dem Zentralsteuerungsmodul 320 programmiert werden, um unterschiedliche Informationen für dieselben oder unterschiedliche Bilddaten zu sammeln.
  • Der Skalierer 322 empfängt Bilddaten und erzeugt eine herunterskalierte Version des Bildes. Somit kann der Skalierer 322 reduzierte Auflösungsbilder an verschiedene Komponenten bereitstellen, wie die Schaltung des neuronalen Prozessors 218. Während der Skalierer 322 mit der Rohverarbeitungsstufe 306 in 3 gekoppelt wird, kann der Skalierer 322 gekoppelt werden, um ein Eingabebild von anderen Komponenten des Bildsignalprozessors 206 zu empfangen.
  • Die Back-End-Schnittstelle 342 empfängt Bilddaten von anderen Bildquellen als dem Bildsensor 102 und leitet sie zur Verarbeitung an andere Komponenten des ISP 206 weiter. Beispielsweise können Bilddaten über eine Netzwerkverbindung empfangen und im Systemspeicher 230 gespeichert werden. Die Back-End-Schnittstelle 342 ruft die im Systemspeicher 230 gespeicherten Bilddaten ab und liefert sie zur Verarbeitung an die Back-End-Pipeline-Stufen 340. Eine von vielen Operationen, die von der Back-End-Schnittstelle 342 ausgeführt werden, besteht darin, die abgerufenen Bilddaten in ein Format zu konvertieren, das von den Back-End-Verarbeitungsstufen 340 verwendet werden kann. Beispielsweise kann die Back-End-Schnittstelle 342 RGB-, YCbCr 4:2:0- oder YCbCr 4:2:2-formatierte Bilddaten in das YCbCr 4:4:4-Farbformat konvertieren.
  • Die Back-End-Pipeline-Stufen 340 verarbeiten Bilddaten gemäß einem bestimmten Vollfarbenformat (z. B. YCbCr 4:4:4 oder RGB). In einigen Ausführungsformen können Komponenten der Back-End-Pipeline-Stufen 340 Bilddaten vor der weiteren Verarbeitung in ein bestimmtes Vollfarbenformat konvertieren. Die Back-End-Pipeline-Stufen 340 können unter anderem die Rauschverarbeitungsstufe 310 und die Farbverarbeitungsstufe 312 umfassen. Die Back-End-Pipeline-Stufen 340 können weitere Stufen enthalten, die in 3 nicht dargestellt sind.
  • Die Rauschverarbeitungsstufe 310 führt verschiedene Operationen aus, um das Rauschen in den Bilddaten zu reduzieren. Die Operationen, die von der Rauschverarbeitungsstufe 310 ausgeführt werden, umfassen, ohne darauf beschränkt zu sein, eine Farbraumumwandlung, eine Gamma/De-Gamma-Abbildung, eine zeitliche Filterung, eine Rauschfilterung, eine Lumaschärfung und eine Chroma-Rauschreduzierung. Die Farbraumkonvertierung kann Bilddaten von einem Farbraumformat in ein anderes Farbraumformat konvertieren (z. B. in das YCbCr-Format konvertiertes RGB-Format). Die Gamma/De-Gamma-Operation konvertiert Bilddaten von Eingabebilddatenwerten in Ausgabedatenwerte, um eine Gammakorrektur oder eine umgekehrte Gammakorrektur durchzuführen. Die zeitliche Filterung filtert das Rauschen mithilfe eines zuvor gefilterten Bildrahmens, um das Rauschen zu reduzieren. Beispielsweise werden Pixelwerte eines früheren Bildrahmens mit Pixelwerten eines aktuellen Bildrahmens kombiniert. Die Rauschfilterung kann beispielsweise eine räumliche Rauschfilterung umfassen. Die Lumaschärfung kann die Luma-Werte der Pixeldaten schärfen, während die Chroma-Unterdrückung die Chroma zu Grau (d. h. ohne Farbe) abschwächen kann. In einigen Ausführungsformen können die Luma-Schärfung und die Chroma-Unterdrückung gleichzeitig mit der räumlichen Rauschfilterung durchgeführt werden. Die Aggressivität der Rauschfilterung kann für verschiedene Bereiche eines Bildes unterschiedlich bestimmt werden. Eine räumliche Rauschfilterung kann als Teil einer zeitlichen Schleife enthalten sein, die eine zeitliche Filterung implementiert. Beispielsweise kann ein vorheriger Bildrahmen von einem Zeitfilter und einem räumlichen Rauschfilter verarbeitet werden, bevor er als Referenzrahmen für einen nächsten zu verarbeitenden Bildrahmen gespeichert wird. In anderen Ausführungsformen kann die räumliche Rauschfilterung nicht als Teil der zeitlichen Schleife zur zeitlichen Filterung enthalten sein (z. B. kann der räumliche Rauschfilter auf einen Bildrahmen angewendet werden, nachdem es als Referenzbildrahmen gespeichert wurde, und somit ist der Referenzrahmen nicht räumlich gefiltert.
  • Die Farbverarbeitungsstufe 312 kann verschiedene Operationen ausführen, die mit dem Anpassen der Farbinformation in den Bilddaten verbunden sind. Die Operationen, die in der Farbverarbeitungsstufe 312 ausgeführt werden, umfassen, ohne darauf beschränkt zu sein, lokale Tonabbildung, Verstärkung/Versatz/Beschneiden, Farbkorrektur, dreidimensionales Nachschlagen von Farben, Gammakonvertierung und Farbraumkonvertierung. Lokale Tonabbildung bezieht sich auf räumlich variierende lokale Tonkurven, um eine bessere Kontrolle beim Rendern eines Bildes zu ermöglichen. Beispielsweise kann ein zweidimensionales Raster von Tonkurven (das von dem Zentralsteuerungsmodul 320 programmiert werden kann) bi-linear interpoliert werden, sodass sich gleichmäßig ändernde Tonkurven über ein Bild hinweg erzeugt werden. In einigen Ausführungsformen kann die lokale Tonabbildung auch räumlich variierende und intensitätsvariierende Farbkorrekturmatrizen anwenden, die beispielsweise verwendet werden, um Himmel blauer zu machen, während das Blau in den Schatten in einem Bild reduziert wird. Für jeden Farbkanal oder jede Komponente von Bilddaten kann eine digitale Verstärkung/ein digitaler Versatz/ein digitales Beschneiden bereitgestellt werden. Die Farbkorrektur kann eine Farbkorrektur-Transformationsmatrix auf Bilddaten anwenden. Die 3D-Farbsuche kann eine dreidimensionale Anordnung von Farbkomponenten-Ausgabewerten (z. B. R, G, B) verwenden, um eine erweiterte Tonabbildung, Farbraumkonvertierungen und andere Farbtransformationen durchzuführen. Eine Gammakonvertierung kann zum Beispiel durchgeführt werden, indem Eingabebilddatenwerte auf Ausgabedatenwerte abgebildet werden, um eine Gammakorrektur, eine Tonabbildung oder eine Histogrammanpassung durchzuführen. Die Farbraumkonvertierung kann implementiert werden, um Bilddaten von einem Farbraum in einen anderen zu konvertieren (z. B. RGB in YCbCr). Andere Verarbeitungstechniken können auch als Teil der Farbverarbeitungsstufe 312 durchgeführt werden, um andere spezielle Bildeffekte durchzuführen, einschließlich Schwarzweißkonvertierung, Sepiatonkonvertierung, Negativkonvertierung oder Solarisierungskonvertierung.
  • Das Ausgangsneuskalierungsmodul 314 kann die Verzerrung im laufenden Betrieb neu abtasten, transformieren und korrigieren, während der ISP 206 Bilddaten verarbeitet. Das Ausgangsneuskalierungsmodul 314 kann für jedes Pixel eine gebrochene Eingangskoordinate berechnen und diese gebrochene Koordinate verwenden, um über einen Polyphasen-Neuabtastfilter einen Ausgangspixel zu interpolieren. Eine fraktionale Eingabekoordinate kann aus einer Vielzahl möglicher Transformationen einer Ausgabekoordinate erzeugt werden, wie Ändern der Größe oder Beschneiden eines Bildes (z. B. über eine einfache horizontale und vertikale Skalierungstransformation), Drehen und Scheren eines Bildes (z. B. über nicht trennbare Matrixtransformationen), Perspektivverzerrungen (z. B. über eine zusätzliche Tiefentransformation) und perspektivische Teilungen pro Pixel, die stückweise in Streifen angewendet werden, um Änderungen des Bildsensors während der Bilddatenerfassung (z. B. aufgrund eines Rolling Shutters) und geometrische Verzerrungskorrekturen zu berücksichtigen (z. B. durch Berechnen eines radialen Abstands vom optischen Zentrum, um eine interpolierte radiale Verstärkungstabelle zu indizieren und durch Anwenden einer radialen Störung auf eine Koordinate, um eine radiale Linsenverzerrung zu berücksichtigen).
  • Das Ausgangsneuskalierungsmodul 314 kann Transformationen auf Bilddaten anwenden, während diese im Ausgangsneuskalierungsmodul 314 verarbeitet werden. Das Ausgangsneuskalierungsmodul 314 kann horizontale und vertikale Skalierungskomponenten enthalten. Der vertikale Teil des Entwurfs kann eine Reihe von Bilddatenleitungspuffern implementieren, um die „Unterstützung“ zu halten, die von dem vertikalen Filter benötigt wird. Da der ISP 206 eine Streaming-Vorrichtung sein kann, kann es sein, dass nur die Zeilen von Bilddaten in einem endlichen Schiebefenster von Zeilen für den Filter zur Verwendung verfügbar sind. Sobald eine Zeile verworfen wurde, um Platz für eine neu eingehende Zeile zu schaffen, ist die Zeile möglicherweise nicht mehr verfügbar. Das Ausgangsneuskalierungsmodul 314 kann berechnete Eingangs-Y-Koordinaten über vorherigen Zeilen statistisch überwachen und sie verwenden, um einen optimalen Satz von Zeilen zu berechnen, die in dem vertikalen Unterstützungsfenster anzuzeigen sind. Für jede nachfolgende Zeile kann das Modul zum erneuten Skalieren der Ausgabe automatisch eine Schätzung der Mitte des vertikalen Unterstützungsfensters generieren. In einigen Ausführungsformen kann das Ausgangsneuskalierungsmodul 314 eine Tabelle stückweiser perspektivischer Transformationen implementieren, die als digitale Differenzanalysator- (DDA-) Stepper codiert sind, um eine pixelweise perspektivische Transformation zwischen Eingabebilddaten und Ausgabebilddaten durchzuführen, um Artefakte und Bewegungen zu korrigieren, die durch Sensorbewegung während der Aufnahme des Bildrahmens entstanden sind. Die Ausgangsneuskalierung kann Bilddaten über die Ausgabeschnittstelle 316 an verschiedene andere Komponenten des Systems 100 liefern, wie vorstehend mit Bezug auf die 1 und 2 erläutert.
  • In verschiedenen Ausführungsformen kann die Funktionsweise der Komponenten 302 bis 350 in einer anderen Reihenfolge als der Reihenfolge ausgeführt werden, die durch die Reihenfolge dieser Funktionseinheiten in der Bildverarbeitungspipeline, die in 3 dargestellt ist, impliziert wird oder kann durch andere funktionale Komponenten als die in 3 dargestellten durchgeführt werden. Darüber hinaus können die verschiedenen Komponenten, wie in 3 beschrieben, in verschiedenen Kombinationen von Hardware, Firmware oder Software ausgeführt sein.
  • Beispielhafte einer Mehrband-Rauschreduzierungsschaltung zugeordnete Pipeline
  • 4 ist ein Blockdiagramm, das einen Abschnitt der Bildverarbeitungspipeline veranschaulicht, der gemäß einer Ausführungsform eine Mehrband-Rauschreduzierungsschaltung (MBNR) 420 einschließt. In der Ausführungsform von 4 ist die MBNR-Schaltung 420 Teil einer Neuabtastungsverarbeitungsstufe 308, die auch neben anderen Komponenten einen Skalierer 410 und eine Teilbandaufteilungsschaltung 430 einschließt. Die Neuabtastungsverarbeitungsstufe 308 führt die Skalierung, die Rauschreduzierung und die Teilbandteilung rekursiv durch.
  • Als Ergebnis der rekursiven Verarbeitung gibt die Neuabtastungsverarbeitungsstufe 308 eine Reihe von Bilddaten der Hochfrequenzkomponente HF(N) und Bilddaten der Niederfrequenzkomponente LF(N) aus, die von einem ursprünglichen Eingabebild 402 abgeleitet sind, wobei N für die Stufen des Unterabtastens steht, das an dem ursprünglichen Eingabebild 402 durchgeführt wurde. Zum Beispiel stehen HF(0) und LF(0) für Bilddaten der Hochfrequenzkomponente bzw. für Bilddaten der Niederfrequenzkomponente, die von dem ursprünglichen Eingabebild 402 abgetrennt wurden, während HF(1) und LF(1) für Bilddaten der Hochfrequenzkomponente bzw. für Bilddaten der Niederfrequenzkomponente stehen, die von einer ersten herunterskalierten Version des Eingabebildes 402 abgetrennt wurden.
  • Die MBNR-Schaltung 420 ist eine Schaltung, die eine Rauschreduzierung auf mehreren Bändern des Eingabebildes 402 durchführt. Das Eingabebild 402 wird zunächst über einen Multiplexer 414 an die MBNR-Schaltung 420 zur Rauschreduzierung weitergeleitet. Die rauschreduzierte Version 422 des ursprünglichen Eingabebildes 402 wird von der MBNR-Schaltung 420 generiert und einem Teilbandteiler 430 zugeführt. Der Teilbandteiler 430 teilt die rauschreduzierte Version 422 des ursprünglichen Eingabebildes 402 in die Bilddaten der Hochfrequenzkomponente HF(0) und die Bilddaten der Niederfrequenzkomponente LF(0) auf. Die Bilddaten der Hochfrequenzkomponente HF(0) werden an eine Teilbandverarbeitungspipeline 448 und dann an eine Teilbandzusammenführung 352 geleitet. Im Gegensatz dazu wird das Bild der Niederfrequenzkomponente LF(0) durch einen Demultiplexer 440 geleitet und an die Neuabtastungsverarbeitungsstufe 308 zur Herunterskalierung durch einen Skalierer 410 zurückgeführt.
  • Der Skalierer 410 erzeugt eine herunterskalierte Version 412 des dem Skalierer 410 zugeführten Bildes der Niederfrequenzkomponente LF(0) und leitet es über den Multiplexer 414 zur Rauschreduzierung an die MBNR-Schaltung 420. Die MBNR-Schaltung 420 führt eine Rauschreduzierung durch, um eine rauschreduzierte Version 432 des herunterskalierten Bildes 412 zu generieren, und sendet sie an den Teilbandteiler 430, um die verarbeiteten Bilddaten der Niederfrequenzkomponente LF(0) erneut in die Bilddaten der Hochfrequenzkomponente HF(1) und die Bilddaten der Niederfrequenzkomponente LF(1) aufzuteilen. Die Bilddaten der Hochfrequenzkomponente HF(1) werden an die Teilbandverarbeitungspipeline 448 und dann an die Teilbandzusammenführung 352 gesendet, während die Bilddaten der Niederfrequenzkomponente LF(1) wieder an den Skalierer 410 zugeführt werden, um den Prozess innerhalb der Neuabtastungsverarbeitungsstufe 308 zu wiederholen. Der Prozess der Erzeugung von Bilddaten der Hochfrequenzkomponente HF(N) und von Bilddaten der Niederfrequenzkomponente LF(N) wird so lange wiederholt, bis die endgültige Stufe der Bandaufteilung durch den Teilbandteiler 430 durchgeführt ist. Wenn die endgültige Stufe der Bandaufteilung erreicht ist, werden die Bilddaten der Niederfrequenzkomponente LF(N) durch den Demultiplexer 440 und einen Multiplexer 446 zur Teilbandverarbeitungspipeline 448 und zur Teilbandzusammenführung 352 geleitet.
  • Wie vorstehend beschrieben, führt die MBNR-Schaltung 420 die Rauschreduzierung am Eingangsbild 402 sowie an ihren herunterskalierten Niederfrequenzversionen des Eingangsbildes 402 durch. Dies ermöglicht es der MBNR-Schaltung 420, eine Rauschreduzierung auf mehreren Bändern des ursprünglichen Eingabebildes 402 durchzuführen. Es ist jedoch zu beachten, dass nur ein einziger Durchgang der Rauschreduzierung auf dem Eingabebild 402 von der MBNR-Schaltung 420 ohne Teilbandsplitting und Skalierung durchgeführt werden kann.
  • Die Teilbandzusammenführung 352 führt verarbeitete Bilddaten der Hochfrequenzkomponente HF(N)' und verarbeitete Bilddaten der Niederfrequenzkomponente LF(N)' zusammen, um ein verarbeitetes LF(N-1)' zu generieren. Die verarbeitete LF(N-1)' wird dann über den Demultiplexer 450 und den Multiplexer 446 an die Teilbandzusammenführung 352 zur Zusammenführung mit der verarbeiteten HF (N-1)' zurückgeführt, um eine verarbeitete LF(N-2)' zu generieren.
  • Der Prozess des Kombinierens der verarbeiteten Bilddaten der Hochfrequenzkomponente und der verarbeiteten Daten der Niederfrequenzkomponente wird wiederholt, bis die Teilbandzusammenführung 352 eine verarbeitete Version 454 des Eingangsbildes generiert, die über den Demultiplexer 450 ausgegeben wird.
  • Die erste Kontrastverstärkungsstufe 450 und die zweite Kontrastverstärkungsstufe 452 führen Schärfungs- oder Glättungsoperationen an Bilddatensegmenten durch, basierend auf den Inhalten, die den Bildsegmenten zugeordnet sind. Die erste Kontrastverstärkungsstufe 450 ist eine Komponente der Teilbandverarbeitungspipeline 448 und führt Schärfungsoperationen an Bilddaten der Hochfrequenzkomponente HF(N) durch, die relativ zum Eingabebild 402 herunterskaliert sind. Die zweite Kontrastverstärkungsstufe 452 führt andererseits eine Schärfung an einer Ausgabe der Teilbandzusammenführung 352 durch, die Bilddaten mit voller Auflösung sein können, die die gleiche räumliche Größe wie das Eingabebild 402 aufweisen. Die erste und zweite Kontrastverstärkungsstufe 450, 452 werden weiter unter Bezugnahme auf 7 beschrieben
  • Beispielhafte einer Inhaltskarte zugeordnete Pipeline
  • 5 ist ein Blockdiagramm, das die Bereitstellung einer Inhaltskarte 504 (hierin auch als „Segmentierungskarte“ bezeichnet) durch die Schaltung des neuronalen Prozessors 218 an den Bildsignalprozessor 206 gemäß einer Ausführungsform veranschaulicht. Der Bildsignalprozessor 206 stellt der Schaltung des neuronalen Prozessors 218 ein Eingabebild 502 bereit. Das Eingabebild 502 kann gleich oder unterschiedlich sein im Vergleich zum ursprünglichen Eingabebild 402. Basierend auf dem Eingabebild 502 generiert die Schaltung des neuronalen Prozessors 218 eine Inhaltskarte 504 und stellt die Inhaltskarte 504 dem Bildsignalprozessor 206 bereit. Zum Beispiel wird die Inhaltskarte 504 an die Kontrastverstärkungsstufen 450, 452 gesendet.
  • Wie zuvor mit Bezug auf 2 beschrieben, kann die Schaltung des neuronalen Prozessors 218 maschinell gelernt werden. Somit kann die Schaltung des neuronalen Prozessors 218 die Inhaltskarte 504 bestimmen, indem sie eine oder mehrere maschinell erlernte Operationen auf dem Eingabebild 502 durchführt. In einigen Ausführungsformen ist das Eingabebild 502 ein Bild mit reduzierter Auflösung (z. B. bereitgestellt durch den Skalierer 322) im Vergleich zum ursprünglichen Eingabebild 402. Durch die Reduzierung der Bildauflösung kann die Verarbeitungszeit für die Generierung der Inhaltskarte 504 verkürzt werden. Da jedoch die Auflösung der Inhaltskarte 504 in der Regel gleich oder ähnlich der Auflösung des Eingabebildes 502 ist, kann die Inhaltskarte 504 im Vergleich zum ursprünglichen Eingabebild 402 herunterskaliert werden. Ein beispielhaftes Eingabebild 602 wird in 6A bereitgestellt und eine beispielhafte Inhaltskarte 604 wird in 6B bereitgestellt. Die Inhaltskarte 604 identifiziert das Gras 506 und eine Person 508 im Bild 602.
  • Jedes Inhaltssegment kann einer oder mehreren vorbestimmten Inhaltskategorien zugeordnet sein. Die Inhaltskarte 504 kann einem Raster zugeordnet sein, das eine Vielzahl von Rasterpunkten aufweist, die während des Hochskalierungsprozesses verwendet werden. Die Inhaltskarte 504 kann die gleiche Größe wie das Bild in Vollskalierung haben. In einigen Ausführungsformen ist die Anzahl der Rasterpunkte zur Erleichterung verschiedener Verarbeitungen geringer als die Anzahl der Pixel im Bild in Vollskalierung für die Schärfung. In einer oder mehreren Ausführungsformen kann jeder Rasterpunkt der Karte einer Inhaltskategorie zugeordnet werden (wie hierin auch als „Inhaltskategorie“ bezeichnet) und kann zur Bestimmung eines Inhaltsfaktors für nahe gelegene Pixel in einem Bild in Vollskalierung verwendet werden, wie nachstehend unter Bezugnahme auf 11 ausführlich beschrieben.
  • Beispiele für Inhaltskategorien in einer Inhaltskarte 504 weisen unterschiedliche wünschenswerte Inhaltsfaktoren auf. Die unterschiedlichen Inhaltskategorien können Haut, Laub, Gras und Himmel einschließen. Im Allgemeinen ist es wünschenswert, bestimmte Kategorien (z. B. Laub und Gras) relativ zu anderen Kategorien (z. B. Haut) zu schärfen. In einer oder mehreren Ausführungsformen wird die Schaltung des neuronalen Prozessors 218 unter Verwendung verschiedener Algorithmen für maschinelles Lernen trainiert, um unterschiedliche Segmente des Eingabebildes 502 zu klassifizieren, um Inhaltskategorien für den Inhalt im Eingabebild 502 zu identifizieren, die wiederum vom Bildsignalprozessor 206 verwendet werden, um unterschiedliche Segmente des Eingabebildes 502 mit unterschiedlichen Inhaltsfaktoren zu schärfen, die den Grad der Schärfung anzeigen, der auf die unterschiedlichen Segmente angewendet werden soll, wie nachstehend unter Bezugnahme auf 8 ausführlich beschrieben.
  • In anderen Ausführungsformen wird die Schaltung des neuronalen Prozessors 218 unter Verwendung verschiedener Algorithmen für maschinelles Lernen trainiert, um eine Wärmekarte als Inhaltskarte 504 zu generieren. Die Wärmekarte zeigt direkt den Grad der erwünschten Schärfe in unterschiedlichen Segmenten des Eingabebildes 502 an, anstatt die den unterschiedlichen Segmenten zugeordneten Inhaltskategorien anzuzeigen.
  • Beispielhafte Kontrastverstärkungsstufenschaltung
  • 7 ist ein Blockdiagramm, das Komponenten einer ersten Kontrastverstärkungsstufenschaltung 450 gemäß einer Ausführungsform veranschaulicht. Die erste Kontrastverstärkungsstufenschaltung 450 führt eine inhaltsbasierte Bildschärfung und -glättung an Luminanzinformationen Y durch, um eine geschärfte Version der Luminanzinformationen Y' zu erzeugen. Luminanzinformationen Y beziehen sich auf ein Bild, das nur Luminanzkomponenten des Eingabebildes 402 einschließt, und geschärfte Luminanzinformationen Y' beziehen sich auf ein Bild, das nur Luminanzkomponenten des Ausgabebildes einschließt. Die erste Kontrastverstärkungsstufenschaltung 450 kann neben anderen Komponenten einen Bildschärfer 702, eine Inhaltsbildverarbeitung 704 und eine Addiererschaltung 706 einschließen. Die zweite Kontrastverstärkungsstufenschaltung 452 weist im Wesentlichen die gleiche Struktur auf wie die erste Kontrastverstärkungsstufenschaltung 450, mit der Ausnahme, dass das Luminanzbild im Vergleich zum vollständigen Eingabebild 402 nicht herunterskaliert wird, weshalb hierin der Kürze halber auf eine detaillierte Beschreibung davon verzichtet wird.
  • Der Bildschärfer 702 ist eine Schaltung, die eine Kontrastverbesserung (z. B. Schärfung) an Luminanzinformationen Y durchführt und die Ausgabe Delta Y generiert. Delta Y stellt eine Maske von Y dar. Zum Beispiel ist Delta Y ein Ergebnis eines Unschärfemaskierungsprozesses. In einer oder mehreren Ausführungsformen ist der Bildschärfer 702 als bilateraler Filter oder als Hochpassfrequenzfilter ausgeführt, der eine Verarbeitung an Luminanzinformationen Y durchführt. Somit kann Delta Y beispielsweise eine Hochfrequenzkomponente des Bildes sein. Delta Y wird durch nachgeschaltete Komponenten der ersten Kontrastverstärkungsstufe 450 weiter angepasst.
  • Die Inhaltsbildverarbeitung 704 ist eine Schaltung, die Delta Y basierend auf den Inhaltskategorien, die durch die Inhaltskarte identifiziert wurden, und der Wahrscheinlichkeit einer solchen Klassifizierung anpasst. Die Inhaltsbildverarbeitung 704 empfängt Luminanzinformationen Y und die Inhaltskarte 504 und generiert ein angepasstes Delta Y', das relativ zu Delta Y in Abhängigkeit vom gewünschten Schärfungsgrad basierend auf den Inhaltskategorien erhöht oder verringert wird, wie unter Bezugnahme auf 8 weiter beschrieben.
  • In einigen Ausführungsformen fügt die Addiererschaltung 706 das angepasste Delta Y' aus der Inhaltsbildverarbeitung 704 zu den Luminanzinformationen Y hinzu, um geschärfte Luminanzinformationen Y' zu erzeugen. In einigen Ausführungsformen fügt die Addiererschaltung 706 das angepasste Delta Y' zu den Niederfrequenzkomponenten der Luminanzinformationen Y hinzu (z. B. worin Niederfrequenzkomponenten = Y - Delta Y). Für einige Pixel ist das hinzugefügte Delta Y' positiv, wodurch das Addieren in der Addiererschaltung 706 zu einer Schärfung eines zugehörigen Bildsegments führt. Für Pixel mit einem angepassten Delta Y', das negativ ist, führt die Addiererschaltung 706 eine Weichzeichnungsoperation, wie die Alpha-Weichzeichnung, durch. Wie nachstehend weiter beschrieben, kann Delta Y mit der Niederfrequenzkomponente der Luminanzinformationen Y alpha-weichgezeichnet werden. Dies kann dazu führen, dass die Weichzeichnung auf die Niederfrequenzkomponente begrenzt ist. Dies kann Bildartefakte verhindern, die in den Fällen erfolgen können, in denen Delta Y' große negative Werte einschließt.
  • Beispielhafte Inhaltsbildverarbeitungsschaltung
  • 8 ist ein Blockdiagramm, das Komponenten einer Inhaltsbildverarbeitungsschaltung 704 gemäß einer Ausführungsform veranschaulicht. Wie zuvor unter Bezugnahme auf 7 erläutert, führt die Inhaltsbildverarbeitung 704 Schärfungs- und Glättungsoperationen basierend auf dem Inhalt im Bild durch. Die Inhaltsbildverarbeitung 704 kann neben anderen Komponenten eine Texturschaltung 802, eine Chromaschaltung 804, eine Inhaltsfaktorschaltung 806 und eine Inhaltsänderungsschaltung 810 einschließen.
  • Die Inhaltsfaktorschaltung 806 bestimmt Inhaltsfaktoren für Pixel im Eingabebild. Ein Inhaltsfaktor kann für jedes Pixel im Eingabebild bestimmt werden. Ein Inhaltsfaktor basiert auf einem oder mehreren Werten in der Inhaltskarte und zeigt den Betrag der Schärfung an, die auf ein Pixel angewendet werden soll. Ein Inhaltsfaktor kann außerdem auf einem oder mehreren Texturwerten aus der Texturschaltung 802 und/oder Chromawerten aus der Chromaschaltung 804 basieren.
  • Wie zuvor beschrieben, können Inhaltskategorien der Inhaltskarte Inhaltsfaktoren zugeordnet sein. Zum Beispiel wird für jede Inhaltskategorie ein Inhaltsfaktor vorbestimmt. Wenn eine Inhaltskarte die gleiche Auflösung wie das Bild hat, kann ein Inhaltsfaktor für ein Pixel erhalten werden, indem auf Informationen für eine entsprechende Position in der Inhaltskarte verwiesen wird. Wenn die Inhaltskarte im Vergleich zum Bild herunterskaliert ist, kann die Inhaltskarte hochskaliert werden, um der Größe des Eingabebildes angepasst zu werden, sodass ein Inhaltsfaktor aus nahegelegenen Pixeln in einer hochskalierten Version der Inhaltskarte interpoliert werden kann. Ein Raster mit mehreren Griffpunkten kann über das Eingabebild gelegt werden, und den Rasterpunkten zugeordnete Informationen können verwendet werden, um durch Interpolation Informationen für Pixel im Vollbild zu bestimmen. Wenn zum Beispiel eine Pixelposition des Vollbildes nicht mit einem Rasterpunkt in der Inhaltskarte übereinstimmt (z. B. wenn das Pixel zwischen einem Satz von Rasterpunkten angeordnet ist), kann der Inhaltsfaktor für das Pixel durch Interpolation der Inhaltsfaktoren von Rasterpunkten in der Nähe (z. B. in der Umgebung) des Pixels bestimmt werden. Das Hochabtasten der Inhaltskarte, um einen Inhaltsfaktor für ein Pixel zwischen Rasterpunkten zu bestimmen, wird unter Bezugnahme auf 11 weiter beschrieben.
  • In einigen Ausführungsformen wird ein Inhaltsfaktor gemäß einem Wahrscheinlichkeitswert gewichtet. Zum Beispiel wird ein Inhaltsfaktor Q für ein Pixel bestimmt, indem ein anfänglicher Inhaltsfaktor Q0 mit einem Wahrscheinlichkeitswert multipliziert wird: Q = ( Q 0 ) * ( Wahrscheinlichkeitswert )
    Figure DE112021002288T5_0001
    wobei der anfängliche Inhaltsfaktor Q0 der Inhaltsfaktor ist, der einer bestimmten Inhaltskategorie zugeordnet ist. Der Wahrscheinlichkeitswert kann auf der Inhaltskategorie des Pixels und einem Texturwert und/oder einem Chromawert des Pixels basieren, wie nachstehend mit Bezug auf die Texturschaltung 802 und die Chromaschaltung 804 beschrieben. In einigen Ausführungsformen wird der Wahrscheinlichkeitswert durch ein Wahrscheinlichkeitsmodell bestimmt, wie: ( Wahrscheinlichkeitswert ) = C 1 + C 2 * ( Texturwert ) + C 3 * ( Chromawert )
    Figure DE112021002288T5_0002
    wobei C1, C2 und C3 vorbestimmte Konstanten (z. B. Abstimmungsparameter) sind. Die vorbestimmten Konstanten können Werte basierend auf Inhaltskategorien in der Inhaltskarte aufweisen. In einigen Ausführungsformen ist das Wahrscheinlichkeitsmodell eine Polynomfunktion von Textur- und Chromawerten. Das Wahrscheinlichkeitsmodell stellt ein Modell für die Genauigkeit der Klassifizierung dar und kann empirisch oder durch einen Prozess des maschinellen Lernens bestimmt werden.
  • Die Texturschaltung 802 ist eine Schaltung, die Texturwerte bestimmt, die Wahrscheinlichkeit darstellen, dass Inhaltskategorien, wie durch Inhaltskarte 504 identifiziert, basierend auf Texturinformationen korrekt sind. In einer oder mehreren Ausführungsformen wird ein Texturwert durch Anwendung eines oder mehrerer Kantenerkennungsoperationen auf das Eingabebild bestimmt. Zum Beispiel werden Kantenerkennungsverfahren wie ein Sobel-Filter oder ein Hochpassfrequenzfilter auf ein Luminanz-Eingabebild angewendet, um Kantenwerte an den Pixelpositionen des Eingabebildes zu erhalten. Nachdem die Kantenwerte bestimmt wurden, kann ein Texturwert für einen Rasterpunkt durch Anwendung eines Kantenwertes auf ein Texturmodell bestimmt werden. Die Texturschaltung 802 kann mehrere unterschiedliche Texturmodelle speichern, die unterschiedlichen Inhaltskategorien entsprechen. Beispiele für Texturmodelle schließen ein Laubtexturmodell, ein Himmelstexturmodell, ein Grastexturmodell und ein Hauttexturmodell ein. Ein Beispiel für ein Laubtexturmodell wird nachstehend unter Bezugnahme auf 9 beschrieben.
  • Die Chromaschaltung 804 ist eine Schaltung, die Chromawerte bestimmt, die eine Wahrscheinlichkeit darstellen, dass die von der Inhaltskarte 504 identifizierten Inhaltskategorien basierend auf Chromainformationen korrekt sind. Ein Chromawert basiert auf Farbinformationen (z. B. Cb-Wert und Cr-Wert) des Bildes. Die Chromaschaltung 804 kann unterschiedliche Chromamodelle für unterschiedliche Inhaltskategorien speichern. Beispiele für Chromamodelle schließen ein Laubchromamodell, ein Himmelschromamodell, ein Graschromamodell und ein Hautchromamodell ein. Ein Chromamodell kann manuell bestimmt oder durch Techniken des maschinellen Lernens bestimmt werden. Ein beispielhaftes Himmelschromamodell wird unter Bezugnahme auf 10 beschrieben.
  • Die Inhaltsänderungsschaltung 810 empfängt Inhaltsfaktoren aus der Inhaltsfaktorschaltung 806 und Delta-Y-Werte aus dem Bildschärfer 702. Die Inhaltsänderungsschaltung 810 wendet Inhaltsfaktoren auf Delta-Y-Werte an, um Delta-Y'-Werte zu generieren. Wenn beispielsweise ein Inhaltsfaktor für ein Pixel über einem vorbestimmten Schwellenwert (z. B. 0) liegt, führt die Inhaltsänderungsschaltung 810 eine Schärfungsoperation durch, wie das Multiplizieren des Inhaltsfaktors des Pixels mit einem Delta-Y-Wert des Pixels. Wenn ein Inhaltsfaktor für ein Pixel unter dem vorbestimmten Schwellenwert liegt, kann die Inhaltsänderungsschaltung 810 eine Glättungsoperation durch Überblenden des delta Y' basierend auf dem Inhaltsfaktor durchführen. Zum Beispiel wird das Alpha-Überblenden durchgeführt gemäß: Y ' = ( 1 alpha ) * Y + alpha * ( Y Delta Y )
    Figure DE112021002288T5_0003
    und Y' = Y + Delta Y ' .
    Figure DE112021002288T5_0004
    Somit ist Delat Y ' = ( alpha ) * ( Delta Y ) ,
    Figure DE112021002288T5_0005
    wobei alpha = |Q| * Skalierung und alpha ein Wert zwischen 0 und 1 ist. Die Skalierung ist eine vorbestimmte positive Konstante. Es ist zu beachten, dass, wenn |Q| groß genug ist, sodass |Q| * Skalierung > 1 ist, alpha so beschnitten wird, dass es gleich 1 ist).
  • 9 ist ein Diagramm, das ein Texturmodell gemäß einer Ausführungsform veranschaulicht. Wenn ein Pixel (oder ein Rasterpunkt, falls ein Raster verwendet wird) von der Inhaltskarte beispielsweise als „Laub“ kategorisiert wird, kann der Texturwert durch Anwendung des Kantenwerts des Pixels (oder des Rasterpunkts, falls ein Raster verwendet wird) auf das Modell von 9 bestimmt werden. Die x-Achse stellt die Eingabekantenwerte und die y-Achse die Ausgabetexturwerte dar. Die Texturwerte reichen von 0 bis 1. Wenn ein Kantenwert eines Pixels über einem hohen Schwellenwert liegt, ist der Texturwert 1, und wenn ein Kantenwert unter einem niedrigen Schwellenwert liegt, ist der Texturwert 0. Texturwerte steigen linear von 0 auf 1 an, wenn die Kantenwerte zwischen dem niedrigen und dem hohen Schwellenwert liegen. Die Werte für den unteren und oberen Schwellenwert können empirisch bestimmt werden. Zum Beispiel werden die Schwellenwerte gemäß den Kantenwerten eingestellt, die für Laub typisch sind. Somit kann der Kantenwert, der über dem hohen Schwellenwert liegt, anzeigen, dass sich das Pixel oder der Rasterpunkt in einer Region mit hoher Textur befindet, die dem Laub entspricht. In ähnlicher Weise kann ein Kantenwert, der unter dem niedrigen Schwellenwert liegt, anzeigen, dass sich der Pixel oder der Rasterpunkt in einer Region mit einer flachen Textur befindet, die dem Laub nicht entspricht. Zum Beispiel, gemäß Gleichung 2, zeigen hohe Texturwerte eine hohe Wahrscheinlichkeit an, dass es sich bei dem Inhalt des Pixels um Laub handelt (unter der Annahme, dass C2 positiv ist).
  • Für unterschiedliche Kategorien kann ein entsprechendes Texturmodell durch unterschiedliche Texturparameter dargestellt werden (z. B. unterschiedliche untere Schwelle, unterschiedliche obere Schwelle und/oder unterschiedliche Steigung und/oder Umkehrung von 1 und 0). Für die Kategorie „Gras“ können der untere Schwellenwert und der obere Schwellenwert höher sein als für die Kategorie „Laub“. Manche Kategorien sind vermutlich korrekt, wenn die Textur flach ist, und nicht, wenn die Textur komplex ist. Bei solchen Kategorien können die Werte 1 und 0 für den Texturwert umgekehrt werden. Zum Beispiel kann das Texturmodell für „Himmel“ einen Wert 1 aufweisen, wenn der Kantenwert niedriger ist (z. B. unter einem niedrigen Schwellenwert) und einen Wert 0 aufweisen, wenn der Kantenwert höher ist (z. B. über einem hohen Schwellenwert). Das heißt, dass ein Pixel mit größerer Wahrscheinlichkeit „Himmel“ anzeigt, wenn das Pixel sich in einer Region des Eingabebildes befindet, in dem die Textur flach ist. In einigen Ausführungsformen variieren die vorbestimmten Konstanten in Gleichung 2 basierend auf der Inhaltskategorie, anstatt die Werte 1 und 0 umzukehren. Zum Beispiel kann für Kategorien wie „Haut“ oder „Himmel“ C2 negativ sein, sodass hohe Texturwerte eine geringe Wahrscheinlichkeit anzeigen, dass der Inhalt des Pixels „Haut“ oder „Himmel“ ist.
  • 10 ist ein Diagramm, das ein Chromamodell gemäß einer Ausführungsform veranschaulicht. Das Chromamodell von 10 kann das Modell „Himmel“ darstellen. Wenn ein Pixel oder ein Rasterpunkt von der Inhaltskarte als „Himmel“ kategorisiert wird, bestimmt die Chromaschaltung 804, ob die Kombination aus Cb-Wert und Cr-Werten für das Pixel oder die Rasterpunkte unter einen der Bereiche 1010, 1020 und 1030 fällt. Die x-Achse stellt die Cb-Eingabewerte dar und die y-Achse stellt die Cr-Eingabewerte dar. In der oberen rechten Ecke des Diagramms ist eine Ellipse angeordnet, die den Farbbereich des „Himmels“ darstellt. Wenn die Cb/Cr-Werte eines Pixels oder eines Rasterpunkts innerhalb einer inneren Ellipse im Bereich 1010 liegen, ist der Chromawert 1, was (z. B. gemäß Gleichung 2, wobei C3 positiv ist) eine hohe Wahrscheinlichkeit anzeigen kann, dass das Pixel oder der Rasterpunkt dem „Himmel“ entspricht. Wenn der Cb/Cr-Wert außerhalb einer äußeren Ellipse im Bereich 1030 liegt, ist der Chromawert 0, was anzeigt, dass das Pixel oder der Rasterpunkt wahrscheinlich nicht dem „Himmel“ entspricht (z. B. gemäß Gleichung 2, wobei C3 positiv ist). Wenn die Cb/Cr-Werte zwischen der inneren Ellipse und der äußeren Ellipse im Bereich 1020 liegen, kann der Chromawert zwischen 0 und 1 liegen (z. B. steigen die Chromawerte mit zunehmendem Abstand vom Rand der inneren Ellipse an). Die Position und Größe der Ellipse kann empirisch oder durch statistische Modellierung bestimmt werden. In einigen Ausführungsformen können anstelle einer Ellipse auch andere Formen wie ein Quadrat, ein Dreieck oder ein Kreis verwendet werden.
  • Für unterschiedliche Kategorien kann ein entsprechendes Chromamodell durch unterschiedliche Chromaparameter dargestellt werden (z. B. Zentren, Radius, Winkel, Neigung der Ellipsen und Verhältnis von Ausgangs-/Innenellipsen). Zum Beispiel wird das Chromamodell für „Laub“ im Allgemeinen grün sein, und daher wird der Chromaparameter für die Kategorie „Laub“ die Cb/Cr-Werte abdecken, die der grünen Farbe entsprechen, während der Chromaparameter für die Kategorie „Himmel“ die Cb/Cr-Werte abdecken wird, die der blauen Farbe entsprechen. In einem anderen Beispiel werden die Chromaparameter gemäß Farben ausgewählt, die im Allgemeinen keiner Kategorie zugeordnet sind. Zum Beispiel wird „Laub“ im Allgemeinen kein Blau einschließen. Somit kann das Chromamodell so konfiguriert sein, dass ein niedriger Wert ausgegeben wird, wenn die Cb/Cr-Werte Blau entsprechen.
  • Beispielhafte Interpolation unter Verwendung von Rasterpunkten
  • 11 ist ein Diagramm, das ein Verfahren zur Hochabtastung einer Inhaltskarte gemäß einer Ausführungsform veranschaulicht. Wenn eine Inhaltskarte eine geringere Auflösung als das Eingabebild aufweist, weisen dann Pixel im Bild und Pixel in der Inhaltskarte keine Eins-zu-eins-Entsprechung auf. Daher kann eine Hochskalierung der Inhaltskarte durchgeführt werden. Eine Möglichkeit, eine solche Hochskalierung durchzuführen, ist die Verwendung eines Rasters mit mehreren Rasterpunkten, die über das Eingabebild 1102 gelegt werden. Die Rasterpunkte können spärlicher sein als die Pixel im Eingabebild 1102. In einem solchen Fall können die Inhaltsfaktoren für die Rasterpunkte verwendet werden, um die Inhaltsfaktoren für das höher aufgelöste Eingabebild 1102 zu bestimmen.
  • Ausgehend von einem Beispiel, bei dem das Raster, das auf das Eingabebild 1102 gelegt wird, die Rasterpunkte 1 bis 4 aufweist, und das Eingabebild 1102 ein Pixel 1104 einschließt, das zwischen den Rasterpunkten 1 bis 4 angeordnet ist, kann der Inhaltsfaktor Q(Pixel) für das Pixel 1104 bestimmt werden, indem eine bilineare Interpolation der Inhaltsfaktoren Q(1) bis Q(4) durchgeführt wird, die den Rasterpunkten 1 bis 4 zugeordnet sind, wobei der räumliche Abstand zwischen den Rasterpunkten und dem Pixel 1104 berücksichtigt wird.
  • In einer oder mehreren Ausführungsformen werden die Inhaltsfaktoren Q(1) bis Q(4) zur Bestimmung von Q(Pixel) für Pixel 1104 unter Verwendung der Texturparameter und Chromaparameter von Pixel 1104 des Eingabebildes 1102 bestimmt. Die Kategorien der Rasterpunkte 1 bis 4, wie sie in der Inhaltskarte angegeben sind, werden verwendet, aber die Wahrscheinlichkeitswerte (vorstehend mit Bezug auf Gleichung (2) beschrieben) für diese Kategorien werden unter Verwendung des Kantenwerts und der Cb/Cr-Werte des Pixels 1104 und nicht der Rasterpunkte bestimmt. Wenn zum Beispiel Rasterpunkt 1 als „Haut“ kategorisiert wird, wird die Textur des Pixels 1104 auf das Texturmodell mit Texturparametern angewendet, die „Haut“ entsprechen, und die Cb/Cr-Werte des Pixels 1104 werden auf das Chromamodell mit Chromaparametern angewendet, die „Haut“ entsprechen, um Q(1) gemäß Gleichung (1) zu erhalten. In ähnlicher Weise wird, wenn Rasterpunkt 2 als „Laub“ kategorisiert wird, der Kantenwert des Pixels 1104 auf das Texturmodell mit Texturparametern angewendet, die „Laub“ entsprechen, und die Cb/Cr-Werte des Pixels 1104 werden auf das Chromamodell mit Chromaparametern angewendet, die „Laub“ entsprechen, um Q(2) gemäß Gleichung (1) zu erhalten. Nach Wiederholung desselben Prozesses für die Rasterpunkte 3 und 4 erhält man Q(Pixel) durch bilaterale Interpolation.
  • In anderen Ausführungsformen werden die Inhaltsfaktoren Q(1) bis Q(4) unter Verwendung der Texturwerte und Cb/Cr-Werte der Rasterpunkte anstelle der Pixelwerte erhalten.
  • Beispielhaftes Verfahren zur inhaltsbasierten Bildschärfung
  • 12 ist ein Flussdiagramm, das ein Verfahren zur Schärfung eines oder mehrerer Pixel eines Bildes basierend auf dem Inhalt innerhalb von Segmenten des Bildes gemäß einer Ausführungsform veranschaulicht. Die Schritte des Verfahrens können in unterschiedlicher Reihenfolge durchgeführt werden, und das Verfahren kann unterschiedliche, zusätzliche oder weniger Schritte einschließen.
  • Luminanzpixelwerte eines Eingabebildes werden empfangen 1202. Eine Inhaltskarte wird empfangen 1204. Die Inhaltskarte identifiziert Inhaltskategorien in Segmenten des Bildes. Die Inhaltskarte kann von einer Schaltung des neuronalen Prozessors generiert werden, die mindestens eine maschinell erlernte Operation an einer Version des Bildes durchführt, um die Inhaltskarte zu generieren. Die von der Inhaltskarte identifizierten Kategorien können Haut, Laub, Gras oder Himmel einschließen. In einigen Ausführungsformen ist die Inhaltskarte eine Wärmekarte, die einen Betrag der Schärfung anzeigt, der auf ein Pixel angewendet werden soll.
  • Ein einem Pixel im Bild zugeordneter Inhaltsfaktor wird bestimmt 1206. Der Inhaltsfaktor wird gemäß den identifizierten Inhaltskategorien im Eingabebild und mindestens einem von Texturwerten von Pixeln im Bild oder Chromawerten von Pixeln im Bild bestimmt. Ein Texturwert zeigt eine Wahrscheinlichkeit einer Inhaltskategorie an, die dem Pixel basierend auf einer Textur im Bild zugeordnet ist. Ein Chromawert zeigt eine Wahrscheinlichkeit einer Inhaltskategorie an, die dem Pixel basierend auf Farbinformationen des Bildes zugeordnet ist.
  • In einigen Ausführungsformen ist die Inhaltskarte relativ zum Eingabebild herunterskaliert. In diesen Ausführungsformen kann der Inhaltsfaktor durch Hochabtasten der Inhaltskarte bestimmt werden. Die Inhaltskarte kann durch Erhalten der Inhaltsfaktoren von Rasterpunkten, die auf die Inhaltskarte gelegt werden, und anschließendes Interpolieren der Inhaltsfaktoren der Rasterpunkte hochabgetastet werden, um den Inhaltsfaktor für das Pixel im Eingabebild zu erhalten.
  • Eine geschärfte Version eines Luminanzpixelwerts des Pixels wird generiert 1208, indem mindestens der Inhaltsfaktor auf eine Version eines Luminanzpixelwerts des Pixels angewendet wird. Die Version der Luminanzpixelwerte kann durch einen bilateralen Filter oder einen Hochpassfilter erzeugt werden. In einigen Ausführungsformen wird der Inhaltsfaktor auf die Version des Luminanzpixelwerts angewendet, indem der Inhaltsfaktor mit der Version des Luminanzpixelwerts multipliziert wird, als Reaktion darauf, dass der Inhaltsfaktor über einem Schwellenwert liegt. Wenn der Inhaltsfaktor unter dem Schwellenwert liegt, wendet die Inhaltsänderungsschaltung die Version des Luminanzpixelwerts an, die mit einem negativen Parameter multipliziert wird.
  • Die hierin beschriebenen Lehren beziehen sich auf das Generieren eines Inhaltsfaktors für jedes Pixel in einem Bild. Der Inhaltsfaktor basiert auf dem Inhalt in dem Bild, das über eine Inhaltskarte identifiziert wird. Die hierin beschriebenen Lehren beziehen sich zwar auf die Bildschärfung, doch dient dies nur der Übersichtlichkeit. Die hierin beschriebenen Lehren können auch auf andere Bildverarbeitungsprozesse, wie Rauschreduzierungs-, Tonzuordnungs- und Weißabgleichsprozess, angewandt werden. Zum Beispiel kann bei der Rauschreduzierung der Inhaltsfaktor auf die Rauschstandardabweichung angewendet (z. B. multipliziert) werden.
  • Obwohl bestimmte Ausführungsformen und Anwendungen veranschaulicht und beschrieben wurden, versteht sich, dass die Erfindung nicht auf die genaue Konstruktion und die genauen Komponenten beschränkt ist, die hierin offenbart sind, und dass verschiedene Modifikationen, Änderungen und Variationen, die für Fachleute offensichtlich sein werden, in der Anordnung, dem Betrieb und den Details des hierin offenbarten Verfahrens und der Vorrichtung vorgenommen werden können, ohne vom Geist und Schutzumfang der vorliegenden Offenbarung abzuweichen.

Claims (20)

  1. Einrichtung zur Bildverarbeitung, umfassend: eine Inhaltsbildverarbeitungsschaltung, die zum Empfangen von Luminanzpixelwerten eines Bildes und einer Inhaltskarte konfiguriert ist, die Inhaltskategorien in Segmenten des Bildes identifiziert, wobei die Inhaltsbildverarbeitungsschaltung umfasst: eine Inhaltsfaktorschaltung, die zum Bestimmen eines Inhaltsfaktors konfiguriert ist, der einem Pixel des Bildes gemäß den identifizierten Inhaltskategorien im Bild und mindestens einem von Texturwerten von Pixeln im Bild oder Chromawerten von Pixeln im Bild zugeordnet ist, wobei ein Texturwert eine Wahrscheinlichkeit einer Inhaltskategorie anzeigt, die dem Pixel basierend auf einer Textur im Bild zugeordnet ist, und wobei ein Chromawert eine Wahrscheinlichkeit einer Inhaltskategorie anzeigt, die dem Pixel basierend auf Farbinformationen des Bildes zugeordnet ist; und eine Inhaltsänderungsschaltung, die mit der Inhaltsfaktorschaltung gekoppelt ist, um den Inhaltsfaktor zu empfangen, und die zum Generieren einer geschärften Version eines Luminanzpixelwerts des Pixels konfiguriert ist, indem zumindest der Inhaltsfaktor auf eine Version eines Luminanzpixelwerts des Pixels angewendet wird.
  2. Einrichtung nach Anspruch 1, wobei die Inhaltskarte von einer Schaltung des neuronalen Prozessors generiert wird, die zum Durchführen einer maschinell erlernten Operation an einer Version des Bildes konfiguriert ist, um die Inhaltskarte zu generieren.
  3. Einrichtung nach Anspruch 1, wobei die Inhaltskarte relativ zum Bild herunterskaliert ist.
  4. Einrichtung nach Anspruch 3, wobei die Inhaltsfaktorschaltung zum Bestimmen des Inhaltsfaktors durch Hochabtasten der Inhaltskarte konfiguriert ist.
  5. Einrichtung nach Anspruch 4, wobei die Inhaltskarte hochabgetastet wird durch: Erhalten von Inhaltsfaktoren, die Rasterpunkten in der Inhaltskarte zugeordnet sind, wobei die Rasterpunkte das Pixel umgeben, wenn die Inhaltskarte vergrößert wird, um die Größe des Bildes anzupassen; und Interpolieren der Inhaltsfaktoren, um den dem Pixel zugeordneten Inhaltsfaktor zu erhalten.
  6. Vorrichtung nach Anspruch 1, wobei der Inhaltsfaktor gemäß einem Wahrscheinlichkeitswert gewichtet wird, wobei der Wahrscheinlichkeitswert auf einer der identifizierten Kategorien des Inhalts im Bild, einem Texturwert und einem Chromawert basiert.
  7. Einrichtung nach Anspruch 1, wobei die Luminanzpixelwerte in den ersten Informationen des Bildes eingeschlossen sind, wenn das Bild in die ersten Informationen und zweite Informationen geteilt wird, die Frequenzkomponenten einschließen, die niedriger sind als die Frequenzkomponenten der ersten Komponente.
  8. Einrichtung nach Anspruch 1, ferner umfassend einen bilateralen Filter, der mit der Inhaltsbildverarbeitungsschaltung gekoppelt ist, wobei der bilaterale Filter zur Erstellung der Version des Luminanzpixelwerts konfiguriert ist.
  9. Einrichtung nach Anspruch 1, wobei die Inhaltsänderungsschaltung zum Anwenden des Inhaltsfaktors auf die Version des Luminanzpixelwerts konfiguriert wird, durch (i) Multiplizieren des Inhaltsfaktors mit der Version des Luminanzpixelwerts als Reaktion darauf, dass der Inhaltsfaktor über einem Schwellenwert liegt, und (ii) Überblenden des Luminanzpixelwerts der Version basierend auf dem Inhaltsfaktor als Reaktion darauf, dass der Inhaltsfaktor unter dem Schwellenwert liegt.
  10. Einrichtung nach Anspruch 1, wobei die Inhaltskarte eine Wärmekarte ist, die einen Betrag der Schärfung angibt, der auf die Pixel des Bildes angewendet werden soll, die den Rasterpunkten in der Inhaltskarte entsprechen.
  11. Verfahren, umfassend: Empfangen von Luminanzpixelwerten eines Bildes; Empfangen einer Inhaltskarte, die Inhaltskategorien in Segmenten des Bildes identifiziert, Bestimmen eines Inhaltsfaktors, der einem Pixel im Bild gemäß den identifizierten Inhaltskategorien im Bild und mindestens einem von Texturwerten von Pixeln im Bild oder Chromawerten von Pixeln im Bild zugeordnet ist, wobei ein Texturwert eine Wahrscheinlichkeit einer Inhaltskategorie anzeigt, die dem Pixel basierend auf einer Textur im Bild zugeordnet ist, und wobei ein Chromawert eine Wahrscheinlichkeit einer Inhaltskategorie anzeigt, die dem Pixel basierend auf Farbinformationen des Bildes zugeordnet ist; und Erzeugen einer geschärften Version eines Luminanzpixelwerts des Pixels, indem mindestens der Inhaltsfaktor auf eine Version eines Luminanzpixelwerts des Pixels angewendet wird.
  12. Verfahren nach Anspruch 11, das ferner das Generieren der Inhaltskarte durch eine Schaltung des neuronalen Prozessors umfasst, wobei die Schaltung des neuronalen Prozessors eine maschinell erlernte Operation an einer Version des Bildes durchführt, um die Inhaltskarte zu generieren.
  13. Verfahren nach Anspruch 11, wobei die Inhaltskarte relativ zum Bild herunterskaliert ist.
  14. Verfahren nach Anspruch 13, wobei das Bestimmen des Inhaltsfaktors das Hochabtasten der Inhaltskarte umfasst.
  15. Verfahren nach Anspruch 14, wobei das Hochabtasten der Inhaltskarte umfasst: Erhalten von Inhaltsfaktoren, die Rasterpunkten in der Inhaltskarte zugeordnet sind, wobei die Rasterpunkte das Pixel umgeben, wenn die Inhaltskarte vergrößert wird, um die Größe des Bildes anzupassen; und Interpolieren der Inhaltsfaktoren, um den dem Pixel zugeordneten Inhaltsfaktor zu erhalten.
  16. Elektronische Vorrichtung, umfassend: eine Schaltung des neuronalen Prozessors, die zum Erzeugen einer Inhaltskarte konfiguriert ist, die Inhaltskategorien in Segmenten eines Bildes identifiziert, indem ein Algorithmus für maschinelles Lernen an dem Bild durchgeführt wird; und eine Inhaltsbildverarbeitungsschaltung, die mit der Schaltung des neuronalen Prozessors gekoppelt ist, wobei die Inhaltsbildverarbeitungsschaltung zum Empfangen von Luminanzpixelwerten des Bildes und der Inhaltskarte konfiguriert ist, wobei die Inhaltsbildverarbeitungsschaltung umfasst: eine Inhaltsfaktorschaltung, die zum Bestimmen eines Inhaltsfaktors konfiguriert ist, der einem Pixel des Bildes gemäß den identifizierten Inhaltskategorien im Bild und mindestens einem von Texturwerten von Pixeln im Bild oder Chromawerten von Pixeln im Bild zugeordnet ist, wobei ein Texturwert eine Wahrscheinlichkeit einer Inhaltskategorie anzeigt, die dem Pixel basierend auf einer Textur im Bild zugeordnet ist, und wobei ein Chromawert eine Wahrscheinlichkeit einer Inhaltskategorie anzeigt, die dem Pixel basierend auf Farbinformationen des Bildes zugeordnet ist; und eine Inhaltsänderungsschaltung, die mit der Inhaltsfaktorschaltung gekoppelt ist, um den Inhaltsfaktor zu empfangen, und die zum Generieren einer geschärften Version eines Luminanzpixelwerts des Pixels konfiguriert ist, indem zumindest der Inhaltsfaktor auf eine Version eines Luminanzpixelwerts des Pixels angewendet wird.
  17. Elektronische Vorrichtung nach Anspruch 16, wobei die Inhaltskarte relativ zu dem Bild herunterskaliert ist.
  18. Elektronische Vorrichtung nach Anspruch 16, wobei die Inhaltsfaktorschaltung zum Bestimmen des Inhaltsfaktors durch Hochabtasten der Inhaltskarte konfiguriert ist.
  19. Elektronische Vorrichtung nach Anspruch 18, wobei die Inhaltskarte hochabgetastet wird durch: Erhalten von Inhaltsfaktoren, die Rasterpunkten in der Inhaltskarte zugeordnet sind, wobei die Rasterpunkte das Pixel umgeben, wenn die Inhaltskarte vergrößert wird, um die Größe des Bildes anzupassen; und Interpolieren der Inhaltsfaktoren, um den dem Pixel zugeordneten Inhaltsfaktor zu erhalten.
  20. Elektronische Vorrichtung nach Anspruch 16, ferner umfassend einen bilateralen Filter, der mit der Inhaltsbildverarbeitungsschaltung gekoppelt ist, wobei der bilaterale Filter zur Erstellung der Version des Luminanzpixelwerts konfiguriert ist.
DE112021002288.1T 2020-04-13 2021-03-19 Inhaltsbasierte bildverarbeitung Pending DE112021002288T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/846,904 2020-04-13
US16/846,904 US11488285B2 (en) 2020-04-13 2020-04-13 Content based image processing
PCT/US2021/023128 WO2021211257A1 (en) 2020-04-13 2021-03-19 Content based image processing

Publications (1)

Publication Number Publication Date
DE112021002288T5 true DE112021002288T5 (de) 2023-03-16

Family

ID=75439576

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002288.1T Pending DE112021002288T5 (de) 2020-04-13 2021-03-19 Inhaltsbasierte bildverarbeitung

Country Status (6)

Country Link
US (2) US11488285B2 (de)
JP (2) JP7387917B2 (de)
KR (2) KR102585573B1 (de)
CN (1) CN115428009B (de)
DE (1) DE112021002288T5 (de)
WO (1) WO2021211257A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021214712A1 (en) * 2020-04-24 2021-10-28 Spectrum Optix Inc. Neural network supported camera image or video processing pipelines

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330372B1 (en) * 1999-09-13 2001-12-11 Intel Corporation Compression edge adaptive video and image sharpening and scaling
US6738494B1 (en) * 2000-06-23 2004-05-18 Eastman Kodak Company Method for varying an image processing path based on image emphasis and appeal
US6879733B2 (en) * 2001-01-18 2005-04-12 Seiko Epson Corporation Image artifact removal technique for LCP
US20030026495A1 (en) * 2001-03-07 2003-02-06 Gondek Jay Stephen Parameterized sharpening and smoothing method and apparatus
US6564851B1 (en) * 2001-12-04 2003-05-20 Yu Hua Liao Detachable drapery hanger assembly for emergency use
US7050636B2 (en) * 2001-12-07 2006-05-23 Eastman Kodak Company Method and system for improving an image characteristic based on image content
US7092573B2 (en) 2001-12-10 2006-08-15 Eastman Kodak Company Method and system for selectively applying enhancement to an image
US6965702B2 (en) * 2002-02-27 2005-11-15 Eastman Kodak Company Method for sharpening a digital image with signal to noise estimation
US6891977B2 (en) * 2002-02-27 2005-05-10 Eastman Kodak Company Method for sharpening a digital image without amplifying noise
JP2004254158A (ja) 2003-02-21 2004-09-09 Pentax Corp 画像処理装置
WO2006040960A1 (ja) * 2004-10-08 2006-04-20 Matsushita Electric Industrial Co., Ltd. 画像処理装置および画像処理プログラム
US20060093234A1 (en) * 2004-11-04 2006-05-04 Silverstein D A Reduction of blur in multi-channel images
US7876833B2 (en) 2005-04-11 2011-01-25 Sharp Laboratories Of America, Inc. Method and apparatus for adaptive up-scaling for spatially scalable coding
US20070242160A1 (en) 2006-04-18 2007-10-18 Marvell International Ltd. Shared memory multi video channel display apparatus and methods
US8264610B2 (en) 2006-04-18 2012-09-11 Marvell World Trade Ltd. Shared memory multi video channel display apparatus and methods
US20080267524A1 (en) * 2007-04-30 2008-10-30 Doron Shaked Automatic image enhancement
US8031961B2 (en) * 2007-05-29 2011-10-04 Hewlett-Packard Development Company, L.P. Face and skin sensitive image enhancement
DE102007058498A1 (de) * 2007-12-05 2009-06-10 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Rauschunterdrückung in medizinischen Bildern
US20090169074A1 (en) * 2008-01-02 2009-07-02 General Electric Company System and method for computer assisted analysis of medical image
JP2010055194A (ja) * 2008-08-26 2010-03-11 Sony Corp 画像処理装置および方法、学習装置および方法、並びにプログラム
US8351725B2 (en) * 2008-09-23 2013-01-08 Sharp Laboratories Of America, Inc. Image sharpening technique
US8717459B2 (en) * 2008-12-11 2014-05-06 Texas Instruments Incorporated Method and apparatus for improving automatic white balance with scene information
JP5051156B2 (ja) * 2009-03-05 2012-10-17 カシオ計算機株式会社 画像処理装置及びプログラム
WO2010138121A1 (en) * 2009-05-28 2010-12-02 Hewlett-Packard Development Company, L.P. Image processing
US8194170B2 (en) * 2009-06-02 2012-06-05 Algonquin College Axicon lens array
US8593483B2 (en) * 2009-10-20 2013-11-26 Apple Inc. Temporal filtering techniques for image signal processing
JP5615088B2 (ja) * 2010-08-18 2014-10-29 キヤノン株式会社 画像処理装置及びその方法、プログラム、並びに撮像装置
JP2012235332A (ja) * 2011-05-02 2012-11-29 Sony Corp 撮像装置、および撮像装置制御方法、並びにプログラム
JP6279825B2 (ja) 2011-05-18 2018-02-14 ソニー株式会社 画像処理装置、画像処理方法、プログラムおよび撮像装置
TWI460681B (zh) * 2012-02-20 2014-11-11 Novatek Microelectronics Corp 影像的邊緣處理方法及影像處理裝置
WO2013148566A1 (en) * 2012-03-26 2013-10-03 Viewdle, Inc. Image blur detection
US8928772B2 (en) * 2012-09-21 2015-01-06 Eastman Kodak Company Controlling the sharpness of a digital image
US8724919B2 (en) * 2012-09-21 2014-05-13 Eastman Kodak Company Adjusting the sharpness of a digital image
JP6013178B2 (ja) * 2012-12-28 2016-10-25 株式会社東芝 画像処理装置および画像処理方法
US9336574B2 (en) * 2013-01-07 2016-05-10 GM Global Technology Operations LLC Image super-resolution for dynamic rearview mirror
US9280806B2 (en) * 2013-01-10 2016-03-08 Broadcom Corporation Edge smoothing block filtering and blending
JP6164926B2 (ja) * 2013-05-16 2017-07-19 オリンパス株式会社 ノイズ低減処理装置
JP2015023445A (ja) 2013-07-19 2015-02-02 シャープ株式会社 画像処理装置、及び画像形成装置
JP6573375B2 (ja) 2015-06-24 2019-09-11 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム
US9911174B2 (en) * 2015-08-26 2018-03-06 Apple Inc. Multi-rate processing for image data in an image processing pipeline
US10269095B2 (en) * 2015-08-31 2019-04-23 Apple Inc. Dynamically determining filtering strength for noise filtering in image processing
US9992467B2 (en) * 2016-06-30 2018-06-05 Apple Inc. Parallel computer vision and image scaling architecture
CN110858903B (zh) * 2018-08-22 2022-07-12 华为技术有限公司 色度块预测方法及装置

Also Published As

Publication number Publication date
US11488285B2 (en) 2022-11-01
JP7387917B2 (ja) 2023-11-28
JP2024037722A (ja) 2024-03-19
WO2021211257A1 (en) 2021-10-21
US20210319536A1 (en) 2021-10-14
US20230020964A1 (en) 2023-01-19
CN115428009B (zh) 2024-04-16
JP2023511226A (ja) 2023-03-16
CN115428009A (zh) 2022-12-02
KR102585573B1 (ko) 2023-10-05
KR20220151713A (ko) 2022-11-15
KR20230141956A (ko) 2023-10-10

Similar Documents

Publication Publication Date Title
DE112018002228B4 (de) Konfigurierbare faltungsmaschine für verschachtelte kanaldaten
Li et al. Detail-enhanced multi-scale exposure fusion
WO2021227838A1 (zh) 图像处理方法、系统及计算机可读存储介质
Bai et al. Underwater image enhancement based on global and local equalization of histogram and dual-image multi-scale fusion
EP2187620B1 (de) Digitalbildverarbeitungs- und verbesserungssystem und verfahren mit der funktion des entfernens von rauschen
DE60320178T2 (de) Verfahren und System zur Verbesserung von Portraitbildern
DE102019213184A1 (de) Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen
DE102011078662A1 (de) Erfassen und Erzeugen von Bildern mit hohem Dynamikbereich
DE112006001017B4 (de) Verfahren und Vorrichtung zum Eingliedern von Irisfarbe in eine Rotes-Auge-Korrektur
CN112734650B (zh) 一种基于虚拟多曝光融合的不均匀光照图像增强方法
DE60127016T2 (de) Verfahren und Gerät zur Durchführung einer lokalen Farbkorrektur
DE102015010096A1 (de) Konfigurationseinstellungen einer Digitalkamera zur Tiefenkarten-Erzeugung
US9478004B2 (en) Method and system for analog/digital image simplification and stylization
DE112013004507T5 (de) Bildverarbeitungsvorrichtung, Bilderfassungsvorrichtung, Bildverarbeitungsverfahren, Programm und Aufzeichnungsmedium
Hou et al. Deep feature consistent deep image transformations: Downscaling, decolorization and HDR tone mapping
CN113379609B (zh) 一种图像处理方法、存储介质及终端设备
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung
DE112021006769T5 (de) Schaltung zur kombinierten heruntertaktung und korrektur von bilddaten
DE102021103958A1 (de) Bildsignalprozessor beinhaltendes Bildsystem und Betriebsverfahren für einen Bildsignalprozessor
CN111353955A (zh) 一种图像处理方法、装置、设备和存储介质
DE102019205783A1 (de) Systeme und Verfahren für verbesserte 3D-Daten-Rekonstruktion aus stereo-temporalen Bildsequenzen
DE112021002288T5 (de) Inhaltsbasierte bildverarbeitung
DE102017009118A1 (de) Bildabgleich für serienbilder
CN113379608A (zh) 一种图像处理方法、存储介质及终端设备
Sun et al. Fractal pyramid low-light image enhancement network with illumination information

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication