DE102011087852A1 - System, Verfahren und Computerprogrammprodukt zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildabtastwerte - Google Patents

System, Verfahren und Computerprogrammprodukt zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildabtastwerte Download PDF

Info

Publication number
DE102011087852A1
DE102011087852A1 DE102011087852A DE102011087852A DE102011087852A1 DE 102011087852 A1 DE102011087852 A1 DE 102011087852A1 DE 102011087852 A DE102011087852 A DE 102011087852A DE 102011087852 A DE102011087852 A DE 102011087852A DE 102011087852 A1 DE102011087852 A1 DE 102011087852A1
Authority
DE
Germany
Prior art keywords
samples
noisy pixel
depth
program product
computer program
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.)
Ceased
Application number
DE102011087852A
Other languages
English (en)
Inventor
Peter Schuyler Shirley
Timo Aila
Jonathan Michael Cohen
Eric B. Enderton
Samuli Laine
Morgan McGuire
David Patrick Luebke
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102011087852A1 publication Critical patent/DE102011087852A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • 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/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • 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

Landscapes

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

Abstract

Ein System, Verfahren und Computerprogrammprodukt wird bereitgestellt, um Rauschen in einem Bild zu reduzieren, wobei tiefenbasiertes Entlangstreichen über Bildsamples verwendet wird. Im Einsatz wird jedes verrauschte Pixel eines Bildes, das Rauschen aufweist, identifiziert. Zusätzlich wird, für jed jeder einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist, identifiziert. Des Weiteren wird über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge entlanggestrichen, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen verringert.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Graphikverarbeitung und insbesondere auf das Reduzieren von Rauschen in graphischen Bildern.
  • Hintergrund
  • Hardware-Rasterisierungs-Pipelines waren höchst erfolgreich beim Rendern von komplexen Szenen. Jedoch haben sie im Allgemeinen Schwierigkeiten, manche physikalischen Kameraeffekte zu reproduzieren, wie beispielsweise Fokussierungsunschärfe, Bewegungsunschärfe, etc. Unglücklicherweise erzeugen aktuelle Implementierungen von Graphikrenderern unverzerrte aber verrauschte Bilder von Szenen, die die fortgeschrittenen Kameraeffekte von Bewegungs- und Defokussierungsunschärfe und mögliche andere Effekte wie Transparenz aufweisen. In ähnlicher Weise erzeugen auch Strahlverfolgungsprogramme und Kameras oft verrauschte Bilder, die Bewegungs-/Defokussierungsunschärfe, Transparenz, etc. aufweisen.
  • Nur beispielhaft wurden kürzlich Fortschritte beim Verwenden von stochastischen Techniken zum interaktiven Rendern erzielt, einschließlich dem Herstellen der vorher erwähnten Kameraeffekte, indem das Zentrum der Projektion und/oder die Zeit pro Abtastwert (sample) zufällig variiert wird, wie in üblichen Offline-Rendersystemen. Unglücklicherweise ist, bei interaktiven Frameraten, die Anzahl von Zufallssamples, die in der vorhersehbaren Zukunft verfügbar ist, nicht ausreichend, um unter Verwendung von einfachen unverzerrten Sample-Durchschnittsberechnungen visuell glatte Bilder zu erzeugen. Es gibt daher ein Bedürfnis, diese und/oder andere Aspekte, die mit dem Stand der Technik assoziiert sind, zu behandeln.
  • Zusammenfassung
  • Ein System, Verfahren und Computerprogrammprodukt werden bereitgestellt, um Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen (sweeping) über Bildabtastwerte (image samples) zu reduzieren. Im Einsatz wird jedes verrauschte Pixel eines Bildes, das Rauschen aufweist, identifiziert. Zusätzlich wird für jedes verrauschte Pixel zumindest ein Abtastwert (sample), der in jedem einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist, identifiziert. Des Weiteren wird über die Samples zumindest teilweise in einer tiefenbasierten (depth-based) Reihenfolge entlanggestrichen (sweep over), um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen reduziert.
  • Kurze Beschreibung der Zeichnungen
  • 1 stellt ein Verfahren zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildsamples gemäß einer Ausführungsform dar.
  • 2 stellt ein Verfahren zum Reduzieren von Rauschen in einem verrauschten Pixel unter Verwendung einer tiefenbasierten Anordnung von Samples, die mit Bezug auf das verrauschte Pixel identifiziert sind, gemäß einer anderen Ausführungsform dar.
  • 3 stellt ein Verfahren zum Entlangstreichen über Samples, die mit Bezug auf das verrauschte Pixel in einer tiefenbasierten Reihenfolge identifiziert sind, gemäß wiederum einer anderen Ausführungsform dar.
  • 4 stellt ein beispielhaftes System dar, in dem die unterschiedliche Architektur und/oder Funktionalität der unterschiedlichen vorherigen Ausführungsformen implementiert werden kann.
  • Detaillierte Beschreibung
  • 1 stellt ein Verfahren 100 zum Reduzieren von Rauschen in einem Bild gemäß einer Ausführungsform dar, wobei tiefenbasiertes (depth-based) Entlangstreichen (sweeping) über Bildabtastwerte (image samples) verwendet wird. Wie in Operation 102 gezeigt, wird jedes verrauschte Pixel eines Bildes identifiziert, das Rauschen aufweist. Mit Bezug auf die vorliegende Beschreibung kann das Bild irgendein graphisch gerendertes Bild oder fotographisch erfasstes Bild (zum Beispiel durch eine Digitalkamera) aufweisen, das das Rauschen aufweist. Beispielsweise kann solches Rauschen ein oder mehrere unerwünschte Artefakte aufweisen, wie unten detaillierter beschrieben wird.
  • Zu diesem Zweck kann das verrauschte Pixel ein Pixel des Bildes sein, das zumindest einen Teilbereich des (der) unerwünschten Artefakts (Artefakte) des Bilds aufweist (zum Beispiel anzeigt). In einer Ausführungsform kann das Rauschen daher resultieren, dass das Bild zumindest ein transparentes Objekt aufweist (d. h., wobei das Pixel verwendet wird, um zumindest einen Teilbereich des transparenten Objekts darzustellen). In wiederum einer anderen Ausführungsform kann das Rauschen aus Unschärfe resultieren, die in dem Bild enthalten ist (zum Beispiel ein unscharfer Bereich, der in dem Bild enthalten ist). Solche Unschärfe kann Bewegungsunschärfe oder Schärfentiefe-Unschärfe enthalten.
  • Mit Bezug auf die Schärfentiefe-Unschärfe kann das Rauschen daher resultieren, dass das Bild ein unscharfes Objekt aufweist, das vor einem scharfen (das heißt scharf eingestelltes) Objekt ist (das heißt wobei das Pixel verwendet wird, um zumindest einen Teilbereich des unscharfen Objekts vor dem scharfen Objekt darzustellen). Beispielsweise kann solches Rauschen Teilbereiche des scharfen Objekts enthalten, die in das unscharfe Objekt hineinzeigen. Insbesondere kann dieses Artefakt auftreten, wenn beinahe alle der Samples wahrscheinlich von dem vorderen unscharfen Objekt sind, aber aufgrund einer zufälligen Variation es ein oder mehrere Samples von dem scharfen Objekt gibt, die zu dem resultierenden Bild beitragen (zum Beispiel wenn die Variationen visuell offensichtlich sind). Und zwar kann das vorher erwähnte Rauschen von scharfen Merkmalen resultieren, die unter-abgetastet sind.
  • Als eine andere Option kann das Rauschen daher resultieren, dass das Bild ein scharfes Objekt vor einem unscharfen Objekt aufweist, (d. h., wobei das Pixel verwendet wird, um zumindest einen Teilbereich des scharfen Objekts vor dem unscharfen Objekt darzustellen). Beispielsweise kann solches Rauschen Teilbereiche des unscharfen Objekts aufweisen, die in das scharfe Objekt hineinzeigen (zum Beispiel wenn das unscharfe Objekt auf das scharfe Objekt „durchgesickert” ist). Dies kann auftreten, wenn Samples des unscharfen Hintergrundobjekts in benachbarten Pixeln erlaubt wird, den Wert des verrauschten Pixels zu beeinflussen.
  • Zusätzlich wird für jedes verrauschte Pixel zumindest ein Sample, das in jedem einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist, identifiziert. Beachte Operation 104. Die benachbarten Pixel können Pixel innerhalb einer vorbestimmten Nähe zu dem verrauschten Pixel in einer Ausführungsform aufweisen. In einer anderen Ausführungsform können die benachbarten Pixel Pixel aufweisen, die innerhalb eines verrauschten Bereichs des Bilds (d. h. einem Bereich, der Rauschen aufweist) sein, in dem das verrauschte Pixel angeordnet ist.
  • Des Weiteren können die Samples von solchen benachbarten Pixeln jeweils einen Punkt oder Bereich innerhalb eines assoziierten benachbarten Pixels aufweisen. Somit kann jedes Sample Informationen aufweisen, die mit dem Punkt oder Bereich des benachbarten Pixels assoziiert sind. Beispielsweise können die Informationen einen Farbwert (Rot-, Grün- und Blau-Farbwerte) und einen Tiefen(z)-Wert aufweisen.
  • Es sollte beachtet werden, dass die Samples unter Verwendung irgendeines gewünschten vorbestimmten Abtast-Algorithmus (sampling algorithm) identifiziert werden können. In einer Ausführungsform kann der Sampling-Algorithmus, der zum Identifizieren der Samples verwendet wird, den stochastischen Sampling-Algorithmus aufweisen, der in der US-Patentanmeldung Nr. 12/708,443, eingereicht am 18.02.2010, mit dem Titel „System, Method and Computer Program Product for Rendering Pixels With At Least One Semi-Transparent Surface” von Eric Enderton, beschrieben sind. In einer anderen Ausführungsform kann der Sampling-Algorithmus einen Pseudozufalls-Sampling-Algorithmus aufweisen, der in dem US-Patent Nr. 4897806 , eingereicht am 19.06.1985, mit dem Titel „Pseudo-random Point Sampling Techniques in Computer Graphics” von Cook et al. beschrieben ist. In wiederum einer anderen Ausführungsform kann der Sampling-Algorithmus einen Quasi-Zufalls-Sampling-Algorithmus aufweisen, der in dem US-Patent Nr. 6529193 , eingereicht am 23.06.1997, mit dem Titel „System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points” von Herkin et al. beschrieben ist.
  • Des Weiteren, wie in Operation 106 gezeigt, wird über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge entlanggestrichen, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen reduziert. Beispielsweise kann der Wert des verrauschten Pixels einen Farbwert für das verrauschte Pixel aufweisen. Indem der Wert für das verrauschte Pixel identifiziert wird, kann das verrauschte Pixel unter Verwendung des identifizierten Werts rekonstruiert werden (d. h. von seinem Anfangszustand in Operation 102). Beispielsweise kann das verrauschte Pixel gerendert werden oder anderweitig zur Darstellung unter Verwendung des identifizierten Wertes erzeugt werden. Mehr Informationen über das Bestimmen eines solchen Wertes werden unten detaillierter beschrieben.
  • In einer Ausführungsform kann die tiefenbasierte Reihenfolge, mit der zumindest teilweise über die Samples entlang gestrichen wird, eine Vorne-nach-Hinten-Reihenfolge (front-to-back order) aufweisen. Beispielsweise kann das Verarbeiten der Samples, um den Wert für das verrauschte Pixel zu identifizieren, in der Vorne-nach-Hinten-Reihenfolge durchgeführt werden, so dass ein vorderstes Sample (das heißt ein Sample mit einem vordersten Tiefenwert) zuerst verarbeitet wird, ein nächstes vorderstes Sample als zweites verarbeitet wird usw. Natürlich kann, wie oben erwähnt, über die Samples auch in einer teilweisen (das heißt angenäherten) tiefenbasierten Reihenfolge entlang gestrichen werden, wobei über alle der Samples entlang gestrichen wird, aber nur über einen Teilbereich in der tiefenbasierten Reihenfolge entlang gestrichen wird. Ein solcher Teilbereich kann vorbestimmt sein (zum Beispiel jedes andere Sample) oder die Art, in der die Samples (angenähert) tiefenbasiert angeordnet sind, kann vorbestimmt sein, wie gewünscht. Somit kann über die Samples optional in der (angenäherten) Vorne-nach-Hinten-Reihenfolge nur einmal entlang gestrichen werden.
  • In einer anderen Ausführungsform kann der Wert für das verrauschte Pixel unter Verwendung einer Akkumulierung identifiziert werden, die mit Bezug auf das Entlangstreichen der Samples durchgeführt wird. Eine solche Akkumulierung kann das Anpassen eines Filtergewichts basierend auf einem Filtergewicht, das für jedes der Samples bestimmt wird, aufweisen. In der vorliegenden Ausführungsform kann das Filtergewicht für ein Sample direkt proportional zu einem Pegel von Unschärfe (oder Transparenz in dem Fall von Rauschen aufgrund eines transparenten Objekts) des Samples sein. Beispielsweise kann das Filtergewicht für das erste Sample in der tiefenbasierten Reihenfolge identifiziert werden und des Weiteren für jedes nachfolgende Sample in der tiefenbasierten Reihenfolge basierend auf dem Filtergewicht von solchen nachfolgenden Samples angepasst werden.
  • In einer beispielhaften Ausführungsform kann ein Filtergewicht, das mit einem Pegel an Unschärfe für das erste Sample in der tiefenbasierten Reihenfolge assoziiert ist, als das aktuelle Filtergewicht identifiziert werden, ein Filtergewicht, das mit einem Pegel von Unschärfe für ein zweites Sample in der tiefenbasierten Reihenfolge assoziiert ist, kann identifiziert werden und verwendet werden, um das bereits angepasste aktuelle Filtergewicht anzupassen, ein Filtergewicht, das mit einem Pegel an Unschärfe für ein drittes Sample in der tiefenbasierten Reihenfolge assoziiert ist, kann identifiziert werden und verwendet werden, um das bereits angepasste Filtergewicht anzupassen, etc., bis ein Filtergewicht, das mit einem Pegel von Unschärfe für ein letztes Sample in der tiefenbasierten Reihenfolge assoziiert ist, identifiziert ist und verwendet wird, um das bereits angepasste aktuelle Filtergewicht anzupassen. Somit kann das aktuelle Filtergewicht für jedes Sample aktualisiert werden, bis ein finales bzw. endgültiges Filtergewicht bestimmt ist.
  • Das endgültige Filtergewicht kann einen Bereich anzeigen, der mit dem verrauschten Pixel assoziiert ist, von dem Samples zur Verwendung beim Identifizieren des Wertes für das verrauschte Pixel auszuwählen sind. Beispielsweise kann das endgültige Filtergewicht anzeigen, welches der benachbarten Pixel den Wert des verrauschten Pixels beeinflussen wird, so dass die identifizierten Samples Von diesen benachbarten Pixeln (von Operation 104) verwendet werden (zum Beispiel gemittelt), um den Wert für das verrauschte Pixel zu identifizieren.
  • Zu diesem Zweck kann der Bereich, der benachbarte Pixel aufweist, von denen Samples zur Verwendung beim Berechnen des Werts für das verrauschte Pixel ausgewählt werden, dynamisch ausgewählt werden. Eine solche dynamische Auswahl kann daher ermöglichen, dass unterschiedliche verrauschte Pixel durch unterschiedlich große Bereiche beeinflusst werden, um damit durch unterschiedliche Zahlen von Samples, die von der Zahl von benachbarten Pixeln in diesen Bereichen abhängen. Immer noch kann, indem die Zahl von Samples, die zu dem Wert des verrauschten Pixels beitragen, erhöht wird, das verrauschte Pixel unscharf sein (oder unschärfer sein, wenn das verrauschte Pixel bereits unscharf ist), so dass eine entrauschende Unschärfe effektiv für das verrauschte Pixel bereitgestellt wird. Beispielsweise, wenn das Rauschen des Bilds ein Ergebnis eines unscharfen Bereichs ist, der in dem Bild enthalten ist, kann das Erhöhen der Zahl von Samples, die zu dem Wert des verrauschten Pixels beitragen, es ermöglichen, dass das verrauschte Pixel in einer Weise rekonstruiert wird, dass zusätzliche Unschärfe zu dem unscharfen Bereich bereitgestellt wird (das heißt durch das rekonstruierte verrauschte Pixel). Diese zusätzliche Unschärfe kann vorzugsweise für Betrachter des Bildes sein, da das Rauschen in dem Bild durch das Einschließen der zusätzlichen Unschärfe verringert wird.
  • Weitere beispielhafte Informationen werden nun mit Bezug auf verschiedene optionale Architekturen und Merkmale, mit denen das vorhergehende Rahmenwerk implementiert werden kann oder auch nicht, je nach den Wünschen des Benutzers, dargelegt werden. Es sollte stark beachtet werden, dass die folgenden Informationen zu beispielhaften Zwecken dargelegt werden und nicht als in irgendeiner Weise beschränkend betrachtet werden sollten. Beliebige der folgenden Merkmale können optional mit oder ohne den Ausschluss von anderen beschriebenen Merkmalen eingebaut werden.
  • 2 stellt ein Verfahren 200 zum Reduzieren von Rauschen in einem verrauschten Pixel unter Verwendung einer tiefenbasierten Anordnung von Samples, die mit Bezug auf das verrauschte Pixel identifiziert sind, gemäß einer anderen Ausführungsform dar. Als eine Option kann das Verfahren 200 in dem Kontext von 1 ausgeführt werden. Natürlich kann jedoch das Verfahren 200 in irgendeiner anderen gewünschten Umgebung durchgeführt werden. Es sollte auch beachtet werden, dass die vorher erwähnten Definitionen durch die vorliegende Beschreibung hindurch angewendet werden können.
  • Wie in Operation 202 gezeigt, wird ein verrauschtes Pixel eines Bildes, das Rauschen aufweist, identifiziert. Es sollte beachtet werden, dass, während das vorliegende Verfahren 200 mit Bezug auf ein einzelnes Pixel beschrieben wird, das Verfahren 200 für jedes verrauschte Pixel in dem Bild durchgeführt werden kann. Auf diese Weise kann das Verfahren 200 verwendet werden, um Rauschen des Bildes zu reduzieren, indem ein Rauschen, das mit jedem verrauschten Pixel in dem Bild assoziiert ist, reduziert wird.
  • Zusätzlich, wie in Operation 204 gezeigt, wird eine Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel identifiziert. Beispielsweise kann ein verrauschter Bereich des Bildes, in dem das verrauschte Pixel angeordnet ist, identifiziert werden. Andere Pixel innerhalb eines solchen Bereichs, die auch Rauschen aufweisen, können als eine Option als die benachbarten Pixel zu dem verrauschten Pixel identifiziert werden.
  • Des Weiteren wird zumindest ein Sample, das in jedem der benachbarten Pixeln enthalten ist, identifiziert, wobei ein vorbestimmter Sampling-Algorithmus verwendet wird. Beachte Operation 206. In einer Ausführungsform kann die Anzahl von Samples, die von jedem der benachbarten Pixel identifiziert wird, vorherbestimmt sein. In einer anderen Ausführungsform kann der Ort von solchen Samples von innerhalb jedes der benachbarten Pixeln durch den vorbestimmten Sampling-Algorithmus bestimmt werden.
  • Wiederum, wie in Operation 208 gezeigt, sind die Samples tiefenangeordnet. Die Samples können tiefenangeordnet sein unter Verwendung von Tiefeninformation, die für jedes der Samples bestimmt wird, wenn die Samples identifiziert werden. Beispielsweise kann die Identifkation der Samples das Identifizieren von Informationen, die die Samples beschreiben, aufweisen, wie Farbinformationen und Tiefeninformationen. In einer Ausführungsform kann die Tiefenanordnung eine Vorne-nach-Hinten-Anordnung aufweisen, so dass ein Sample der mindesten Tiefe zuerst in der Reihenfolge ist und ein Sample einer höchsten Tiefe zuletzt in der Reihenfolge ist.
  • Des Weiteren kann über die Samples in der Tiefenreihenfolge entlanggestrichen werden, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen des Bildes reduziert. Beachte Operation 210. Eine Ausführungsform des Entlangstreichens über die Samples wird unten mit Bezug auf das Verfahren 300 von 3 beschrieben.
  • Es sollte beachtet werden, dass, als eine andere Option, die identifizierten Samples in einer Mehrzahl von tiefenangeordneten Behältern platziert werden können, wobei jeder der Behälter eingerichtet ist, Samples innerhalb eines unterschiedlichen Tiefenbereichs zu speichern (so dass die Samples innerhalb eines Behälters nicht notwendigerweise in irgendeiner bestimmten Reihenfolge gespeichert sind). Beispielsweise, wenn das Bild eine Schärfentiefe aufweist, kann ein erster Behälter in der Reihenfolge Samples einer Tiefe über einer Fokusebene (d. h. außerhalb des Fokus) speichern, ein zweiter Behälter in der Reihenfolge kann Samples in der Fokusebene (d. h. im Fokus) speichern, und ein dritter Behälter kann Samples unterhalb der Fokusebene (d. h. außerhalb des Fokus) speichern. Somit kann ein Sample in einem der Behälter gemäß einer Bestimmung, dass die Tiefe des Samples innerhalb des Tiefenbereichs, der mit dem Behälter assoziiert ist, ist, platziert werden.
  • Zu diesem Zweck kann das Entlangstreichen über die Samples das Gruppieren (binning) der Samples, wie oben beschrieben, und das Entlangstreichen über die Behälter (bins) in der tiefenbasierten Reihenfolge aufweisen. Optional kann das Verfahren 300 von 3 auf die Behälter in einer anderen Ausführungsform angewendet werden. Beispielsweise können die Filtergewichte der unsortierten Samples innerhalb jedes Behälters akkumuliert werden (zum Beispiel ohne Bezug auf irgendeine bestimmte Tiefenreihenfolge). Die akkumulierten Filtergewichte für jeden der Behälter können dann basierend auf der Tiefenordnung der Behälter kombiniert werden, zum Identifizieren des Wertes für das verrauschte Pixel. Indem die Behälter auf diese Weise verwendet werden, kann der Wert des verrauschten Pixels mit weniger Sortierung und weniger Berechnung identifiziert werden, als wenn alle der Samples tiefensortiert sind.
  • 3 stellt ein Verfahren 300 zum Entlangstreichen über Samples, die mit Bezug auf das verrauschte Pixel identifiziert sind, in einer tiefenbasierten Reihenfolge gemäß wiederum einer anderen Ausführungsform dar. Als eine Option kann das vorliegende Verfahren 300 in dem Kontext der Funktionalität und Architektur von 1 bis 2 durchgeführt werden. Beispielsweise kann das Verfahren 300 mit Bezug auf die Operation 210 von 2 durchgeführt werden. Natürlich kann jedoch das Verfahren 300 in irgendeiner gewünschten Umgebung ausgeführt werden. Wiederum sollte beachtet werden, dass die vorher erwähnten Definitionen durch die vorliegende Beschreibung hindurch angewendet werden können.
  • Wie in Operation 302 gezeigt, wird ein erstes Sample in einer tiefenbasierten Reihenfolge identifiziert. Das erste Sample kann ein Sample aufweisen, das von benachbarten Pixeln eines verrauschten Pixels identifiziert ist, welches einen niedrigsten Tiefenwert aufweist. Beispielsweise kann das erste Sample das erste Sample in der Tiefenreihenfolge aufweisen, die oben mit Bezug auf Operation 208 von 2 beschrieben wurde.
  • Des Weiteren wird ein Filtergewicht, das mit dem ersten Sample assoziiert ist, identifiziert. Beachte Operation 304. Mit Bezug auf die vorliegende Ausführungsform zeigt das Filtergewicht, das mit dem ersten Sample assoziiert ist, einen Bereich (zum Beispiel einen kreisförmigen Bereich, einen rechteckigen Bereich, oder irgendeine andere vorbestimmte Form), der das erste Sample umgibt, an. Beispielsweise kann das Filtergewicht, das mit dem ersten Sample assoziiert ist, einen Wert eines Radius von dem ersten Sample oder einen Durchmesser des Bereichs aufweisen, wobei das erste Sample in der Mitte des Bereichs ist.
  • In einer Ausführungsform kann das Filtergewicht für das erste Sample eine direkte Funktion eines Pegels von Unschärfe des Samples sein. Beispielsweise, wenn sich der Pegel von Unschärfe (oder in dem Fall von Transparenz der Pegel von Transparenz) erhöht, kann sich das Filtergewicht ähnlich erhöhen. Als eine Option kann jedes einer Mehrzahl von Filtergewichten auf einen unterschiedlichen Pegel von Unschärfe abgebildet werden, der fähig ist, mit einem Sample assoziiert zu werden. Als eine weitere Option können die Filtergewichte durch einen Benutzer für die variierenden Pegel der Unschärfe konfiguriert werden (zum Beispiel wenn die Pegel einen einzelnen Unschärfewert oder einen Bereich von Unschärfewerten aufweisen).
  • Beispielsweise kann das Filtergewicht irgendeine programmierer-ausgewählte Funktion von Sampletiefe, Bewegung, Transparenz, Texturfrequenzinhalt, oder sogar gestalterische Variablen wie visuelle Wichtigkeit sein. In einer Ausführungsform kann das Filtergewicht der Kreis von Konfusion an der Tiefe des ersten Samples sein. Somit kann der Pegel von Unschärfe für das erste Sample optional bestimmt werden und das assoziierte Filtergewicht identifiziert werden.
  • Zusätzlich, wie in der Entscheidung 306 gezeigt, wird bestimmt, ob es ein nächstes Sample in der tiefenbasierten Reihenfolge gibt. Wenn es ein nächstes Sample gibt, wird das Filtergewicht (d. h. bestimmt mit Bezug auf das vorherige Sample in der tiefenbasierten Reihenfolge) basierend auf einem Filtergewicht, das mit dem nächsten Sample assoziiert ist, angepasst. Beachte Operation 308. Dementsprechend kann, für jedes nachfolgende Sample in der tiefenbasierten Reihenfolge, das Filtergewicht basierend auf einem Filtergewicht für jedes nachfolgende Sample angepasst werden, und das endgültige angepasste Filtergewicht kann als ein Filtergewicht identifiziert werden, das mit einem gewünschten Pegel an Unschärfe assoziiert ist.
  • Lediglich als Beispiel kann das Filtergewicht des ersten Samples unter Verwendung des Filtergewichts eines nächsten Samples in der tiefenbasierten Reihenfolge angepasst werden (um ein erstes angepasstes Filtergewicht zu erzeugen), dieses erste angepasste Filtergewicht kann des Weiteren unter Verwendung des Filtergewichts eines anderen nächsten Samples in der tiefenbasierten Reihenfolge angepasst werden (um ein zweites angepasstes Filtergewicht zu erzeugen), dieses zweite angepasste Filtergewicht kann des Weiteren unter Verwendung des Filtergewichts von wiederum einem anderen nächsten Sample in der tiefenbasierten Reihenfolge angepasst werden (um ein drittes angepasstes Filtergewicht zu erzeugen), usw.
  • Es sollte beachtet werden, dass eine solche Anpassung auf irgendeinem gewünschten Algorithmus basiert werden kann, der die tiefenbasierte Anordnung der Samples berücksichtigt. Beispielsweise kann ein scharfes Sample in Isolation mit einem Filtergewicht, das einen schmalen Bereich darstellt, assoziiert werden, aber wenn weitere unscharfe Sample vor dem scharfen Sample sind, kann das Filtergewicht erhöht werden, so dass dieser Bereich vergrößert wird. Als ein anderes Beispiel kann ein unscharfes Hintergrund-Sample mit einem Filtergewicht assoziiert werden, das einen großen Bereich darstellt, aber wenn weitere scharfe Sample vor dem unscharfen Sample sind, kann das Filtergewicht verringert werden, so dass dieser Bereich verringert wird.
  • Sobald festgestellt wird, dass es kein anderes Sample in der tiefenbasierten Reihenfolge gibt, wird ein finales Filtergewicht angewendet, um eine Mehrzahl von anwendbaren benachbarten Samples zu bestimmen. Beachte Operation 310. In dem Kontext der vorliegenden Ausführungsform kann das endgültige Filtergewicht das Filtergewicht, das mit dem gewünschten Pegel an Unschärfe assoziiert ist, aufweisen, wie oben beschrieben wurde. Somit kann beispielsweise, wenn der gewünschte Pegel an Unschärfe größer als Null ist (das heißt manche Unschärfe erwünscht ist), das Filtergewicht größer als ein vorgegebenes Filtergewicht sein, das andernfalls verwendet wird, um einen Wert eines Pixels ohne Rauschen zu identifizieren (das heißt für welches Unschärfe nicht angewendet wird).
  • Wie oben erwähnt, kann jedes Filtergewicht einen Bereich anzeigen, der das assoziierte Sample umgibt. Somit kann das endgültige Filtergewicht verwendet werden, um einen Bereich zu bestimmen, der das verrauschte Pixel umgibt. Es kann dann bestimmt werden, welches der Samples in der tiefenbasierten Reihenfolge in dem Bereich enthalten sind, und die Samples, die bestimmt sind, in dem Bereich zu sein, können als die anwendbaren benachbarten Samples identifiziert werden. Zu diesem Zweck können benachbarte Samples, die auf das verrauschte Pixel anwendbar sind, basierend auf dem endgültigen Filtergewicht, das mit dem gewünschten Pegel an Unschärfe für das verrauschte Pixel assoziiert ist, identifiziert werden.
  • Nach wie vor sind Werte der anwendbaren benachbarten Samples gemittelt. Beachte Operation 312. Solche Werte können die Farbwerte der anwendbaren benachbarten Samples in der vorliegenden Ausführungsform aufweisen. Das Ergebnis der Durchschnittsberechnung kann ein Wert für das verrauschte Pixel sein. Beispielsweise kann ein solcher Wert verwendet werden, um das verrauschte Pixel zu rekonstruieren. Natürlich sollte beachtet werden, dass irgendein anderer Algorithmus als eine Durchschnittsberechnung auf die Werte angewendet werden kann, um einen Wert für das verrauschte Pixel zu erzeugen.
  • Tabelle 1 zeigt ein Beispiel eines Algorithmus, der fähig ist, verwendet zu werden, um das Verfahren 300 von 3 zu implementieren. Natürlich sollte beachtet werden, dass der Algorithmus, gezeigt in Tabelle 1, nur zu beschreibenden Zwecken dargelegt wird und somit nicht als irgendeiner Weise beschränkend aufgefasst werden sollte.
  • Tabelle 1
    Figure 00160001
  • In dem Algorithmus gezeigt in Tabelle 1 ist D die Breite des Filtergewichts, die einen großen Bereich darstellt (das heißt ein breiter Filter), und Filtergewicht, das einen kleineren Bereich darstellt (das heißt der schmale Filter), ist der vorgegebene Filter, der für nicht-unscharfe Pixel verwendet wird. Wenn alle Samples dasselbe Filtergewicht haben, verhält sich der Algorithmus wie gewünscht und entweder ein schmaler oder ein breiter Unschärfedurchmesser wird für alle Samples verwendet. Wenn es unscharfe Samples vor scharfen Samples gibt, wird ein Filter mit einem breiteren Gewicht für die scharfen Samples wie gewünscht verwendet. Wenn manche der zentralen Pixel scharf sind (fn verwenden), dann wird der Beitrag von unscharfen Hintergrundpixeln gemindert. Als eine Option können die „if”-Anweisungen in dem Algorithmus gemischt werden (zum Beispiel in dem Sinn von MIPmaps) oder Anweisungen für zusätzliche Zwischenskalierungen (das heißt Filtergewichte) können hinzugefügt werden, um einen visuellen Bruch in Objekten zu verhindern, die in und aus dem Fokus herausgehen.
  • Tabelle 2 stellt einen Sweeping-Algorithmus dar, der verwendet werden kann, der zwischen zwei Skalierungen vermischt: 1 × 1 und 5 × 5 Blöcke. In Tabelle 2 ist N die Anzahl von Samples in der breitesten Kachel und ns ist die Anzahl von Samples in einem Pixel. Als eine Standardeinstellung ist entrauschende Unschärfe das Maximum des Kreises von Konfusionsdurchmesser und, wenn Bewegungsunschärfe geglättet werden soll, die Länge des projizierten Bewegungsvektors in Pixeln.
  • Tabelle 2
    Figure 00180001
  • Tabelle 3 stellt einen Sweeping-Algorithimus dar, der verwendet werden kann, wenn die Blockgrößen 1 × 1 und 7 × 7 sind, und wenn es einen sichtbaren Sprung zwischen den Skalierungen gibt. Wie gezeigt, werden die Zwischenskalierungen 3 × 3 und 5 × 5 als eine Verbesserung bereitgestellt.
  • Tabelle 3
    Figure 00190001
  • 4 stellt ein beispielhaftes System 400 dar, in dem die unterschiedliche Architektur und/oder Funktionalität der verschiedenen vorherigen Ausführungsformen implementiert werden kann. Wie gezeigt, wird ein System 400 bereitgestellt, das zumindest einen Host-Prozessor 401 aufweist, der mit einem Kommunikationsbus 402 verbunden ist. Das System 400 weist auch einen Hauptspeicher 404 auf. Kontrolllogik (Software) und Daten werden in dem Hauptspeicher 404 gespeichert, der die Form eines Zufallszugriffsspeicher (RAM) annehmen kann.
  • Das System 400 weist auch einen Graphikprozessor 406 und ein Display 408, das heißt einen Computermonitor, auf. In einer Ausführungsform kann der Graphikprozessor 406 eine Mehrzahl von Schattierermodulen, ein Rasterisierungsmodul, etc. aufweisen. Jedes der vorhergehenden Module kann auch auf einer einzelnen Halbleiterplattform gelegen sein, um eine Graphikverarbeitungseinheit (GPU) zu bilden.
  • In der vorliegenden Beschreibung kann eine einzelne Halbleiterplattform sich auf eine einzelne einheitliche halbleiterbasierte integrierte Schaltung oder Chip beziehen. Es sollte beachtet werden, dass der Begriff einzelne Halbleiterplattform sich auch auf Mehrchipmodule mit erhöhter Konnektivität beziehen kann, die On-Chip-Operation simulieren, und wesentliche Verbesserungen über das Verwenden einer herkömmlichen zentralen Verarbeitungseinheit (CPU) und einer Busimplementierung bereitstellen können. Natürlich können die verschiedenen Module auch separat oder in verschiedenen Kombinationen der Halbleiterplattformen je nach den Wünschen des Benutzers gelegen sein.
  • Das System 400 kann auch einen Sekundärspeicher 410 aufweisen. Der Sekundärspeicher 410 weist beispielsweise ein Festplattenlaufwerk und/oder ein entfernbares Speicherlaufwerk auf, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Kompaktdiskettenlaufwerk, etc. darstellt. Das entfernbare Speicherlaufwerk liest von einer entfernbaren Speichereinheit und/oder schreibt auf eine entfernbare Speichereinheit in einer bekannten Weise.
  • Computerprogramme oder Computersteuerlogikalgorithmen können in dem Hauptspeicher 404 und/oder dem Sekundärspeicher 410 gespeichert werden. Solche Computerprogramme ermöglichen es, wenn sie ausgeführt werden, dass das System 400 verschiedene Funktionen durchführt. Der Speicher 404, Speicher 410 und/oder irgendein anderer Speicher sind mögliche Beispiele von computerlesbaren Medien.
  • In einer Ausführungsform können die Architektur und/oder Funktionalität der verschiedenen vorherigen Figuren in dem Kontext des Host-Prozessors 401, des Graphik-Prozessors 406, einer integrierten Schaltung (nicht gezeigt), die zumindest von einem Teil der Fähigkeiten sowohl des Host-Prozessors 401 als auch des Graphik-Prozessors 406 fähig ist, einen Chipsatz (das heißt eine Gruppe von integrierten Schaltungen, die entworfen sind, um als eine Einheit zu arbeiten und verkauft zu werden, um zusammengehörige Funktionen durchzuführen, etc.), und/oder irgendeine andere integrierte Schaltung für diese Angelegenheit implementiert werden.
  • Immer noch können die Architektur und/oder Funktionalität der verschiedenen vorherigen Figuren in dem Kontext eines allgemeinen Computersystems, eines Leiterplattensystems, eines Spielkonsolensystems, das für Unterhaltungszwecke bestimmt ist, eines anwendungsspezifischen Systems und/oder irgendeines anderen gewünschten Systems implementiert werden. Beispielsweise kann das System 400 die Form eines Desktop-Computers, eines Laptop-Computers und/oder irgendeiner anderen Art von Logik annehmen. Immer noch kann das System 400 die Form von verschiedenen anderen Vorrichtungen annehmen, einschließlich aber nicht beschränkt auf eine persönliche digitale Assistenz(PDA)-Vorrichtung, eine Mobiltelefon-Vorrichtung, einen Fernseher, etc.
  • Des Weiteren, obwohl nicht gezeigt, kann das System 400 mit einem Netzwerk (zum Beispiel einem Telekommunikationsnetzwerk, einem lokalen Netzwerk (LAN), einem kabellosen Netzwerk, einem Weitverkehrsnetzwerk (WAN) wie dem Internet, einem Punkt-zu-Punkt-Netzwerk, einem Kabelnetzwerk, etc.) für Kommunikationszwecke gekoppelt werden.
  • Die folgenden Konzepte sind in der Beschreibung enthalten:
  • Konzept 1. Ein Computerprogrammprodukt, das auf einem nicht-flüchtigen computerlesbaren Medium verkörpert ist, aufweisend: Computercode zum Identifizieren jedes verrauschten Pixels eines Bildes, das Rauschen aufweist; Computercode zum Identifizieren, für jedes verrauschte Pixel, von zumindest einem Sample, das in jedem einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist; und Computercode zum Entlangstreichen über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen verringert.
  • Konzept 2. Das Computerprogrammprodukt von Konzept 1, wobei das Rauschen zumindest ein unerwünschtes Artefakt aufweist, so dass das verrauschte Pixel zumindest einen Teilbereich von dem zumindest einem unerwünschten Artefakt des Bildes aufweist.
  • Konzept 3. Das Computerprogrammprodukt von Konzept 1, wobei das Rauschen aus einer Schärfentiefe-Unschärfe, die in dem Bild enthalten ist, resultiert.
  • Konzept 4. Das Computerprogrammprodukt von Konzept 1, wobei das Rauschen aus einer Bewegungsunschärfe, die in dem Bild enthalten ist, resultiert.
  • Konzept 5. Das Computerprogrammprodukt von Konzept 1, wobei das Rauschen daraus resultiert, dass das Bild zumindest ein transparentes Objekt aufweist.
  • Konzept 6. Das Computerprogrammprodukt von Konzept 1, wobei die benachbarten Pixel Pixel innerhalb einer vorbestimmten Nähe zu dem verrauschten Pixel aufweisen.
  • Konzept 7. Das Computerprogrammprodukt von Konzept 1, wobei das Computerprogrammprodukt betreibbar ist, so dass das zumindest eine Sample unter Verwendung eines vorbestimmten Sampling-Algorithmus identifiziert wird.
  • Konzept 8. Das Computerprogrammprodukt von Konzept 1, wobei das zumindest eine Sample einen Punkt innerhalb des benachbarten Pixels aufweist.
  • Konzept 9. Das Computerprogrammprodukt von Konzept 1, wobei die tiefenbasierte Reihenfolge eine Vorne-nach-Hinten-Reihenfolge aufweist.
  • Konzept 10. Das Computerprogrammprodukt von Konzept 1, wobei das Computerprogrammprodukt betreibbar ist, so dass das Entlangstreichen über die Samples aufweist: Bestimmen eines Filtergewichts, das mit einem gewünschten Pegel von Unschärfe assoziiert ist; Bestimmen eines Bereichs, der das verrauschte Pixel umgibt, wobei das Filtergewicht verwendet wird; und Bestimmen, welche der Samples in dem Bereich enthalten sind; und Mitteln der Samples, die in dem Bereich enthalten sind, um den Wert für das verrauschte Pixel zu identifizieren.
  • Konzept 11. Das Computerprogrammprodukt von Konzept 10, wobei das Computerprogrammprodukt betreibbar ist, so dass das Filtergewicht, das mit dem gewünschten Pegel an Unschärfe assoziiert ist, bestimmt wird durch: Identifizieren eines Filtergewichts eines ersten der Samples in der tiefenbasierten Reihenfolge; für jedes nachfolgende Sample in der tiefenbasierten Reihenfolge, Anpassen des Filtergewichts basierend auf einem Filtergewicht von jedem nachfolgenden Sample; und Identifizieren des angepassten Filtergewichts als das Filtergewicht, das mit dem gewünschten Pegel an Unschärfe assoziiert ist.
  • Konzept 12. Das Computerprogrammprodukt von Konzept 10, wobei das Filtergewicht einen Bereich angibt, der das verrauschte Pixel umgibt.
  • Konzept 13. Das Computerprogrammprodukt von Konzept 10, wobei der Bereich einen von einem kreisförmigen Bereich und von einem rechteckigen Bereich aufweist.
  • Konzept 14. Das Computerprogrammprodukt von Konzept 13, wobei das Filtergewicht ein Wert eines Radius von dem verrauschten Pixel ist.
  • Konzept 15. Das Computerprogrammprodukt von Konzept 11, wobei das Filtergewicht von jedem der Samples eine direkte Funktion eines Pegels von Unschärfe des Samples ist.
  • Konzept 16. Das Computerprogrammprodukt von Konzept 11, wobei das Computerprogrammprodukt betreibbar ist, so dass, wenn der gewünschte Pegel an Unschärfe größer als Null ist, dann das Filtergewicht größer als ein vorgegebenes Filtergewicht ist, das verwendet wird, um einen Wert eines Pixels ohne Rauschen zu identifizieren.
  • Konzept 17. Das Computerprogrammprodukt von Konzept 1, wobei das Computerprogrammprodukt betreibbar ist, so dass das Entlangstreichen über die Samples das Gruppieren der Samples und das Entlangstreichen über die Behälter in der tiefenbasierten Reihenfolge aufweist.
  • Konzept 18. Das Computerprogrammprodukt von Konzept 1, weiterhin aufweisend das Rekonstruieren des verrauschten Pixels unter Verwendung des identifizierten Wertes.
  • Konzept 19. Das Computerprogrammprodukt von Konzept 1, wobei das Rauschen ein Ergebnis eines unscharfen Bereichs ist, der in dem Bild enthalten ist, und der identifizierte Wert für das verrauschte Pixel zusätzliche Unschärfe zu dem unscharfen Bereich bereitstellt.
  • Konzept 20. Ein Verfahren, aufweisend: Identifizieren von jedem verrauschten Pixel eines Bildes, das Rauschen aufweist; Identifizieren, für jedes verrauschte Pixel, von zumindest einem Sample, das in jeder einer Mehrzahl von benachbarten Pixel zu dem verrauschten Pixel enthalten ist; und Entlangstreichen über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen reduziert.
  • Konzept 21. Eine Vorrichtung, aufweisend: Einen Prozessor zum: Identifizieren von jedem verrauschten Pixel eines Bildes, das Rauschen aufweist; Identifizieren, für jedes verrauschte Pixel, von zumindest einem Sample, das in jeder einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist; und Entlangstreichen über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen reduziert.
  • Konzept 22. Die Vorrichtung von Konzept 21, wobei der Prozessor in Kommunikation mit einem Speicher und einem Display über einen Bus bleibt.
  • Obwohl oben verschiedene Ausführungsformen beschrieben wurden, sollte verstanden werden, dass sie nur als Beispiel dargestellt wurden und nicht als Beschränkung. Somit sollten die Breite und der Schutzumfang einer vorgezogenen Ausführungsform nicht durch irgendeines der oben beschriebenen beispielhaften Ausführungsformen beschränkt werden, sondern sollten nur in Übereinstimmung mit den folgenden Ansprüchen und ihren Äquivalenten definiert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 4897806 [0015]
    • US 6529193 [0015]

Claims (10)

  1. Ein Computerprogrammprodukt, das in einem nicht-flüchtigen computerlesbaren Medium verkörpert ist, aufweisend: Computercode zum Identifizieren von jedem verrauschten Pixel eines Bildes, das Rauschen aufweist; Computercode zum Identifizieren, für jedes verrauschte Pixel, von zumindest einem Sample, das in jeder einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist; und Computercode zum Entlangstreichen über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen reduziert.
  2. Das Computerprogrammprodukt gemäß Anspruch 1, wobei die tiefenbasierte Reihenfolge eine Vorne-nach-Hinten-Reihenfolge aufweist.
  3. Das Computerprogrammprodukt gemäß Anspruch 1, wobei das Computerprogrammprodukt betreibbar ist, so dass das Entlangstreichen über die Samples aufweist: Bestimmen eines Filtergewichts, das mit einem gewünschten Pegel an Unschärfe assoziiert ist; Bestimmen eines Bereichs, der das verrauschte Pixel umgibt, wobei das Filtergewicht verwendet wird; und Bestimmen, welches der Samples in dem Bereich enthalten ist; und Mitteln der Samples, die in dem Bereich enthalten sind, um den Wert für das verrauschte Pixel zu identifizieren.
  4. Das Computerprogrammprodukt gemäß Anspruch 3, wobei das Computerprogrammprodukt betreibbar ist, so dass das Filtergewicht, das mit dem gewünschten Pegel an Unschärfe assoziiert ist, bestimmt wird durch: Identifizieren eines Filtergewichts eines ersten der Samples in der tiefenbasierten Reihenfolge; für jedes nachfolgende Sample in der tiefenbasierten Reihenfolge Anpassen des Filtergewichts basierend auf einem Filtergewicht jedes nachfolgenden Samples; und Identifizieren des angepassten Filtergewichts als das Filtergewicht, das mit dem gewünschten Pegel an Unschärfe assoziiert ist.
  5. Das Computerprogrammprodukt gemäß Anspruch 3, wobei das Filtergewicht einen Bereich angibt, der das verrauschte Pixel umgibt.
  6. Das Computerprogrammprodukt gemäß Anspruch 4, wobei das Filtergewicht jedes der Samples eine direkte Funktion eines Pegels an Unschärfe des Samples ist.
  7. Das Computerprogrammprodukt gemäß Anspruch 1, wobei das Computerprogrammprodukt betreibbar ist, so dass das Entlangstreichen über die Samples das Gruppieren der Samples und das Entlangstreichen über Behälter in der tiefenbasierten Reihenfolge aufweist.
  8. Das Computerprogrammprodukt gemäß Anspruch 1, weiterhin aufweisend das Rekonstruieren des verrauschten Pixels unter Verwendung des identifizierten Wertes.
  9. Ein Verfahren, aufweisend: Identifizieren von jedem verrauschten Pixel eines Bildes, das Rauschen aufweist; Identifizieren, für jedes verrauschte Pixel, von zumindest einem Sample, das in jeder einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist; und Entlangstreichen über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen verringert.
  10. Eine Vorrichtung, aufweisend: einen Prozessor zum: Identifizieren jedes verrauschten Pixels eines Bildes, das Rauschen aufweist; Identifizieren, für jedes verrauschte Pixel, von zumindest einem Sample, das in jeder einer Mehrzahl von benachbarten Pixeln zu dem verrauschten Pixel enthalten ist; und Entlangstreichen über die Samples zumindest teilweise in einer tiefenbasierten Reihenfolge, um einen Wert für das verrauschte Pixel zu identifizieren, der das Rauschen reduziert.
DE102011087852A 2011-02-18 2011-12-06 System, Verfahren und Computerprogrammprodukt zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildabtastwerte Ceased DE102011087852A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/031,160 2011-02-18
US13/031,160 US8842931B2 (en) 2011-02-18 2011-02-18 System, method, and computer program product for reducing noise in an image using depth-based sweeping over image samples

Publications (1)

Publication Number Publication Date
DE102011087852A1 true DE102011087852A1 (de) 2012-08-23

Family

ID=45475544

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011087852A Ceased DE102011087852A1 (de) 2011-02-18 2011-12-06 System, Verfahren und Computerprogrammprodukt zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildabtastwerte

Country Status (3)

Country Link
US (1) US8842931B2 (de)
DE (1) DE102011087852A1 (de)
GB (1) GB2488191B (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8698836B2 (en) 2011-06-09 2014-04-15 Nvidia Corporation System, method, and computer program product for optimizing stratified sampling associated with stochastic transparency
US10027982B2 (en) * 2011-10-19 2018-07-17 Microsoft Technology Licensing, Llc Segmented-block coding
US9946658B2 (en) 2013-11-22 2018-04-17 Nvidia Corporation Memory interface design having controllable internal and external interfaces for bypassing defective memory
KR102550931B1 (ko) 2016-11-29 2023-07-04 삼성전자주식회사 스테레오 매칭 방법 및 장치
US10565685B2 (en) * 2017-03-30 2020-02-18 Disney Enterprises, Inc. Denoising binned-depth images
US10552970B2 (en) 2018-01-12 2020-02-04 Qualcomm Incorporated Efficient guide filter for depth refinement
US11195326B2 (en) * 2018-09-21 2021-12-07 Advanced Micro Devices, Inc. Method and system for depth pre-processing and geometry sorting using binning hardware

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897806A (en) 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
US6529193B1 (en) 1996-06-25 2003-03-04 Mental Images Gmbh & Co. Kg System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604856A (en) 1994-10-13 1997-02-18 Microsoft Corporation Motion compensated noise reduction method and system for computer generated images
US20090141026A1 (en) * 2000-06-19 2009-06-04 Matthias Raab Computer graphics with enumerating qmc sequences in voxels
US7432935B2 (en) * 2002-11-19 2008-10-07 Mental Images Gmbh Image synthesis methods and systems for generating sample points in a graphics scene
US7286138B2 (en) * 2001-05-08 2007-10-23 Microsoft Corporation Discontinuity edge overdraw
DE60227374D1 (de) * 2001-07-12 2008-08-14 Do Labs Verfahren und System zur Bereitstellung formatierter Informationen für Bildverarbeitungsvorrichtungen
US7120293B2 (en) * 2001-11-30 2006-10-10 Microsoft Corporation Interactive images
US6765588B2 (en) * 2002-01-08 2004-07-20 3Dlabs, Inc., Ltd. Multisample dithering with shuffle tables
US8896725B2 (en) * 2007-06-21 2014-11-25 Fotonation Limited Image capture device with contemporaneous reference image capture mechanism
US20050163345A1 (en) * 2003-12-03 2005-07-28 Safehouse International Limited Analysing image data
JP4517664B2 (ja) * 2004-02-12 2010-08-04 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
US7359576B1 (en) 2004-02-27 2008-04-15 Adobe Systems Incorporated Using difference kernels for image filtering
US7616798B2 (en) * 2004-09-29 2009-11-10 Siemens Medical Solutions Usa, Inc. Method for faster iterative reconstruction for converging collimation spect with depth dependent collimator response modeling
US7522755B2 (en) * 2005-03-01 2009-04-21 General Electric Company Systems, methods and apparatus for filtered back-projection reconstruction in digital tomosynthesis
JP2007089136A (ja) * 2005-08-23 2007-04-05 Ricoh Co Ltd 画像処理方法、画像処理プログラム、記録媒体及び複合装置
US7546026B2 (en) * 2005-10-25 2009-06-09 Zoran Corporation Camera exposure optimization techniques that take camera and scene motion into account
US7865005B2 (en) * 2006-02-03 2011-01-04 Koninklijke Philips Electronics N.V. Iterative reconstruction of multiple-peak isotope images
US7616254B2 (en) * 2006-03-16 2009-11-10 Sony Corporation Simple method for calculating camera defocus from an image scene
US20080008372A1 (en) * 2006-07-07 2008-01-10 General Electric Company A method and system for reducing artifacts in a tomosynthesis imaging system
JP4872862B2 (ja) * 2006-09-28 2012-02-08 ソニー株式会社 画像データ演算装置および方法、プログラム、並びに記録媒体
US7697836B2 (en) * 2006-10-25 2010-04-13 Zoran Corporation Control of artificial lighting of a scene to reduce effects of motion in the scene on an image being acquired
US20080108895A1 (en) * 2006-11-06 2008-05-08 General Electric Company Method and system for defining at least one acquisition and processing parameter in a tomosynthesis system
CA2686121C (en) 2007-04-16 2016-06-21 Sunfish Studio, Llc Single-pass and order-independent transparency in computer graphics using constant memory
JP5109803B2 (ja) * 2007-06-06 2012-12-26 ソニー株式会社 画像処理装置、画像処理方法及び画像処理プログラム
JP5021503B2 (ja) * 2008-01-15 2012-09-12 株式会社日立ハイテクノロジーズ パターン欠陥解析装置、パターン欠陥解析方法およびパターン欠陥解析プログラム
US8098904B2 (en) * 2008-03-31 2012-01-17 Google Inc. Automatic face detection and identity masking in images, and applications thereof
US8194995B2 (en) * 2008-09-30 2012-06-05 Sony Corporation Fast camera auto-focus
KR101526866B1 (ko) * 2009-01-21 2015-06-10 삼성전자주식회사 깊이 정보를 이용한 깊이 노이즈 필터링 방법 및 장치
US8774512B2 (en) 2009-02-11 2014-07-08 Thomson Licensing Filling holes in depth maps
TWI383332B (zh) * 2009-05-08 2013-01-21 Chunghwa Picture Tubes Ltd 影像處理裝置及其方法
US10198792B2 (en) 2009-10-14 2019-02-05 Dolby Laboratories Licensing Corporation Method and devices for depth map processing
US8340388B2 (en) * 2009-11-03 2012-12-25 Icad, Inc. Systems, computer-readable media, methods, and medical imaging apparatus for the automated detection of suspicious regions of interest in noise normalized X-ray medical imagery
US8264553B2 (en) * 2009-11-12 2012-09-11 Microsoft Corporation Hardware assisted image deblurring
TR200908688A2 (tr) 2009-11-17 2011-06-21 Vestel Elektron�K San. Ve T�C. A.�. Çoklu görüntülü videoda derinlik dengelemeli gürültü azaltımı.
US8659616B2 (en) 2010-02-18 2014-02-25 Nvidia Corporation System, method, and computer program product for rendering pixels with at least one semi-transparent surface
US9582931B2 (en) * 2010-02-26 2017-02-28 Chevron U.S.A. Inc. Surface smoothing within an earth model of a geological volume of interest
US8335390B2 (en) * 2010-03-22 2012-12-18 Sony Corporation Blur function modeling for depth of field rendering
US8432479B2 (en) * 2010-04-30 2013-04-30 Apple Inc. Range measurement using a zoom camera
US8170372B2 (en) * 2010-08-06 2012-05-01 Kennedy Michael B System and method to find the precise location of objects of interest in digital images
US8582820B2 (en) * 2010-09-24 2013-11-12 Apple Inc. Coded aperture camera with adaptive image processing
KR101868654B1 (ko) * 2011-01-22 2018-06-18 휴먼아이즈 테크놀로지즈 리미티드 렌티큘러 인쇄 및 디스플레이에서 흐림 아티팩트를 감소시키는 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897806A (en) 1985-06-19 1990-01-30 Pixar Pseudo-random point sampling techniques in computer graphics
US6529193B1 (en) 1996-06-25 2003-03-04 Mental Images Gmbh & Co. Kg System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points

Also Published As

Publication number Publication date
GB2488191B (en) 2015-09-23
US8842931B2 (en) 2014-09-23
GB2488191A (en) 2012-08-22
GB201120146D0 (en) 2012-01-04
US20120213450A1 (en) 2012-08-23

Similar Documents

Publication Publication Date Title
DE102011087852A1 (de) System, Verfahren und Computerprogrammprodukt zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildabtastwerte
DE112009004059B4 (de) Verfahren zum Entfernen von Unschärfe von einem Bild und Aufzeichnungsmedium, auf dem das Verfahren aufgezeichnet ist
DE69127516T2 (de) Verfahren und Gerät zur Bilderzeugung
Stewart et al. A new reconstruction filter for undersampled light fields
DE102018127647A1 (de) Systeme und verfahren zum trainieren neuronaler netzwerke auf regression ohne referenzdaten-trainingsmuster
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE102018113845A1 (de) Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE69716877T2 (de) System und Verfahren zur genauen Gradientberechnung für die Texturabbildung in einem Computergraphiksystem
DE102015107872A1 (de) Neu beleuchtbare Textur zur Verwendung beim Rendern eines Bildes
DE102011011641A1 (de) System, Verfahren und Computerprogrammprodukt zum Wiedergeben von Pixeln mit zumindest einer halbtransparenten Oberfläche
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102016103891A1 (de) Systeme und Verfahren zur weichen Schattierung in 3D-Rendering
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
US7623723B2 (en) Method for random point and patterned noise reduction in digital images
DE102014105146B4 (de) System, Verfahren und Computerprogrammprodukt zum Durchführen einer Pfad-Raum-Filterung
KR20200132682A (ko) 이미지 최적화 방법, 장치, 디바이스 및 저장 매체
DE102018128699A1 (de) Einstellen einer Winkelabtastrate während eines Renderings unter Verwendung von Blickinformationen
US9613405B2 (en) Scalable massive parallelization of overlapping patch aggregation
DE102004008979A1 (de) Verfahren zur Filterung tomographischer 3D-Darstellungen nach erfolgter Rekonstruktion von Volumendaten
DE19723063B4 (de) Verfahren zum Speichern von Texeldaten einer Textur in einem zusammenhängenden Speicherblock
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE60000450T2 (de) Graphisches system mit überabgetastetem musterpuffer mit erzeugung von ausgangspixeln unter benutzung von selektiver justierung der filterung zur implementierung von anzeigeeffekten
DE112021000108T5 (de) Entrauschungstechniken für rekurrente unschärfen bei raytracing-anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final