DE102021125897A1 - History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung - Google Patents

History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung Download PDF

Info

Publication number
DE102021125897A1
DE102021125897A1 DE102021125897.9A DE102021125897A DE102021125897A1 DE 102021125897 A1 DE102021125897 A1 DE 102021125897A1 DE 102021125897 A DE102021125897 A DE 102021125897A DE 102021125897 A1 DE102021125897 A1 DE 102021125897A1
Authority
DE
Germany
Prior art keywords
historical
pixel
frame
fast
spatial filtering
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
DE102021125897.9A
Other languages
English (en)
Inventor
Pawel Kozlowski
Tim Cheblokov
Alexey Panteleev
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 DE102021125897A1 publication Critical patent/DE102021125897A1/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/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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/10024Color image
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

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

Abstract

Die hier präsentierten Lösungsansätze können eine zeitliche Verzögerung reduzieren, die in eine erzeugte Bildsequenz eingebracht werden kann, die eine zeitliche Anhäufung zum Entrauschen in dynamischen Szenen verwendet. Ein schnelles historisches Einzelbild kann zusammen mit einem vollständigen historischen Einzelbild, das für einen Rauschunterdrückungsprozess erzeugt wird, erzeugt werden, wobei das schnelle historische Einzelbild unter Verwendung eines exponentiell gleitenden Durchschnitts mit einer erheblich höheren Mischgewichtung angehäuft wird. Dieses schnelle History-Einzelbild kann verwendet werden, um ein Blockierungsfenster zu bestimmen, das verwendet werden kann, um einen entsprechenden vollständigen historischen Wert vor oder nach der erneuten Projektion zu blockieren. Die schnelle historische Mischgewichtung kann angepasst werden, um den Betrag an Rauschen gegenüber der zeitlichen Verzögerung in einer Bildsequenz zu steuern. Bei einigen Ausführungsformen können auch Differenzen zwischen schnellen und vollständigen historischen Werten verwendet werden, um einen Betrag an anzuwendendem räumlichen Filtern zu bestimmen.

Description

  • HINTERGRUND
  • In dem Maße wie die Qualität von Anzeigevorrichtungen - und damit auch die Erwartungen der Benutzer - weiter zunimmt, besteht ein Bedarf daran, die Qualität der anzuzeigenden Inhalte ständig zu steigern. Dazu können Aufgaben, wie etwa das Unterdrücken von Rauschen und das Reduzieren von Artefakten in gerenderten Bildern, wie sie etwa Einzelbildern von Inhalten für Videospiele oder Animation entsprechen können, gehören. Gewisse herkömmliche Lösungsansätze verwenden Prozesse wie etwa zeitliche Anhäufung, um zu versuchen, diverse Effekte, wie etwa Schatten, Spiegelungen, Umgebungsokklusion und direkte Beleuchtung, für Raytracing-Anwendungen zu entrauschen. In manchen Situationen kann dies jedoch zu einer zeitlichen Verzögerung für dynamische Szenen führen, wodurch sich merkbare Geistereffekte ergeben können, da diese Anhäufung nicht in der Lage ist, Änderungen in dynamischen Szenen schnell und richtig zu berücksichtigen. Bestehende Lösungsansätze zur Handhabung der zeitlichen Verzögerung haben entweder die unerwünschten Effekte nicht angemessen reduzieren können oder haben unerwünschte zusätzliche Rechenanforderungen und Komplexität hinzugefügt.
  • Figurenliste
  • Diverse Ausführungsformen gemäß der vorliegenden Offenbarung werden mit Bezug auf die Zeichnungen beschrieben. Es zeigen:
    • 1A, 1B, 1C und 1D Bilder, die für eine dynamische Szene gerendert wurden, gemäß mindestens einer Ausführungsform;
    • 2 ein beispielhaftes Bilderzeugungssystem gemäß mindestens einer Ausführungsform;
    • 3A, 3B, 3C, 3D und 3E Phasen in einem beispielhaften Blockierungsprozess gemäß mindestens einer Ausführungsform;
    • 4 einen beispielhaften History-Blockierungsprozess gemäß mindestens einer Ausführungsform;
    • 5 ein beispielhaftes Bilderzeugungssystem, das eine blockierungsbewusste Weichzeichnungsfähigkeit umfasst, gemäß mindestens einer Ausführungsform;
    • 6 einen Prozess zum Anwenden einer blockierungsbewussten Weichzeichnung auf ein Bild gemäß mindestens einer Ausführungsform;
    • 7 ein beispielhaftes Datenzentrumsystem gemäß mindestens einer Ausführungsform;
    • 8 ein Computersystem gemäß mindestens einer Ausführungsform;
    • 9 ein Computersystem gemäß mindestens einer Ausführungsform;
    • 10 mindestens Teile eines Grafikprozessors gemäß einer oder mehrerer Ausführungsformen; und
    • 11 mindestens Teile eines Grafikprozessors, gemäß einer oder mehrerer Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Lösungsansätze gemäß diversen Ausführungsformen können Mängel bei bestehenden Lösungsansätzen zur Bilderzeugung beheben. Insbesondere können diverse Ausführungsformen ein verbessertes Entrauschen von Bildartefakten bereitstellen, wie etwa von Artefakten, die durch Raytracing oder andere Bilderzeugungs- oder Rendering-Techniken eingebracht werden können. Bei einem System zum Erzeugen von Bildern oder Videoeinzelbildern für eine dynamische Szene kann es diverse Artefakte geben, die sich aus Änderungen in der Szene ergeben. Es kann eine zeitliche Anhäufung verwendet werden, um zu versuchen, das Vorliegen mindestens einiger dieser Artefakte zu minimieren. Ein Lösungsansatz mit zeitlicher Anhäufung kann Informationen von zuvor erzeugten Einzelbildern in einer Sequenz bewahren, um zu versuchen, mindestens einen gewissen Betrag an zeitlicher Glättung bereitzustellen, wobei die Farben von Pixeln in einem aktuellen Einzelbild mit den Farben von früheren Einzelbildern gemischt werden, um zu versuchen, Geistereffekte und andere derartige Artefakte zu minimieren, und einen glatteren Farbübergang in der Szene bereitzustellen. Wenn die Farben von einem gerade gerenderten Einzelbild und von historischen Einzelbildern gemischt werden, kann es wünschenswert sein, ein geeignetes Gleichgewicht zu schaffen, wenn eine Mischgewichtung bestimmt wird. Falls die Farben des aktuellen Einzelbildes zu stark gewichtet werden, kann die Wirksamkeit der Glättung reduziert werden, was eine Zunahme der Artefakte ergibt. Umgekehrt kann es eine unerwünschte zeitliche Verzögerung geben, falls die historischen Farben zu stark gewichtet werden.
  • Man nehme zum Beispiel die Bilder in 1A bis 1D. Wie in dem Bild 100 aus 1A abgebildet, gibt es eine Lichtquelle 102 an einer Wand, die einem Fenster, einem beleuchteten Plakat, einem Spiegel oder einer anderen derartigen Lichtquelle entsprechen kann. Auf dem Boden in der Nähe ist eine Region 104 zu sehen, in der das emittierte oder reflektierte Licht heller ist, was eine hellere Färbung dieser Pixel ergibt, die sich aus der Lichtquelle ergibt. Bei einigen Ausführungsformen kann dies einer dynamischen Szene entsprechen, bei der sich die Positionen von Objekten in einer aktuellen Ansicht ändern können. Beispielsweise kann es in Bild 120 aus 1B eine Schwenkbewegung einer virtuellen Kamera oder eine andere derartige Bewegung gegeben haben, die bewirkte, dass sich eine Position der Lichtquelle 102 in dem Bild im Verhältnis zu dem früheren Einzelbild bewegte. Zahlreiche Rendering-Engines detektieren diese Bewegung oder stellen Informationen über diese Bewegung bereit, die sie etwa Bewegungsvektoren für diverse Objekte in der Szene betreffen. Diese Bewegungsinformationen geben jedoch eventuell keine anderen damit verbundenen Änderungen an, wie sie beispielsweise und ohne Einschränkung: Schatten, Beleuchtung, Spiegelungen oder Umgebungsokklusionen, die sich infolge dieser Bewegung ändern können, wie etwa auf Grund von Raytracing für ein oder mehrere sich bewegende Objekte in einer Szene, entsprechen können. Falls eine zeitliche Glättung angewendet wird, kann die Auswirkung der historischen Daten Änderungen an den Pixeln einer derartigen Region oder eines derartigen Objekts verursachen, wie etwa an der hellen Region 104, so dass sie sich nicht zusammen mit dem entsprechenden Objekt 102 bewegt. Wie in 1B abgebildet, kann es bei dieser hellen Region 104 in einem anfänglichen Einzelbild wenig oder gar keine Bewegung geben, wobei sich die Lichtquelle 102 nach rechts bewegt hat. Wie in Bild 140 aus 1C abgebildet, gibt es eine gewisse zeitliche Verzögerung, wenn die helle Region 104 der Bewegung der Lichtquelle 102 mit einer gewissen Verzögerung folgt, bis die helle Region an der geeigneten Stelle ankommt, wie in Bild 160 aus 1D abgebildet. Faktoren, wie etwa die Mischgewichtung und der Betrag an verwendeten historischen Daten, können sich auf das Ausmaß dieser Verzögerung auswirken, die manchmal recht deutlich ist und für einen Zuschauer ablenkend sein kann, oder einen wahrgenommenen Realismus der Szene zumindest reduzieren kann. Es ist mindestens bei einigen Systemen wünschenswert, die Vorteile der zeitlichen Glättung und Anhäufung zu bewahren, während eine Auswirkung der zeitlichen Verzögerung auf eine dynamische Szene reduziert wird.
  • Eine der üblichsten zeitlichen Anhäufungstechniken ist die zeitliche Kantenglättung (TAA). Eine Technik, die entwickelt wurde, um die TAA zu verbessern, besteht darin, History-Blockierung als eine Möglichkeit zu verwenden, mit dynamischen Ereignissen umzugehen. Herkömmliche Lösungsansätze der zeitlichen Anhäufung bedingen typischerweise die Verwendung von zwei Pufferspeichern. Ein erster Pufferspeicher ist ein History-Pufferspeicher, der eine erhebliche Anzahl von Einzelbildern, wie etwa 30, für eine gegebene Anwendung enthält, der jedoch bei anderen Anwendungen von ungefähr 10 bis 100 Einzelbilder oder mehr reichen kann. Diese Einzelbilder können im Verlauf der Zeit unter Verwendung eines exponentiell gleitenden Durchschnitts angehäuft werden. Ein zweiter Pufferspeicher ist ein aktueller Pufferspeicher, der Daten für ein aktuelles Einzelbild enthält, wie etwa ein neuestes Einzelbild, das von einer Rendering-Engine empfangen wurde. Bei einem herkömmlichen Lösungsansatz soll dieser History-Pufferspeicher (h) wieder auf die Kameraposition für das aktuelle Einzelbild (c) projiziert werden, und ist aus den Daten für das aktuelle Einzelbild unter Verwendung beispielsweise einer Mischgewichtung (w) eines exponentiell gleitenden Durchschnitts zusammengesetzt. Bei mindestens einer Umsetzung kann ein Pixelwert (p) für ein Ausgangseinzelbild gegeben sein durch: p = w*c + ( 1 w ) * h
    Figure DE102021125897A1_0001
    Um mit der zeitlichen Verzögerung umzugehen, wird der History-Wert typischerweise auf ein Min-/Max-Fenster einer Pixelumgebung (z. B. ein 3x3-Pixelfenster) aus dem aktuellen Einzelbild vor der zeitlichen Kantenglättung blockiert. Es können andere Metriken als Min/Max verwendet werden, die etwa das Berechnen eines Mittelwertes und einer Varianz einer Umgebung und das Blockieren des History-Wertes auf diese Verteilung bedingen können. Ein derartiger bestehender Lösungsansatz ist häufig für sehr verrauschte Signale oder dynamische Szenen nicht geeignet.
  • Ein anderer früherer Lösungsansatz, um zu versuchen, die zeitliche Verzögerung zu handhaben, ist A-SVGF, eine raumzeitliche, varianzgeführte Filtertechnik. Ein derartiger Prozess ist tatsächlich eine Filtertechnik, die als Eingabe ein verrauschtes Einzelbild annehmen und dieses zu einem vollständigen Bild mit reduziertem Rauschen rekonstruieren kann. A-SVGF kann in vielen Fällen erwünschte Ergebnisse erzeugen, doch die Zeit, die benötigt wird, um diese Ergebnisse zu erzeugen, kann für einen Raytracer, der in Echtzeit mit modernen Einzelbildfrequenzen, wie etwa mindestens 60 Einzelbildern pro Sekunde (fps), funktioniert, zu lang sein. A-SVGF verwendet zeitliche Gradienten, um die zeitliche Verzögerung zu minimieren, während die wegverfolgten Aufnahmen entrauscht werden, da diese Technik jedoch tief in den Renderer integriert sein muss, erhöht sie die Rendering-Kosten und Komplexität des Renderers. Einige Spiele verwenden die Geschwindigkeit des Okkluders, um die zeitliche Anhäufung von Schatten zu führen. Obwohl dies eine relativ einfache Lösung ist, gehen damit Einschränkungen und Grenzfälle einher, die schwer zu lösen sind. Falls sich beispielsweise sowohl der Okkluder als auch der Empfänger bewegen, wird das Führen der zeitlichen Anhäufung schwierig. Ferner ist beim Entrauschen von Raytracing-Effekten das aktuelle Einzelbildsignal typischerweise sehr verrauscht und ist nicht geeignet, um ein Umgebungsblockierungsfenster zu berechnen, da das Fenster letztendlich ebenfalls verrauscht ist.
  • Die Lösungsansätze gemäß den diversen Ausführungsformen verwenden einen reaktiven bzw. „schnellen“ History-Pufferspeicher zusammen mit einem herkömmlichen History-Pufferspeicher und einem aktuellen Einzelbildpufferspeicher. Ein schneller History-Pufferspeicher kann eine viel höhere Mischgewichtung verwenden als sie bei einem herkömmlichen oder „vollständigen“ History-Pufferspeicher verwendet wird, wie etwa um eine Größenordnung höher, so dass weniger historischer Einzelbilder zu der schnellen History beitragen. Diese schnelle History kann verwendet werden, um ein Blockierungsfenster für ein aktuelles Einzelbild zu bestimmen, um den normalen History-Wert vor oder nach der erneuten Projektion zu blockieren. Bei mindestens einer Ausführungsform kann eine Mischgewichtung für das schnelle History-Blockieren wie ein intuitiver Knopf verwendet werden, um ein geeignetes Gleichgewicht zwischen einem Betrag an Rauschen gegenüber einem Betrag an zeitlicher Verzögerung in einer Szene zu bestimmen. Bei mindestens einer Ausführungsform wird eine vollständige History bewahrt, um eine genauere zeitliche Glättung bereitzustellen, wenn keine Bedingungen vorliegen, die bewirken, dass eine Blockierung angewendet wird.
  • 2 bildet die Komponenten eines beispielhaften Bilderzeugungssystems 200 ab, das gemäß diversen Ausführungsformen verwendet werden kann. Bei mindestens einer Ausführungsform können Inhalte, wie etwa Videospielinhalte oder Animation, unter Verwendung eines Renderers 202, einer Rendering-Engine oder eines anderen derartigen Systems oder einer Komponente zum Erzeugen von Inhalten erzeugt werden. Dieser Renderer 202 kann eine Eingabe für ein oder mehrere Einzelbilder einer Sequenz empfangen, und kann Bilder oder Einzelbilder von Videomaterial unter Verwendung von gespeicherten Inhalten 204, die mindestens teilweise auf dieser Eingabe basierend geändert wurden, erzeugen. Bei mindestens einer Ausführungsform kann dieser Renderer 202 Teil einer Rendering-Pipeline sein, die Funktionen, wie etwa aufgeschobene Schattierung, globale Beleuchtung, beleuchtete Transluzenz, Nachbearbeitung und Grafikprozessor- (GPU) Partikelsimulation unter Verwendung von Vektorfeldern, bereitstellen kann.
  • Bei einigen Ausführungsformen kann es der Verarbeitungsaufwand, der nötig ist, um derart komplexe, hochauflösende Bilder zu erzeugen, schwierig machen, diese Videoeinzelbilder zu rendern, so dass sie aktuelle Einzelbildfrequenzen, wie etwa mindestens sechzig Einzelbilder pro Sekunde (fps) erfüllen. Bei mindestens einer Ausführungsform kann ein Renderer 202 verwendet werden, um ein gerendertes Bild mit einer Auflösung zu erzeugen, die niedriger als eine oder mehrere endgültige Ausgangsauflösungen ist, um die Zeiteinstellungsanforderungen zu erfüllen und die Anforderungen an Verarbeitungsressourcen zu reduzieren. Ein Renderer kann stattdessen ein aktuelles Bild rendern (oder ein aktuelles Bild kann anderweitig erzielt werden), das die gleiche Auflösung wie ein Zielausgangsbild aufweist, so dass keine Hochskalierungs- oder Superauflösungsprozedur benötigt oder verwendet wird. Bei mindestens einer Ausführungsform, falls ein aktuelles gerendertes Bild eine niedrigere Auflösung aufweist, dann kann dieses mit niedriger Auflösung gerenderte Bild unter Verwendung eines (optionalen) Hochskalierers 206 verarbeitet werden, um ein hochskaliertes Bild zu erzeugen, das Inhalte des mit niedriger Auflösung gerenderten Bildes mit einer Auflösung darstellt, die gleich einer Zielausgangsauflösung (oder dieser mindestens ähnlicher) ist.
  • Dieses aktuelle gerenderte Bild, ob hochskaliert oder nicht, kann als Eingabe in ein Bildrekonstruktionsmodul 208 bereitgestellt werden, das ein hochauflösendes, kantengeglättetes Ausgangsbild unter Verwendung des aktuellen Bildes und von Daten für ein oder mehrere zuvor erzeugte Bilder, wie sie mindestens zeitweilig in einem vollständigen History-Pufferspeicher 216 oder an einer anderen derartigen Stelle gespeichert sein können, erzeugen kann. Das zuvor erzeugte Bild kann bei einigen Ausführungsformen ein einziges historisches Bild sein, wobei Pixel- (z. B. Farb-) Werte über eine Anzahl von früheren Einzelbildern unter Verwendung beispielsweise eines exponentiell gleitenden Durchschnitts angehäuft werden. Bei mindestens einer Ausführungsform kann dieses Bildrekonstruktionsmodul 208 eine Mischkomponente 210 umfassen, die etwa ein oder mehrere neuronale Netze umfassen kann. Bei mindestens einer Ausführungsform kann dazu mindestens ein erstes optisches Flussnetzwerk (OFN) zum Erzeugen von Bewegungsvektoren oder anderen Informationen, die eine Bewegung zwischen angrenzenden Einzelbildern in einer Sequenz angeben, gehören. Bei mindestens einer Ausführungsform kann dazu ein extern wiederkehrendes, vorbildrekonstruierendes, nicht überwachtes, optisches Flussnetzwerk gehören. Bei mindestens einer Ausführungsform kann dazu auch mindestens ein erstes Bildrekonstruktionsnetzwerk (RN) gehören, um diese Bewegungsvektoren zu verwenden, um Positionen in einem aktuellen Bild und einem vorherigen (historischen) Bild zu korrelieren und aus einem Mischen dieser Bilder ein Ausgangsbild abzuleiten. Bei mindestens einer Ausführungsform kann dieses Mischen eines aktuellen Bildes mit einem historischen Einzelbild bei der zeitlichen Konvergenz auf ein schönes, scharfes, hochauflösendes Ausgangsbild helfen, das dann zur Präsentation über ein Display 212 oder einen anderen derartigen Präsentationsmechanismus bereitgestellt werden kann. Bei mindestens einer Ausführungsform kann eine Kopie dieses Ausgangsbildes auch einem History-Manager 214 bereitgestellt werden, der bewirken kann, dass Pixelwerte mit Werten von früheren historischen Einzelbildern unter Verwendung eines Anhäufungsfaktors angehäuft werden, damit diese angehäuften historischen Daten durch ein einziges Einzelbild dargestellt werden können, um Speicher zu sparen und Verarbeitungsanforderungen zu reduzieren. Bei mindestens einer Ausführungsform kann ein Gewichtungsfaktor bewirken, dass Pixelwerte von älteren Einzelbildern weniger zu einem angehäuften Pixelwert beitragen. Dieses historische Einzelbild kann dann in einem vollständigen History-Pufferspeicher 216 oder an einer anderen derartigen Speicherstelle zum Mischen mit einem anschließend erzeugten Bild in dieser Sequenz gespeichert werden.
  • Wie erwähnt verwendet die zeitliche Rekonstruktion in Echtzeit eines Bildes Informationen aus einem oder mehreren früheren Einzelbildern nach einer gewissen Verzerrung, um ein Bild auszurichten, das für ein aktuelles Einzelbild erzeugt wird. Bei mindestens einer Ausführungsform wird diese Verzerrung mindestens teilweise verwendet, weil die Bildrekonstruktion vereinfacht ist, wenn die Pixelinformationen in diesen Bildern ausgerichtet sind. Bei mindestens einer Ausführungsform verwendet die richtige Bildverzerrung jedoch nicht nur Informationen von einem früheren Einzelbild sondern auch zusätzliche Informationen darüber, wie sich die Objekte zwischen diesen Einzelbildern bewegen. Bei mindestens einer Ausführungsform können dazu Computervisions- oder optische Flussdaten gehören, die durch eine Menge von Bewegungsvektoren dargestellt werden können. Bei mindestens einer Ausführungsform können dazu Bewegungsvektoren für jede Pixelstelle oder mindestens Pixelstellen, für die es eine Bewegung gibt, gehören. Diese Bewegungsinformationen können helfen, die Bildinformationen besser zu verzerren und die entsprechenden Pixel oder Objekte auszurichten. Bewegungsvektorinformationen können von einer Rendering-Engine für ein Spiel oder eine Anwendung bereitgestellt werden, doch wie erwähnt kann es sein, dass sie entsprechende Änderungen für Aspekte wie etwa Spiegelungen oder Beleuchtung, die sich aus einem Raytracing-Prozess ergeben können, nicht berücksichtigen. Dieses Mischen kann dann eine zeitliche Verzögerung ergeben, wie zuvor besprochen. Diverse frühere Lösungsansätze können das Blockieren anwenden, um zu versuchen, die zeitliche Verzögerung zu reduzieren, bergen jedoch diverse Mängel, die zuvor vorgestellt wurden.
  • Entsprechend kann bei mindestens einer Ausführungsform der History-Manager 214 auch ein reaktives bzw. „schnelles“ historisches Einzelbild erzeugen, das in einem schnellen History-Pufferspeicher 218 gespeichert werden kann. Dieses schnelle Einzelbild kann unter Verwendung einer anderen Anhäufungsgewichtung erzeugt werden, die manchmal um etwa eine Größenordnung größer sein kann als eine Anhäufungsgewichtung, die verwendet wird, um ein vollständiges historisches Bild zu erzeugen. Bei einem Beispiel beträgt eine Anhäufungsgewichtung für ein schnelles historisches Einzelbild ungefähr 0,5, während eine Anhäufungsgewichtung für ein vollständiges historisches Einzelbild ungefähr 0,05 beträgt. Bei mindestens einer Ausführungsform kann sich daraus ein schnelles historisches Einzelbild ergeben, das Daten umfasst, die über zwei bis vier neueste Einzelbilder angehäuft wurden, während ein vollständiges historisches Einzelbild Daten umfassen kann, die über zwanzig bis hundert neueste Einzelbilder angehäuft wurden. Diese Gewichtungen können mit der Zeit erlernt oder von einem Benutzer eingestellt werden, und können über eine oder mehrere Schnittstellen konfigurierbar sein, unter anderen derartigen Optionen.
  • Bei mindestens einer Ausführungsform kann dieses schnelle History-Einzelbild aus dem schnellen History-Pufferspeicher 218 entnommen werden, wenn das Bildrekonstruktionsmodul 208 ein nächstes Ausgangseinzelbild in der Sequenz erzeugen soll. Wie erwähnt kann es wünschenswert sein, ein neu gerendertes aktuelles Einzelbild mit einem vollständigen historischen Einzelbild zu mischen, um mindestens eine gewisse zeitliche Glättung des Bildes bereitzustellen, um das Vorliegen von Artefakten bei der Anzeige zu reduzieren. Anstelle eines Blockierens basierend auf dem vollständigen historischen Einzelbild kann die Blockierungsbestimmung jedoch unter Verwendung des schnellen historischen Einzelbildes erfolgen, das historische Daten umfasst, die über nur eine geringe Anzahl von vorhergehenden Einzelbildern angehäuft wurden, wie etwa über die zwei bis vier früheren Einzelbilder in einer Sequenz. Ein Blockierungsmodul 220 kann eine Anzahl von Pixeln in einer Region um eine zu analysierende Pixelstelle herum analysieren, wie etwa die Pixel in einer 3x3-Pixelumgebung des schnellen historischen Bildes. Es können Umgebungen, die größer als 3x3 sind, verwendet werden, diese können jedoch zusätzliche systematische räumliche Fehler für mindestens einige dynamische Szenen einbringen. Das Mischmodul kann dann eine Verteilung von erwarteten Pixel- (z. B. Farb-) Werten für dieses Pixel bestimmen. Diese erwartete Verteilung kann dann mit einem Wert für ein entsprechendes Pixel in dem vollständigen historischen Bild verglichen werden. Falls der vollständige historische Pixelwert außerhalb der Verteilung von erwarteten Werten liegt, dann kann der Pixelwert beispielsweise auf den nächstgelegenen Wert zu dem historischen Pixelwert „blockiert“ werden, der innerhalb der Verteilung von erwarteten Werten liegt. Statt den aktuellen Wert zu blockieren, was zu Geistereffekten, Rauschen oder anderen Artefakten führen kann, kann dieser Lösungsansatz einen Zwischenwert blockieren, der unter Verwendung des schnellen historischen Einzelbildes bestimmt wird. Das Mischmodul kann dann die blockierten oder sonstigen Werte aus dem vollständigen historischen Einzelbild nehmen und entsprechend mit Pixeln des aktuellen Einzelbildes mischen, wie hier besprochen. Dieses neue Bild kann dann von dem History-Manager 214 verarbeitet werden, um aktualisierte historische Bilder zu erzeugen, die in den historischen Zwischenspeichern 216, 218 zum Rekonstruieren eines nachfolgenden Bildes zu speichern sind.
  • Ein derartiger Blockierungsprozess ist mit Bezug auf 3A bis 3E besser zu verstehen. Wie besprochen kann eine Blockierungsanalyse unter Verwendung eines schnellen historischen Einzelbildes erfolgen. Dieses historische Einzelbild wird durch Anhäufen historischer Informationen für die einzelnen Pixel unter Verwendung eines identifizierten Anhäufungsfaktors oder einer Mischgewichtung erzeugt. Wie erwähnt, während ein Anhäufungsfaktor für ein vollständiges historisches Einzelbild gleich etwa ungefähr 0,05 sein kann, kann ein Anhäufungsfaktor für ein schnelles Einzelbild viel größer sein, wie etwa in der Größenordnung von 0,5, so dass Beiträge von älteren Einzelbildern viel schneller minimiert werden. Es wird ein minimaler zusätzlicher Aufwand benötigt, um eine schnelle History in einem System anzuhäufen und erneut zu projizieren, das bereits vollständige bzw. „lange“ historische Informationen anhäuft. Bei diesem Beispiel wird die Mischgewichtung mit einem exponentiell gleitenden Durchschnitt von vergangenen Einzelbilddaten verwendet, um zu vermeiden, dass Daten für jedes dieser vergangenen Einzelbilder im Speicher abgelegt werden. Daten, die in der History angehäuft wurden, werden mit (1-Gewichtung) multipliziert und dann mit den Daten in dem aktuellen Einzelbild kombiniert, die mit der Mischgewichtung multipliziert werden können. Somit kann ein einziges historisches Einzelbild in jedem Zwischenspeicher abgelegt werden, wobei Beiträge von älteren Einzelbildern gemäß dem wiederkehrenden Anhäufungsansatz verringert werden. Bei mindestens einer Ausführungsform kann diese Anhäufungsgewichtung basierend auf einem beliebigen von einer Anzahl von Faktoren, wie etwa auf einer bereitzustellenden aktuellen Einzelbildfrequenz, einer Gesamtvarianz oder einem Betrag an Rauschen in erzeugten Einzelbildern, automatisch angepasst werden.
  • Wenn eine Blockierungsanalyse erfolgen soll, können Daten für Punkte in einer umliegenden Umgebung (z. B. einer 3x3-Umgebung) für jede Pixelstelle in einem schnellen historischen Einzelbild bestimmt werden. Diese Pixelwerte kann man sich jeweils als Farbpunkte in einem dreidimensionalen Farbraum vorstellen, wie durch die Punkte 302 in dem Diagramm 300 aus 3A abgebildet. Obwohl der Rot-Grün-Blau- (RGB) Farbraum bei diversen Ausführungsformen verwendet werden kann, kann es andere Farbräume (z. B. YIQ, CMYK (Cyan, Magenta, Gelb und Schwarz), YCoCg oder HSL (Farbton, Sättigung, Helligkeitswert)) mit anderen Anzahlen von Dimensionen geben, die bei anderen Ausführungsformen verwendet werden. Wie in 3A abgebildet, befinden sich diese Punkte aus der Umgebung in einer Farbraumregion. Wenn Pixelwerte für ein historisches Einzelbild bestimmt werden, die basierend auf diesen Punkten angemessen zu erwarten sind, können diverse Lösungsansätze verwendet werden, um diese erwarteten Werte zu bestimmen. Der erwartete Wert kann sich an oder in einem Volumen, das durch diese Punkte definiert ist, oder in einem angemessenen Abstand außerhalb dieses Volumens befinden, was konfigurierbar sein kann, und kann mindestens teilweise von dem übernommenen Lösungsansatz abhängen. Bei einem beispielhaften Lösungsansatz aus 3B zeigt das Diagramm 320 eine Erwartungsregion 322, welche diese Punkte umgibt. Jeder bzw. jedes von einer Anzahl von Projektions- oder Erwartungsalgorithmen oder Netzwerken kann verwendet werden, um eine Größe und Form dieser Erwartungsregion zu bestimmen oder abzuleiten. Bei einer Ausführungsform kann ein konvexer hüllenbasierter Lösungsansatz verwendet werden. 3C bildet einen anderen beispielhaften Lösungsansatz an, wobei ein Rahmen 342 für diese Punkte im Farbraum bestimmt werden kann, wie in dem Diagramm 340 abgebildet. Der Rahmen kann unter Verwendung einer Anzahl von verschiedenen Begrenzungsalgorithmen bestimmt werden, die verschiedene Beträge von Pufferspeicherung um diese Punkte herum in jeder Richtung umfassen können. Bei mindestens einer Ausführungsform kann diese Erwartungsregion unter Verwendung eines Mittelwertes und einer Varianzverteilung bestimmt werden. Diverse andere Regionen, Kästchen, Bereiche oder Bestimmungen können ebenfalls im Umfang der diversen Ausführungsformen verwendet werden.
  • Sobald dieser Erwartungsbereich bzw. diese Erwartungsregion aus dem schnellen historischen Einzelbild bestimmt wurde, kann das entsprechende Pixel aus dem vollständigen historischen Einzelbild identifiziert werden. Das Diagramm 360 aus 3D bildet einen historischen Pixelwert 362 im Farbraum mit Bezug auf die Erwartungsregion ab. Das historische Pixel kann mit dieser Erwartungsregion verglichen werden, um zu bestimmen, ob das Pixel innerhalb oder außerhalb der Erwartungsregion fällt. Falls der Pixelwert innerhalb der erwarteten Region liegt, dann kann der entsprechende vollständige historische Pixelwert verwendet werden und es wird keine Blockierung angewendet. Es kann jedoch sein, dass der historische Punkt 362 außerhalb der Region liegt, wie in 3D abgebildet. In diesem Fall kann die Blockierung auf den historischen Wert angewendet werden. Das Diagramm 380 aus 3E bildet ab, dass der Pixelwert „blockiert“ bzw. angepasst werden kann, so dass er innerhalb des erwarteten Bereichs fällt. Bei diesem Beispiel ist der blockierte Wert 382, der für das vollständige historische Einzelbild zu verwenden ist, der „blockierte“ Wert innerhalb des Erwartungsbereichs, der im Farbraum dem schnellen historischen Pixelwert am nächsten ist. Bei einer Ausführungsform kann dies ein Blockieren bedingen, indem eine Min/Max-Analyse entlang jeder Dimension des Farbraums angewendet wird, um den neuen blockierten Wert zu bestimmen.
  • 4 bildet einen beispielhaften Prozess 400 zum Ausführen des Blockierens von historischen Daten ab, der gemäß diversen Ausführungsformen ausgeführt werden kann. Es versteht sich, dass für diesen und andere hier vorgestellte Prozesses zusätzliche, weniger oder alternative Schritte in einer ähnlichen oder alternativen Reihenfolge oder mindestens teilweise parallel im Umfang von diversen Ausführungsformen ausgeführt werden können, soweit nicht spezifisch anderweitig angegeben. Bei diesem Beispiel wird ein aktuelles Einzelbild von einer Rendering-Engine empfangen 402 oder anderweitig erzielt. Es kann sich um ein aktuelles Einzelbild oder ein Bild in einer Reihe von Einzelbildern oder Bildern handeln, wie sie für Animation, Gaming, virtuelle Realität (VR), erweiterte Realität (AR), Videomaterial oder andere derartige Inhalte erzeugt werden können. Das aktuelle Einzelbild kann mit einem entsprechenden schnellen History-Einzelbild unter Verwendung geeigneter Mischfaktoren gemischt 404 werden. Pixelwerte aus entsprechenden Pixelumgebungen können für einzelne Pixel dieses schnellen History-Einzelbildes bestimmt 406 werden. Ein Bereich von erwarteten Pixelwerten kann dann als Funktion dieser Umgebungswerte bestimmt 408 werden. Ein entsprechender Pixelwert aus einem vollständigen historischen Einzelbild kann gegenüber diesem erwarteten Bereich bestimmt und verglichen 410 werden. Falls bestimmt 412 wird, dass der schnelle historische Wert innerhalb des erwarteten Bereichs liegt, dann kann der tatsächliche historische Wert aus dem vollständigen History-Einzelbild für diese Pixelstelle verwendet werden. Falls der schnelle historische Wert außerhalb dieses Bereichs liegt, dann kann eine Bestimmung erfolgen, den vollständigen History-Wert auf den nächstgelegenen Wert innerhalb dieses erwarteten Bereichs zu blockieren 416, wie etwa unter Verwendung eines Min/Max- oder projektionsbasierten Lösungsansatzes, wie hier besprochen. Sobald eine derartige Bestimmung für alle relevanten Pixel erfolgt ist, können die Werte des aktuellen Einzelbildes mit den blockierten oder tatsächlichen Werten der entsprechenden Pixel des historischen Einzelbildes gemischt 418 werden. Sobald es fertiggestellt ist, kann dieses rekonstruierte Bild zur Präsentation bereitgestellt 420 werden, wie etwa über ein Display als Teil eines Gaming-Erlebnisses. Ferner können aktualisierte schnelle und vollständige historische Einzelbilder unter Verwendung von zeitlicher Anhäufung mit diesem neu rekonstruierten Bild erzeugt 422 werden, und diese historischen Einzelbilder können unter Verwendung jeweiliger Pufferspeicher zur Verwendung beim Rekonstruieren eines nächsten Bildes oder Einzelbildes in dieser Sequenz gespeichert werden.
  • Bei mindestens einer Ausführungsform kann ein alternativer Prozess ausgeführt werden, bei dem das Mischen früher in dem Prozess erfolgen kann, wie etwa in Schritt 404 anstelle von Schritt 418. Bei einer derartigen Ausführungsform kann der Wert für ein vollständiges historisches Einzelbild blockiert werden, das bereits den aktuellen Einzelbildwert enthält. Obwohl beide Lösungsansätze annehmbare Ergebnisse erbringen können, kann in gewissen Situationen ein Lösungsansatz einfacher umzusetzen sein.
  • Um das Aussehen der erzeugten Bilder weiter zu verbessern, kann ein gewisser Betrag an Weichzeichnung (z. B. gaußscher Weichzeichnung) oder ein anderes räumliches Filtern auf dynamische Szenen angewendet werden. Diese Weichzeichnung kann helfen, Bilder in einer Sequenz zu glätten, um eine natürlichere Bewegung bereitzustellen, und kann auch helfen, das Vorliegen von räumlichen Abtastfehlern und Artefakten, wie etwa Rauschen oder Flimmern, zu reduzieren. Es kann schwierig sein, den geeigneten Betrag an Weichzeichnung zu bestimmen, der auf ein Bild anzuwenden ist, da zu viel Weichzeichnung die Schärfe des Bildes reduziert, wohingegen zu wenig Weichzeichnung diese und andere derartige Artefakte vielleicht nicht ausreichend entfernt. Ferner kann es Teile einer Szene mit erheblicher Bewegung geben, während andere Teile dieses Bildes dynamisch sind, so dass es wünschenswert sein kann, die Weichzeichnung auf Teile mit Bewegung anzuwenden und die Weichzeichnung auf Teile, die statisch sind, nicht anzuwenden. Wie hier besprochen, kann es jedoch schwierig sein, eine Bewegung mit Bezug auf Schatten, Spiegelungen und andere Aspekte zu bestimmen, die von einem Prozess wie etwa Raytracing herrühren, so dass es bei bestehenden Lösungsansätzen schwierig sein kann, zu bestimmen, wie viel Weichzeichnung auf Regionen eines Bildes, die mit diesem Aspekt verknüpft sind, anzuwenden ist.
  • Entsprechend können Lösungsansätze gemäß diversen Ausführungsformen Informationen, wie etwa die hier vorgestellten Blockierungsbestimmungen, verwenden, um die Anwendung von Weichzeichnen, räumlichem Filtern oder anderer derartiger Bildverarbeitungen zu bestimmen. Bei einem Blockierungsprozess, der mit Bezug auf mindestens eine Ausführungsform präsentiert wird, wird das Blockieren angewendet, wenn ein Betrag an Bewegung oder Änderung in einem Bild bewirkt, dass ein historischer Pixelwert aus einem schnellen Einzelbild außerhalb eines erwarteten Bereichs oder einer erwarteten Region fällt. Unter Verwendung eines derartigen Prozesses kann eine Bestimmung für jedes Pixel erfolgen, ob das Pixel einem statischen Teil des Bildes, einem Teil mit einem Betrag an Bewegung oder Änderung, der innerhalb eines erwarteten Bereichs liegt, oder einem Betrag an Bewegung oder Änderung, der außerhalb eines erwarteten Bereichs liegt, entspricht. Bei einigen Ausführungsformen kann ein Betrag an Weichzeichnung basierend auf der Pixeldifferenz angewendet werden, unabhängig davon, ob dieser Abstand eine Blockierung ergeben würde. Es kann ein Betrag an Weichzeichnung oder räumlichem Filtern angewendet werden, der für eine oder alle dieser Situationen unterschiedlich sein kann. Bei einem anderen beispielhaften Lösungsansatz kann eine Bestimmung für jedes Pixel bezüglich einer Differenz zwischen einem Pixelwert für ein schnelles historisches Einzelbild und ein vollständiges historisches Einzelbild erfolgen. Diese Differenz des Pixelwertes oder des Abstands im Farbraum kann verwendet werden, um einen Betrag an anzuwendender Weichzeichnung oder eine Gewichtung für ein räumliches Filter zu bestimmen. Diese Differenz kann vor oder nach dem Blockieren mit zeitlicher Anhäufung bestimmt werden, und kann somit auf den rohen oder blockierten Werten basieren. Für große Differenzen oder Pixel, bei denen das Blockieren angewendet wurde, kann ein größeres räumliches Filter für diese Pixel angewendet werden. Für kleinere Differenzen kann ein kleineres räumliches Filter angewendet werden. Falls die schnellen und vollständigen historischen Pixelwerte mit einer zulässigen Abweichung die gleichen sind, dann kann es sein, dass bei gewissen Ausführungsformen kein (oder minimales) räumliches Filtern angewendet wird. Bei einigen Ausführungsformen kann ein minimaler Betrag an räumlichem Filtern auf ein ganzes Bild angewendet werden, wobei dieses History-basierte räumliche Filtern als zusätzliches Filter für Pixel mit größeren Bewegungs- oder Änderungsgraden dient.
  • Bei mindestens einer Ausführungsform kann eine Differenz zwischen der Farbe der vollständigen History und der Farbe der schnellen History oder zwischen der Farbe der vollständigen History und der blockierten vollständigen History berechnet werden. Es versteht sich, dass sich die „vollständige“ History in diesem Fall auf eine Anzahl von History-Pufferspeichern bezieht, die bei diesem Bilderzeugungsprozess zu einem bestimmten Zeitpunkt angehäuft wurden, und keine Daten aus allen zuvor erzeugten Bildern oder Einzelbildern in einer Sequenz benötigt. Diese Differenz kann mit einer Konstante oder einem Skalar multipliziert werden, um eine Gewichtung für das anzuwendende räumliche Filter zu bestimmen. Bei mindestens einer Ausführungsform kann diese Gewichtung verwendet werden, um einen anzuwendenden Weichzeichnungsradius zu bestimmen, wie etwa einen Radius von 0, 1, 2 oder 3 Pixeln in einer oder in allen Richtungen. Ein derartiger Lösungsansatz kann verwendet werden, um nur den Betrag an Weichzeichnung anzuwenden, der für spezifische Regionen eines Bildes benötigt wird, was einen Gesamtbetrag an Weichzeichnung, der auf ein Bild angewendet wird, minimieren und somit ein schärferes Bild ergeben kann.
  • Bei mindestens einer Ausführungsform kann die zeitliche Anhäufung ausgeführt werden, um ein schnelles historisches Einzelbild und ein vollständiges historisches Einzelbild unter Verwendung von jeweiligen Mischgewichtungen zu erzeugen. Dann kann eine History-Blockierung für einzelne Pixelstellen unter Verwendung bestimmter Umgebungen des schnellen History-Einzelbildes erfolgen. Bei diesem Beispiel kann ein History-Konfidenz [0,0, 1,0] berechnet werden, wobei es sich um eine Funktion der Differenz zwischen dem vollständigen History-Wert und dem blockierten vollständigen History-Wert an einer gegebenen Pixelstelle handelt. Dieser Konfidenzwert kann bei mindestens einer Ausführungsform als Angabe dafür verwendet werden, welche Pixel von der History-Blockierung betroffen waren, sowie für ein Ausmaß, in dem diese Pixel betroffen waren. Bei diesem Beispiel kann ein Standardbetrag von räumlichem Filtern (z. B. kreuzbilateralem räumlichen Filtern) auf Pixelstellen in einem Bild angewendet werden. Die bilateralen Tiefen-/Normal-Gewichtungen können auf ein Minimum eingestellt werden, wobei ein effektiver Radius (innerhalb eines vordefinierten maximalen Radius) basierend mindestens teilweise auf einer gewissen Form von Rauschschätzung, wie sie mit zeitlicher Varianz, räumlicher Varianz oder Gesamtvariation zusammenhängt, unter anderen derartigen Optionen berechnet wird. Bei mindestens einer Ausführungsform kann ein zusätzliches räumliches Filter hinzugefügt werden, das eine Funktion der History-Konfidenz ist, die basierend auf der History-Blockierung berechnet wird. Bei mindestens einer Ausführungsform kann dies eine lineare Interpolation („lerp“) sein, die durch lerp(MaxRadius, EffectiveRadius, HistoryConfidence) gegeben ist. Bei mindestens einer Ausführungsform kann HistoryConfidence durch HistoryConfidence = saturate(abs(FullAccumulatedHistory - ClampedFullAccumulatedHistory) * ScalingFactor gegeben sein, wobei ScalingFactor ein beliebiger Skalierungsfaktor sein kann, von dem bestimmt wurde, dass er annehmbare Ergebnisse für ein gegebenes Signal oder eine Umsetzung bereitstellt. Bei diesem Beispiel ist abs() eine Absolutwert-Funktion, und saturate() blockiert diesen Wert auf einen [0,0, 1,0] Bereich. Falls es für eine Pixelstelle keine Blockierung gibt, dann kann kein zusätzliches räumliches Filtern angewendet werden. Bei mindestens einigen Ausführungsformen kann ein Betrag an angewendetem zusätzlichen räumlichen Filtern ein Faktor der Differenz zwischen den Pixelwerten für ein gegebenes Pixel in dem schnellen historischen Einzelbild gegenüber dem vollständigen historischen Einzelbild sein.
  • 5 bildet ein beispielhaftes System 500 ab, das gemäß diversen Ausführungsformen verwendet werden kann. Dieses System übernimmt die Bezugszahlen für ähnliche Komponenten aus 2, es versteht sich jedoch, dass dies der einfacheren Erklärung dient und nicht als eine Einschränkung des Umfangs oder der Variabilität der diversen Ausführungsformen anzusehen ist. Bei einem derartigen System können schnelle History- und vollständige History-Einzelbilder durch eine History-Manager-Komponente 214 erzeugt werden, wie zuvor besprochen. Das schnelle History Einzelbild kann mit einem aktuellen Einzelbild verglichen werden, um zu bestimmen, ob das Blockieren für spezifische Pixelstellen oder Regionen des vollständigen History-Einzelbildes anzuwenden ist. Wie erwähnt können Informationen aus diesem Blockierungsbestimmungsprozess verwendet werden, um einen Betrag an räumlichem Filtern zu bestimmen, der während der Bildrekonstruktion anzuwenden ist. Bei diesem Beispiel können Blockierungsinformationen von einem Blockierungsmodul 220 an ein räumliches Filtermodul 502 gegeben werden. Bei anderen Ausführungsformen kann das räumliche Filtermodul 502 direkt auf die schnellen History- und vollständigen History-Einzelbilder wirken. Das räumliche Filtermodul 502 kann Informationen darüber, ob das Blockieren angewendet wurde, und eine Differenz zwischen den Pixelwerten für entsprechende Pixelstellen in dem schnellen historischen Bild und dem vollständigen historischen Bild bestimmen. Das räumliche Filtermodul 502 kann dann eine Größe eines räumlichen Filters oder einen Betrag an Weichzeichnung bestimmen, der auf jedes Pixel eines Bildes anzuwenden ist, das von dem Rekonstruktionsmodul 208 erzeugt wird, wozu eine einzige pixelweise Bestimmung gehören kann, oder wozu ein Standardfilterbetrag zuzüglich eines eventuellen zusätzlichen Filterns, das aus der Blockierung oder aus historischen Konfidenzdaten bestimmt wird, gehören kann. Das rekonstruierte Bild, auf das dieses zusätzliche Filtern angewendet wurde, kann dann einem Display bereitgestellt werden, und auch dem History-Manager 214 zur Anhäufung zu aktualisierten vollständigen und schnellen historischen Einzelbildern zur Rekonstruktion eines nächsten Bildes oder eines Einzelbildes in dieser Sequenz bereitgestellt werden.
  • 6 bildet einen beispielhaften Prozess 600 zum Bestimmen eines räumlichen Filterns ab, das während der Rekonstruktion auf ein Bild anzuwenden ist, der gemäß diversen Ausführungsformen verwendet werden kann. Bei diesem Beispiel wird ein blockierungsbasierter Lösungsansatz beschrieben, doch wie hier besprochen können History-Konfidenzwerte auch unter Verwendung von anderen Informationen bestimmt werden. Schnelle und vollständige historische Einzelbilder werden aus einem zeitlichen Anhäufungsprozess erzielt 602. Es kann bestimmt 604 werden, ob eine Blockierung auf einzelne Pixel des vollständigen historischen Einzelbildes anzuwenden ist, basierend mindestens teilweise auf Werten von Pixeln von entsprechenden Pixelumgebungen des schnellen historischen Einzelbildes, wie etwa ob der Pixelwert eines aktuellen Einzelbildes basierend auf einer gegebenen Pixelumgebung in einen erwarteten Bereich fällt. Es kann dann für einzelne Pixelstellen ein History-Konfidenzwert berechnet 606 werden, der eine Funktion des vollständigen History-Wertes und des blockierten History-Wertes sein kann. Falls kein blockierter Wert verwendet wird, kann die Konfidenz für den vollständigen historischen Pixelwert hoch sein. Für die Pixel des Bildes kann bestimmt 608 werden, dass ein standardmäßiges räumliches Filtern während der Rekonstruktion angewendet wird. Ferner kann ein beliebiges anzuwendendes zusätzliches räumliches Filtern basierend mindestens teilweise auf dem History-Konfidenzwert bestimmt 610 werden, wobei eine geringere Konfidenz, die größeren Differenzen von Pixelwerten entspricht, zu größeren Beträgen an räumlichem Filtern führen kann, wie etwa zu der Verwendung eines größeren Fehlerradius. Es kann dann bewirkt 612 werden, dass der standardmäßige und zusätzliche räumliche Fehler auf die jeweiligen Pixel während der Bildrekonstruktion angewendet wird. Somit kann das räumliche Filtern für eher statische Teile eines Bildes minimiert werden.
  • Wie erwähnt kann ein derartiger Lösungsansatz vorteilhaft sein, wenn das Entrauschen von dynamischen Szenen gehandhabt wird. Die History-Blockierung, wie sie hier besprochen wird, kann dabei helfen, abgelaufene History zu detektieren, und in Fällen, bei denen die abgelaufene History detektiert wird, kann bestimmt werden, während der zeitlichen Anhäufung zeitweilig einen Mischfaktor zu verdrängen, so dass den neuesten Daten eine schwerere Gewichtung zugewiesen wird. Obwohl dies eine zeitliche Verzögerung angemessen angehen kann, kann die Begrenzung einer Anzahl von Einzelbildern bei der zeitlichen Anhäufung einen unannehmbaren Betrag an Rauschen einbringen. Da das System nicht auf zeitliche Daten zurückgreifen kann, um dieses Rauschen zu unterdrücken, kann ein räumlicher Fehler an Stellen erhöht werden, an denen abgelaufene History detektiert wurde, um ein verbessertes Entrauschen bereitzustellen.
  • Andere Lösungsansätze zum Bestimmen und Anwenden eines räumlichen Fehlers können auch bei anderen Ausführungsformen verwendet werden, wie etwa zum Bestimmen von zeitlichen oder räumlichen Gradienten, die von der History-Blockierung unabhängig sein können. Derartige Gradienten können für einen zuvor besprochenen A-SGVF-Prozess verwendet werden. Bei einem anderen Beispiel kann eine Okklusionsgeschwindigkeit als ein Faktor zur Bestimmung verwendet werden, ob ein zusätzlicher oder erhöhter Betrag an räumlichem Filtern während der Bildrekonstruktion anzuwenden ist, da die Umgebungsokklusion eine andere Konfidenzmetrik für alles, was historische Pixeldaten verwendet, bereitstellen kann. Die Umgebungsokklusion ist ein Merkmal eines Prozesses, wie etwa von Raytracing, der in einer Hochdefinitions-Rendering-Pipeline (HDRP) verwendet werden kann. Die Umgebungsokklusion kann verwendet werden, um eine Belichtung jedes Punktes in einer Szene durch Umgebungsbeleuchtung zu berechnen. Andere Arten von Okklusionsbestimmungen können ebenso für andere Lichtquellen usw. verwendet werden. Eine bestimmte Geschwindigkeit einer Okklusion bzw. des Okkludierens kann angeben, ob und wie gut den historischen Pixeldaten zu trauen ist. Strahlen von einer gegebenen Lichtquelle können verfolgt werden, um zu bestimmen, ob sich die entsprechende Geometrie bewegt, sich ändert oder statisch ist, und um einen Betrag an Bewegung oder Änderung zu bestimmen. In manchen Fällen kann basierend auf der Okklusionsgeschwindigkeit nur eine binäre Entscheidung darüber bereitgestellt werden, ob ein Pixel statisch oder dynamisch ist. In Fällen, bei denen Geschwindigkeitsdaten bereitgestellt oder bestimmt werden, kann der Weichzeichnungsradius oder die Gewichtung des räumlichen Filters mit erhöhter Geschwindigkeit vergrößert werden. Ferner kann bei einigen Ausführungsformen, bei denen HistoryConfidence zeitlich etwas unstabil sein kann, dieser Wert für ein paar Einzelbilder erneut projiziert und geringfügig erhöht werden, um einen räumlichen Filterfehler zeitlich glatter zu machen. Ein derartiger Lösungsansatz kann beim Entrauschen und anderweitigen Verbessern der Bildqualität in Situationen, in denen abgelaufene History-Daten detektiert werden, helfen.
  • DATENZENTRUM
  • 7 bildet ein beispielhaftes Datenzentrum 700 ab, bei dem mindestens eine Ausführungsform verwendet werden kann. Bei mindestens einer Ausführungsform umfasst das Datenzentrum 700 eine Datenzentrum-Infrastrukturschicht 710, eine Framework-Schicht 720, eine Software-Schicht 730 und eine Anwendungsschicht 740.
  • Bei mindestens einer Ausführungsform, wie in 7 gezeigt, kann die Datenzentrum-Infrastrukturschicht 710 einen Ressourcenkoordinator 712, gruppierte Rechenressourcen 714 und Knotenrechenressourcen („Knoten-RR“) 716(1) bis 716(N) umfassen, wobei „N“ eine beliebige positive Ganzzahl ist. Bei mindestens einer Ausführungsform können die Knoten-RR 716(1) bis 716(N) ohne Einschränkung eine beliebige Anzahl von Zentraleinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, frei programmierbarer logischer Anordnungen (FPGAs), Grafikprozessoren usw.), Speichervorrichtungen (z. B. dynamischem Festspeicher), Speicherungsvorrichtungen (z. B. Solid-State- oder Festplattenlaufwerken), Netzwerk-Ein-/Ausgangs- („NW-E/A“) Vorrichtungen, Netzwerkschaltern, virtuellen Maschinen („VMs“), Leistungsmodulen und Kühlmodulen usw. umfassen. Bei mindestens einer Ausführungsform können eine oder mehrere Knoten-RRs der Knoten-RRs 716(1) bis 716(N) ein Server sein, der eine oder mehrere der zuvor erwähnten Rechenressourcen aufweist.
  • Bei mindestens einer Ausführungsform können die gruppierten Rechenressourcen 714 getrennte Gruppierungen von Knoten-RRs, die in einem oder mehreren Rahmen (nicht gezeigt) untergebracht sind, oder viele Rahmen, die in Datenzentren an diversen geografischen Standorten (ebenfalls nicht gezeigt) untergebracht sind, umfassen. Getrennte Gruppierungen von Knoten-RRs innerhalb von gruppierten Rechenressourcen 714 können gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherungsressourcen umfassen, die konfiguriert oder zugeteilt werden können, um eine oder mehrere Arbeitsbelastungen zu unterstützen. Bei mindestens einer Ausführungsform können mehrere Knoten-RRs, die CPUs oder Prozessoren umfassen, innerhalb eines oder mehrerer Rahmen gruppiert sein, um Rechenressourcen bereitzustellen, um eine oder mehrere Arbeitsbelastungen zu unterstützen. Bei mindestens einer Ausführungsform können ein oder mehrere Rahmen auch eine beliebige Anzahl von Leistungsmodulen, Kühlmodulen und Netzwerkschaltern in einer beliebigen Kombination umfassen.
  • Bei mindestens einer Ausführungsform kann der Ressourcenkoordinator 712 eine oder mehrere Knoten-RRs 716(1) bis 716(N) und/oder gruppierte Rechenressourcen 714 konfigurieren oder anderweitig steuern. Bei mindestens einer Ausführungsform kann der Ressourcenkoordinator 712 eine Verwaltungseinheit einer Software-Design-Infrastruktur („SDI“) für das Datenzentrum 700 umfassen. Bei mindestens einer Ausführungsform kann der Ressourcenkoordinator Hardware, Software oder eine gewisse Kombination davon umfassen.
  • Bei mindestens einer Ausführungsform, wie in 7 gezeigt, umfasst die Framework-Schicht 720 einen Aufgabenplaner 722, einen Konfigurationsmanager 724, einen Ressourcenmanager 726 und ein verteiltes Dateisystem 728. Bei mindestens einer Ausführungsform kann die Framework-Schicht 720 ein Framework umfassen, um Software 732 der Software-Schicht 730 und/oder eine oder mehrere Anwendungen 742 der Anwendungsschicht 740 zu unterstützen. Bei mindestens einer Ausführungsform können die Software 732 oder die Anwendung(en) 742 jeweils Web-basierte Dienst-Software oder Anwendungen umfassen, wie etwa solche, die von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. Bei mindestens einer Ausführungsform kann die Framework-Schicht 720 ohne Einschränkung eine Art von Web-Anwendungs-Framework für kostenlose und Open-Source-Software sein, wie etwa Apache Spark™ (nachstehend „Spark“), welches das verteilte Dateisystem 728 für groß angelegte Datenverarbeitung (z. B. „Big Data“) verwenden kann. Bei mindestens einer Ausführungsform kann der Aufgabenplaner 722 einen Spark-Treiber umfassen, um das Einplanen von Arbeitsbelastungen zu erleichtern, die von diversen Schichten des Datenzentrums 700 unterstützt werden. Bei mindestens einer Ausführungsform kann der Konfigurationsmanager 724 in der Lage sein, verschiedene Schichten, wie etwa die Software-Schicht 730 und die Framework-Schicht 720, einschließlich Spark und des verteilten Dateisystems 728, zu konfigurieren, um eine groß angelegte Datenverarbeitung zu unterstützen. Bei mindestens einer Ausführungsform kann der Ressourcenmanager 726 in der Lage sein, geclusterte oder gruppierte Rechenressourcen zu verwalten, die zugeordnet oder zugeteilt sind, um das verteilte Dateisystem 728 und den Aufgabenplaner 722 zu unterstützen. Bei mindestens einer Ausführungsform können die geclusterten oder gruppierten Rechenressourcen eine gruppierte Rechenressource 714 auf der Datenzentrum-Infrastrukturschicht 710 umfassen. Bei mindestens einer Ausführungsform kann der Ressourcenmanager 726 mit dem Ressourcenkoordinator 712 koordinieren, um diese zugeordneten oder zugeteilten Rechenressourcen zu verwalten.
  • Bei mindestens einer Ausführungsform kann die Software 732, die in der Software-Schicht 730 enthalten ist, Software umfassen, die mindestens von Teilen von Knoten-RRs 716(1) bis 716(N), gruppierten Rechenressourcen 714 und/oder dem verteilten Dateisystem 728 der Framework-Schicht 720 verwendet wird. Die eine oder die mehreren Arten von Software können ohne Einschränkung Internet-Web-Seitensuch-Software, E-Mail-Virus-Scan-Software, Datenbank-Software und Software zum Streamen von Videoinhalten umfassen.
  • Bei mindestens einer Ausführungsform kann bzw. können die Anwendung(en) 742, die in der Anwendungsschicht 740 enthalten ist bzw. sind, eine oder mehrere Arten von Anwendungen umfassen, die mindestens von Teilen von Knoten-RRs 716(1) bis 716(N), gruppierten Rechenressourcen 714 und/oder dem verteilten Dateisystem 728 der Framework-Schicht 720 verwendet werden. Eine oder mehrere Arten von Anwendungen können ohne Einschränkung eine beliebige Anzahl von Genomikanwendungen, eine kognitive Rechenanwendung und eine maschinelle Lernanwendung umfassen, wozu Trainings- oder Inferenz-Software, Framework-Software zum maschinellen Lernen (z. B. PyTorch, TensorFlow, Caffe usw.) oder andere maschinelle Lernanwendungen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, gehören.
  • Bei mindestens einer Ausführungsform kann einer von dem Konfigurationsmanager 724, dem Ressourcenmanager 726 und dem Ressourcenkoordinator 712 eine beliebige Anzahl und Art von selbständernden Aktionen basierend auf einem beliebigen Betrag und einer beliebigen Art von Daten, die auf beliebige technisch machbare Art und Weise erfasst werden, umsetzen. Bei mindestens einer Ausführungsform können die selbständernden Aktionen es einem Datenzentrumsbediener des Datenzentrums 700 ersparen, möglicherweise schlechte Konfigurationsentscheidungen zu treffen, und möglicherweise unterbenutzte und/oder schlecht funktionierende Teile eines Datenzentrums vermeiden.
  • Bei mindestens einer Ausführungsform kann das Datenzentrum 700 Tools, Dienste, Software oder andere Ressourcen umfassen, um ein oder mehrere maschinelle Lernmodelle zu trainieren, oder um Informationen unter Verwendung eines oder mehrerer maschineller Lernmodelle gemäß einer oder mehrerer hier beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Beispielsweise kann bei mindestens einer Ausführungsform ein maschinelles Lernmodell trainiert werden, indem Gewichtungsparameter gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von zuvor mit Bezug auf das Datenzentrum 700 beschriebenen Software- und Rechenressourcen berechnet werden. Bei mindestens einer Ausführungsform können trainierte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzwerken entsprechen, verwendet werden, um unter Verwendung von zuvor mit Bezug auf das Datenzentrum 700 beschriebenen Ressourcen unter Verwendung von Gewichtungsparametern, die mit einer oder mehreren hier beschriebenen Trainingstechniken berechnet wurden, Informationen abzuleiten oder vorherzusagen.
  • Bei mindestens einer Ausführungsform kann das Datenzentrum CPUs, anwendungsspezifische integrierte Schaltkreise (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Trainieren und/oder Ableiten unter Verwendung der zuvor beschriebenen Ressourcen vorzunehmen. Des Weiteren können eine oder mehrere zuvor beschriebene Software- und/oder Hardware-Ressourcen als ein Dienst konfiguriert sein, um den Benutzern das Trainieren oder das Ausführen des Ableitens von Informationen, wie etwa Bilderkennung, Spracherkennung oder andere Dienste mit künstlicher Intelligenz, zu ermöglichen.
  • Diese Komponenten können verwendet werden, um die Bildqualität während der Bildrekonstruktion unter Verwendung von schneller History-basierter Blockierung und Differenzbestimmungen zu verbessern.
  • COMPUTERSYSTEME
  • 8 ist ein Blockdiagramm, das ein beispielhaftes Computersystem abbildet, das ein System 800 mit zusammengeschalteten Vorrichtungen und Komponenten, ein System-auf-einem-Chip (SOC) oder eine gewisse Kombination davon sein kann und mit einem Prozessor gebildet ist, der Ausführungseinheiten umfassen kann, um einen Befehl auszuführen, gemäß mindestens einer Ausführungsform. Bei mindestens einer Ausführungsform kann das Computersystem 800 ohne Einschränkung eine Komponente, wie etwa einen Prozessor 802 umfassen, um die Ausführungseinheiten zu verwenden, die eine Logik umfassen, um Algorithmen für Prozessdaten auszuführen, gemäß der vorliegenden Offenbarung, sie etwa bei der hier beschriebenen Ausführungsform. Bei mindestens einer Ausführungsform kann das Computersystem 800 Prozessoren, wie etwa die Prozessorfamilie PENTIUM®, Xeon™, Itanium®, XScale™ und/oder StrongARM™, die Mikroprozessoren Intel® Core™ oder Intel® Nervana™, die bei Intel Corporation aus Santa Clara, Kalifornien, erhältlich sind, umfassen, obwohl andere Systeme (einschließlich PCs, die andere Mikroprozessoren, Engineering-Arbeitsstationen, Set-Top-Boxen und dergleichen aufweisen) ebenfalls verwendet werden können. Bei mindestens einer Ausführungsform kann das Computersystem 800 eine Version des Betriebssystems WINDOWS ausführen, das bei Microsoft Corporation aus Redmond, Wash., erhältlich ist, obwohl andere Betriebssysteme (beispielsweise UNIX und Linux), eingebettete Software und/oder grafische Benutzeroberflächen ebenfalls verwendet werden können.
  • Die Ausführungsformen können auf anderen Vorrichtungen, wie etwa auf Handheld-Geräten und eingebetteten Anwendungen, verwendet werden. Einige Beispiele von Handheld-Geräten umfassen Mobiltelefone, Internet-Protokoll-Vorrichtungen, digitale Kameras, persönliche digitale Assistenten („PDAs“) und Handheld-PCs. Bei mindestens einer Ausführungsform können eingebettete Anwendungen einen Mikrocontroller, einen digitalen Signalprozessor („DSP“), ein System auf einem Chip, Netzwerkcomputer („NetPCs“), Set-Top-Boxen, Netzwerkknoten, Weitverkehrsnetz- („WAN“) Schalter oder ein beliebiges anderes System, das einen oder mehrere Befehlen ausführen kann, gemäß mindestens einer Ausführungsform umfassen.
  • Bei mindestens einer Ausführungsform kann das Computersystem 800 ohne Einschränkung einen Prozessor 802 umfassen, der ohne Einschränkung eine oder mehrere Ausführungseinheiten 808 umfassen kann, um das Trainieren und/oder Ableiten eines maschinellen Lernmodells gemäß den hier beschriebenen Techniken auszuführen. Bei mindestens einer Ausführungsform ist das Computersystem 800 ein Einzelprozessor-Desktop- oder Serversystem, doch bei einer anderen Ausführungsform kann das Computersystem 800 ein Mehrprozessorsystem sein. Bei mindestens einer Ausführungsform kann der Prozessor 802 ohne Einschränkung einen Mikroprozessor eines Computers mit komplexem Befehlssatz („CISC“), einen Mikroprozessor eines Computers mit reduziertem Befehlssatz („RISC“), einen Mikroprozessor für sehr lange Befehlswörter („VLIW“), einen Prozessor, der eine Kombination von Befehlssätzen umsetzt, oder eine beliebige andere Prozessorvorrichtung, wie beispielsweise einen digitalen Signalprozessor, umfassen. Bei mindestens einer Ausführungsform kann der Prozessor 802 mit einem Prozessorbus 810 gekoppelt sein, der Datensignale zwischen dem Prozessor 802 und anderen Komponenten in dem Computersystem 800 übertragen kann.
  • Bei mindestens einer Ausführungsform kann der Prozessor 802 ohne Einschränkung einen Level-1- („LI“) internen Cache-Speicher („Cache“) 804 umfassen. Bei mindestens einer Ausführungsform kann der Prozessor 802 einen einzigen internen Cache oder mehrere Ebenen von internem Cache umfassen. Bei mindestens einer Ausführungsform kann sich der Cache-Speicher außerhalb des Prozessors 802 befinden. Andere Ausführungsformen können auch eine Kombination von sowohl internen als auch externen Caches umfassen, je nach der bestimmten Umsetzung und den Bedürfnissen. Bei mindestens einer Ausführungsform kann die Registerdatei 806 verschiedene Arten von Daten in diversen Registern speichern, wozu ohne Einschränkung Ganzzahlregister, Gleitkommaregister, Statusregister und Befehlszeigerregister gehören.
  • Bei mindestens einer Ausführungsform befindet sich die Ausführungseinheit 808, die ohne Einschränkung eine Logik umfasst, um Ganzzahl- und Gleitkomma-Operationen auszuführen, ebenfalls in dem Prozessor 802. Bei mindestens einer Ausführungsform kann der Prozessor 802 auch einen Mikrocode- („µ-Code“) Festspeicher („ROM“) umfassen, der Mikrocode für gewisse Makrobefehle speichert. Bei mindestens einer Ausführungsform kann die Ausführungseinheit 808 eine Logik umfassen, um einen komprimierten Befehlssatz 809 zu handhaben. Bei mindestens einer Ausführungsform können durch das Einbeziehen eines komprimierten Befehlssatzes 809 in einen Befehlssatz eines universellen Prozessors 802, zusammen mit dazugehörigen Schaltungen, um Befehle auszuführen, Operationen, die von zahlreichen Multimedia-Anwendungen verwendet werden, unter Verwendung komprimierter Daten in einem universellen Prozessor 802 ausgeführt werden. Bei einer oder mehreren Ausführungsformen können zahlreiche Multimedia-Anwendungen beschleunigt und effizienter ausgeführt werden, indem die ganze Breite eines Datenbusses des Prozessors verwendet wird, um Operationen an komprimierten Daten auszuführen, wodurch es vielleicht nicht notwendig ist, kleinere Dateneinheiten über den Datenbus des Prozessors zu übertragen, um eine oder mehrere Operationen mit nur einem Datenelement auf einmal auszuführen.
  • Bei mindestens einer Ausführungsform kann die Ausführungseinheit 808 auch in Mikrocontrollern, eingebetteten Prozessoren, Grafikvorrichtungen, DSPs und andersartigen logischen Schaltungen verwendet werden. Bei mindestens einer Ausführungsform kann das Computersystem 800 ohne Einschränkung einen Speicher 820 umfassen. Bei mindestens einer Ausführungsform kann der Speicher 820 als eine dynamische Arbeitsspeicher-(„DRAM“) Vorrichtung, eine statische Arbeitsspeicher- („SRAM“) Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Speichervorrichtung umgesetzt sein. Bei mindestens einer Ausführungsform kann der Speicher 820 Befehle 819 und/oder Daten 821 speichern, die durch Datensignale dargestellt werden, die von dem Prozessor 802 ausgeführt werden können.
  • Bei mindestens einer Ausführungsform kann ein Systemlogik-Chip mit dem Prozessorbus 810 und dem Speicher 820 gekoppelt sein. Bei mindestens einer Ausführungsform kann der Systemlogik-Chip ohne Einschränkung einen Speicher-Controller-Knoten („MCH“) 816 umfassen, und der Prozessor 802 kann mit dem MCH 816 über den Prozessorbus 810 kommunizieren. Bei mindestens einer Ausführungsform kann der MCH 816 einen Speicherpfad mit hoher Bandbreite 818 für den Speicher 820 zur Speicherung von Befehlen und Daten und zur Speicherung von Grafikbefehlen, Daten und Texturen bereitstellen. Bei mindestens einer Ausführungsform kann der MCH 816 Datensignale zwischen dem Prozessor 802, dem Speicher 820 und anderen Komponenten in dem Computersystem 800 leiten und Datensignale zwischen dem Prozessorbus 810, dem Speicher 820 und einem System-E/A 822 überbrücken. Bei mindestens einer Ausführungsform kann der Systemlogik-Chip einen Grafikanschluss zum Koppeln mit einem Grafik-Controller bereitstellen. Bei mindestens einer Ausführungsform kann der MCH 816 mit dem Speicher 820 über einen Speicherpfad mit hoher Bandbreite 818 gekoppelt sein, und eine Grafik-/Video-Karte 812 kann mit dem MCH 816 über einen beschleunigten Grafikanschluss- („AGP“) Zusammenschluss 814 gekoppelt sein.
  • Bei mindestens einer Ausführungsform kann das Computersystem 800 den System-E/A 822, der ein proprietärer Knotenschnittstellenbus ist, verwenden, um den MCH 816 mit dem E/A-Controller-Knoten („ICH“) 830 zu koppeln. Bei mindestens einer Ausführungsform kann der ICH 830 direkte Verbindungen zu einigen E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellen. Bei mindestens einer Ausführungsform kann der lokale E/A-Bus ohne Einschränkung einen schnellen E/A-Bus zum Anschließen von Peripheriegeräten an den Speicher 820, den Chipsatz und den Prozessor 802 umfassen. Beispiele umfassen ohne Einschränkung einen Audiocontroller 829, einen Firmware-Knoten („Flash-BIOS“) 828, einen drahtlosen Transceiver 826, eine Datenspeichervorrichtung 824, einen alten E/A-Controller 823, der Benutzereingabe- und Tastaturschnittstellen 825 enthält, einen seriellen Erweiterungsanschluss 827, wie etwa einen universellen seriellen Bus („USB“), und einen Netzwerk-Controller 834 umfasst. Die Datenspeichervorrichtung 824 kann ein Festplattenlaufwerk, ein Diskettenlaufwerk, eine CD-ROM-Vorrichtung, eine Flash-Speichervorrichtung oder eine andere Massenspeichervorrichtung umfassen.
  • Bei mindestens einer Ausführungsform bildet 8 ein System ab, das zusammengeschaltete Hardware-Vorrichtungen bzw. „Chips“ umfasst, wohingegen bei anderen Ausführungsformen 8 ein beispielhaftes System auf einem Chip („SoC“) abbilden kann. Bei mindestens einer Ausführungsform können die Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer gewissen Kombination davon zusammengeschaltet sein. Bei mindestens einer Ausführungsform sind eine oder mehrere Komponenten des Computersystems 800 unter Verwendung von Compute-Express-Link- (CXL) Zusammenschaltungen zusammengeschaltet.
  • Diese Komponenten können verwendet werden, um die Bildqualität während der Bildrekonstruktion unter Verwendung einer schnellen History-basierten Blockierung und Differenzbestimmungen zu verbessern.
  • 9 ist ein Blockdiagramm, das eine elektronische Vorrichtung 900 zur Verwendung eines Prozessors 910 gemäß mindestens einer Ausführungsform abbildet. Bei mindestens einer Ausführungsform kann die elektronische Vorrichtung 900 beispielsweise und ohne Einschränkung ein Notebook, ein Tower-Server, ein Rack-Server, ein Blade-Server, ein Laptop, ein Desktop, ein Tablet, eine mobile Vorrichtung, ein Telefon, ein eingebetteter Computer oder eine beliebige andere geeignete elektronische Vorrichtung sein.
  • Bei mindestens einer Ausführungsform kann das System 900 ohne Einschränkung den Prozessor 910 umfassen, der kommunikationsmäßig mit einer beliebigen Anzahl oder einen beliebigen Art von Komponenten, Peripheriegeräten, Modulen oder Vorrichtungen gekoppelt ist. Bei mindestens einer Ausführungsform ist der Prozessor 910 unter Verwendung eines Busses oder einer Schnittstelle, wie etwa eines 1°C-Busses, eines System-Management-Busses („SMBus“), eines Low-Pin-Count- (LPC) Busses, einer seriellen Peripherieschnittstelle („SPI“), eines High-Definition-Audio- („HDA“) Busses, eines Serial-Advance-Technology-Attachment- („SATA“) Busses, eines universellen seriellen Busses („USB“) (Version 1, 2, 3) oder eines Universal-Asynchronous-Receiver/Transmitter-(„UART“) Busses gekoppelt. Bei mindestens einer Ausführungsform bildet 9 ein System ab, das zusammengeschaltete Hardware-Vorrichtungen bzw. „Chips“ umfasst, wohingegen bei anderen Ausführungsformen 9 ein beispielhaftes System auf einem Chip („SoC“) abbilden kann. Bei mindestens einer Ausführungsform können die in 9 abgebildeten Vorrichtungen mit proprietären Zusammenschaltungen, standardisierten Zusammenschaltungen (z. B. PCIe) oder einer gewissen Kombination davon zusammengeschaltet sein. Bei mindestens einer Ausführungsform sind eine oder mehrere Komponenten aus 9 unter Verwendung von Compute-Express-Link- (CXL) Zusammenschaltungen zusammengeschaltet.
  • Bei mindestens einer Ausführungsform kann 9 ein Display 924, einen Berührungsbildschirm 925, ein Touchpad 930, eine Nahfeld-Kommunikationseinheit („NFC“) 945, einen Sensorknoten 940, einen Wärmesensor 946, einen Express-Chipsatz („EC“) 935, ein sicheres Plattformmodul („TPM“) 938, einen BIOS/Firmware/Flash-Speicher („BIOS, FW-Flash“) 922, einen DSP 960, ein Laufwerk 920, wie etwa ein Solid-State-Laufwerk („SSD“) oder ein Festplattenlaufwerk („HDD“), eine drahtlose lokale Netzwerkeinheit („WLAN“) 950, eine Bluetooth-Einheit 952, eine drahtlose Weitverkehrsnetzwerkeinheit („WWAN“) 956, ein globales Positionsbestimmungssystem (GPS) 955, eine Kamera („USB 3.0 Kamera“) 954, wie etwa eine USB-3.0-Kamera und/oder eine Niedrigenergie-Doppeldatenraten- („LPDDR“) Speichereinheit („LPDDR3“) 915, die beispielsweise im LPDDR3-Standard umgesetzt ist, umfassen. Diese Komponenten können jeweils auf geeignete Art und Weise umgesetzt werden.
  • Bei mindestens einer Ausführungsform können andere Komponenten mit dem Prozessor 910 über zuvor besprochene Komponenten kommunikationsmäßig gekoppelt sein. Bei mindestens einer Ausführungsform können ein Beschleunigungsmesser 941, ein Umgebungslichtsensor („ALS“) 942, ein Kompass 943 und ein Gyroskop 944 kommunikationsmäßig mit dem Sensorknoten 940 gekoppelt sein. Bei mindestens einer Ausführungsform können ein Wärmesensor 939, ein Gebläse 937, eine Tastatur 946 und ein Touchpad 930 kommunikationsmäßig mit dem EC 935 gekoppelt sein. Bei mindestens einer Ausführungsform können ein Lautsprecher 963, ein Kopfhörer 964 und ein Mikrofon („Mic“) 965 kommunikationsmäßig mit einer Audioeinheit („Audio-Codec und Verstärker Klasse D“) 962 gekoppelt sein, die wiederum kommunikationsmäßig mit dem DSP 960 gekoppelt sein können. Bei mindestens einer Ausführungsform kann die Audioeinheit 964 beispielsweise und ohne Einschränkung einen Audiocodierer/Decodierer („Codec“) und einen Verstärker der Klasse D umfassen. Bei mindestens einer Ausführungsform kann eine SIM-Karte („SIM“) 957 mit der WWAN-Einheit 956 kommunikationsmäßig gekoppelt sein. Bei mindestens einer Ausführungsform können Komponenten, wie etwa die WLAN-Einheit 950 und die Bluetooth-Einheit 952, sowie die WWAN-Einheit 956 in einem Formfaktor der nächsten Generation („NGFF“) umgesetzt sein.
  • Diese Komponenten können verwendet werden, um die Bildqualität während der Bildrekonstruktion unter Verwendung einer schnellen History-basierten Blockierung und Differenzbestimmungen zu verbessern.
  • 10 ist ein Blockdiagramm eines Verarbeitungssystems gemäß mindestens einer Ausführungsform. Bei mindestens einer Ausführungsform umfasst das System 1000 einen oder mehrere Prozessoren 1002 und einen oder mehrere Grafikprozessoren 1008 und kann ein Einzelprozessor-Desktopsystem, ein Mehrprozessor-Arbeitsstationssystem oder ein Serversystem, das eine große Anzahl von Prozessoren 1002 oder Prozessorkernen 1007 aufweist, sein. Bei mindestens einer Ausführungsform ist das System 1000 eine Verarbeitungsplattform, die in einer integrierten Schaltung eines System-auf-einem-Chip (SoC) zur Verwendung in mobilen, handgehaltenen oder eingebetteten Vorrichtungen eingebunden ist.
  • Bei mindestens einer Ausführungsform kann das System 1000 eine serverbasierte Gaming-Plattform, eine Spielkonsole, die eine Spiel- und Medienkonsole umfasst, eine mobile Gaming-Konsole, eine Handheld-Spielkonsole oder eine Online-Spielkonsole umfassen oder darin eingebunden sein. Bei mindestens einer Ausführungsform ist das System 1000 ein Mobiltelefon, ein Smartphone, eine Tablet-Computervorrichtung oder eine mobile Internet-Vorrichtung. Bei mindestens einer Ausführungsform kann das Verarbeitungssystem 1000 auch eine anziehbare Vorrichtung, wie etwa eine anziehbare Vorrichtung als intelligente Armbanduhr, eine intelligente Brillenvorrichtung, eine Vorrichtung mit erweiterter Realität oder einer Vorrichtung mit virtueller Realität umfassen, damit gekoppelt oder darin eingebunden sein. Bei mindestens einer Ausführungsform ist das Verarbeitungssystem 1000 eine Fernseh- oder Set-Top-Box-Vorrichtung, die einen oder mehrere Prozessoren 1002 und eine grafische Oberfläche, die von einem oder mehreren Grafikprozessoren 1008 erzeugt wird, umfasst.
  • Bei mindestens einer Ausführungsform umfassen ein oder mehrere Prozessoren 1002 jeweils einen oder mehrere Prozessorkerne 1007, um Befehlen zu verarbeiten, die bei ihrer Ausführung Operationen für System- und Benutzer-Software durchführen. Bei mindestens einer Ausführungsform ist jeder von einem oder mehreren Prozessorkernen 1007 konfiguriert, um einen spezifischen Befehlssatz 1009 auszuführen. Bei mindestens einer Ausführungsform kann der Befehlssatz 1009 Datenverarbeitung mit komplexem Befehlssatz (CISC), Datenverarbeitung mit reduziertem Befehlssatz (RISC) oder Datenverarbeitung über ein sehr langes Befehlswort (VLIW) ermöglichen. Bei mindestens einer Ausführungsform können die Prozessorkerne 1007 jeweils einen anderen Befehlssatz 1009 verarbeiten, der Befehle umfassen kann, um die Emulation von anderen Befehlssätzen zu ermöglichen. Bei mindestens einer Ausführungsform kann der Prozessorkern 1007 auch andere Verarbeitungsvorrichtungen, wie etwa einen digitalen Signalprozessor (DSP), umfassen.
  • Bei mindestens einer Ausführungsform umfasst der Prozessor 1002 einen Cache-Speicher 1004. Bei mindestens einer Ausführungsform kann der Prozessor 1002 einen einzigen internen Cache oder mehrere Ebenen von internem Cache aufweisen. Bei mindestens einer Ausführungsform wird der Cache-Speicher von diversen Komponenten des Prozessors 1002 gemeinsam genutzt. Bei mindestens einer Ausführungsform verwendet der Prozessor 1002 auch einen externen Cache (z. B. einen Level-3- (L3) Cache oder Last-Level-Cache (LLC)) (nicht gezeigt), die von den Prozessorkernen 1007 unter Verwendung von bekannten Cache-Kohärenztechniken gemeinsam genutzt werden können. Bei mindestens einer Ausführungsform ist die Registerdatei 1006 zusätzlich in dem Prozessor 1002 enthalten und kann verschiedene Arten von Registern zum Speichern verschiedener Arten von Daten (z. B. Ganzzahlregister, Gleitkommaregister, Statusregister und ein Befehlszeigerregister) umfassen. Bei mindestens einer Ausführungsform kann die Registerdatei 1006 universelle Register oder andere Register umfassen.
  • Bei mindestens einer Ausführungsform sind ein oder mehrere Prozessoren 1002 mit einem oder mehreren Schnittstellenbussen 1010 gekoppelt, um Kommunikationssignale, wie etwa Adressen-, Daten- oder Steuersignale, zwischen dem Prozessor 1002 und anderen Komponenten in dem System 1000 zu übertragen. Bei mindestens einer Ausführungsform kann der Schnittstellenbus 1010 bei einer Ausführungsform ein Prozessorbus sein, wie etwa eine Version eines direkten Medienschnittstellen- (DMI) Busses. Bei mindestens einer Ausführungsform ist die Schnittstelle 1010 nicht auf einen DMI-Bus eingeschränkt und kann eine oder mehrere Peripheriekomponenten-Zusammenschaltungsbusse (z. B. PCI, PCI Express), Speicherbusse oder andersartige Schnittstellenbusse umfassen. Bei mindestens einer Ausführungsform umfassen der oder die Prozessoren 1002 einen integrierten Speicher-Controller 1016 und einen Plattform-Controller-Knoten 1030. Bei mindestens einer Ausführungsform ermöglicht der Speicher-Controller 1016 die Kommunikation zwischen einer Speichervorrichtung und anderen Komponenten des Systems 1000, während der Plattform-Controller-Knoten (PCH) 1030 Verbindungen mit E/A-Vorrichtungen über einen lokalen E/A-Bus bereitstellt.
  • Bei mindestens einer Ausführungsform kann die Speichervorrichtung 1020 eine dynamische Arbeitsspeicher- (DRAM) Vorrichtung, eine statische Arbeitsspeicher- (SRAM) Vorrichtung, eine Flash-Speichervorrichtung, eine Phasenänderungs-Speichervorrichtung oder eine gewisse andere Speichervorrichtung sein, die eine geeignete Leistung aufweist, um als Prozessspeicher zu dienen. Bei mindestens einer Ausführungsform kann die Speichervorrichtung 1020 als Systemspeicher für das System 1000 dienen, um Daten 1022 und Befehle 1021 zur Verwendung zu speichern, wenn einer oder mehrere Prozessoren 1002 eine Anwendung oder einen Prozess durchführen. Bei mindestens einer Ausführungsform ist der Speicher-Controller 1016 auch mit einem optionalen externen Grafikprozessor 1012 gekoppelt, der mit einem oder mehreren Grafikprozessoren 1008 in den Prozessoren 1002 kommunizieren kann, um Grafik- und Medienoperationen auszuführen. Bei mindestens einer Ausführungsform kann eine Anzeigevorrichtung 1011 an den oder die Prozessoren 1002 angeschlossen sein. Bei mindestens einer Ausführungsform kann die Anzeigevorrichtung 1011 eine oder mehrere von einer internen Anzeigevorrichtung, wie etwa in einer mobilen elektronischen Vorrichtung oder einer Laptop-Vorrichtung, oder einer externen Anzeigevorrichtung, die über eine Anzeigeschnittstelle (z. B. DisplayPort usw.) angebunden ist, umfassen. Bei mindestens einer Ausführungsform kann die Anzeigevorrichtung 1011 ein Head-Mounted-Display (HMD), wie etwa eine stereoskopische Anzeigevorrichtung zur Verwendung bei virtuellen Realitäts- (VR) Anwendungen oder erweiterten Realitäts- (AR) Anwendungen, umfassen.
  • Bei mindestens einer Ausführungsform ermöglicht es der Plattform-Controller-Knoten 1030 Peripheriegeräten, sich über einen schnellen E/A-Bus mit der Speichervorrichtung 1020 und dem Prozessor 1002 zu verbinden. Bei mindestens einer Ausführungsform umfassen die E/A-Peripheriegeräte ohne Einschränkung einen Audio-Controller 1046, einen Netzwerk-Controller 1034, eine Firmware-Schnittstelle 1028, einen drahtlosen Transceiver 1026, Berührungssensoren 1025, eine Datenspeicherungsvorrichtung 1024 (z. B. ein Festplattenlaufwerk, einen Flash-Speicher usw.). Bei mindestens einer Ausführungsform kann die Datenspeicherungsvorrichtung 1024 über eine Speicherungsschnittstelle (z. B. SATA) oder über einen Peripheriebus, wie etwa einen Peripheriekomponenten-Zusammenschaltungsbus (z. B. PCI, PCI Express), angeschlossen sein. Bei mindestens einer Ausführungsform können die Berührungssensoren 1025 Berührungsbildschirmsensoren, Drucksensoren oder Fingerabdrucksensoren umfassen. Bei mindestens einer Ausführungsform kann der drahtlose Transceiver 1026 ein WiFi-Transceiver, ein Bluetooth-Transceiver oder ein mobiler Netzwerk-Transceiver, wie etwa ein 3G-, 4G- oder Long-Term-Evolution- (LTE) Transceiver, sein. Bei mindestens einer Ausführungsform ermöglicht die Firmware-Schnittstelle 1028 die Kommunikation mit der System-Firmware, und kann beispielsweise eine vereinheitlichte erweiterbare Firmware-Schnittstelle (UEFI) sein. Bei mindestens einer Ausführungsform kann der Netzwerk-Controller 1034 eine Netzwerkverbindung mit einem drahtgebundenen Netzwerk ermöglichen. Bei mindestens einer Ausführungsform ist ein Hochleistungs-Netzwerk-Controller (nicht gezeigt) mit dem Schnittstellenbus 1010 gekoppelt. Bei mindestens einer Ausführungsform ist der Audio-Controller 1046 ein Mehrkanal-Hochdefinitions-Audio-Controller. Bei mindestens einer Ausführungsform umfasst das System 1000 einen optionalen alten E/A-Controller 1040 zum Koppeln von alten (z. B. Personal-System-2-(PS/2)) Vorrichtungen mit dem System. Bei mindestens einer Ausführungsform kann der Plattform-Controller-Knoten 1030 auch mit einem oder mehreren universellen seriellen Bus-(USB) Controllern 1042, Verbindungseingabevorrichtungen, wie etwa Tastatur- und Maus-1043 Kombinationen, einer Kamera 1044 oder anderen USB-Eingabevorrichtungen, verbunden sein.
  • Bei mindestens einer Ausführungsform kann eine Instanz des Speicher-Controllers 1016 und des Plattform-Controller-Knotens 1030 in einen diskreten externen Grafikprozessor, wie etwa einen externen Grafikprozessor 1012, integriert sein. Bei mindestens einer Ausführungsform können der Plattform-Controller-Knoten 1030 und/oder Speicher-Controller 1016 zu dem einen oder den mehreren Prozessoren 1002 extern sein. Beispielsweise kann bei mindestens einer Ausführungsform das System 1000 einen externen Speicher-Controller 1016 und einen Plattform-Controller-Knoten 1030 umfassen, die als Speicher-Controller-Knoten und Peripherie-Controller-Knoten innerhalb eines System-Chipsatzes, der mit dem oder den Prozessoren 1002 kommuniziert, konfiguriert sein können.
  • Diese Komponenten können verwendet werden, um die Bildqualität während der Bildrekonstruktion unter Verwendung von schneller History-basierter Blockierung und Differenzbestimmungen zu verbessern.
  • 11 ist ein Blockdiagramm eines Prozessors 1100, der einen oder mehrere Prozessorkerne 1102A bis 1102N, einen integrierten Speicher-Controller 1114 und einen integrierten Grafikprozessor 1108 gemäß mindestens einer Ausführungsform umfasst. Bei mindestens einer Ausführungsform kann der Prozessor 1100 zusätzliche Kerne, bis zu dem und einschließlich des zusätzlichen Kerns 1102N, die durch gestrichelte Kästchen dargestellt sind, umfassen. Bei mindestens einer Ausführungsform umfasst jeder der Prozessorkerne 1102A bis 1102N eine oder mehrere interne Cache-Einheiten 1104A bis 1104N. Bei mindestens einer Ausführungsform hat jeder Prozessorkern auch Zugriff auf eine oder mehrere gemeinsam genutzte zwischengespeicherte Einheiten 1106.
  • Bei mindestens einer Ausführungsform stellen die internen Cache-Einheiten 1104A bis 1104N und die gemeinsam genutzten Cache-Einheiten 1106 eine Cache-Speicherhierarchie innerhalb des Prozessors 1100 dar. Bei mindestens einer Ausführungsform Cache-Speicher können die Cache-Speichereinheiten 1104A bis 1104N mindestens eine Ebene von Befehls- und Daten-Cache innerhalb jedes Prozessorkerns und eine oder mehrere Ebenen von gemeinsam genutzten Mittelebenen-Cache, wie etwa ein Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Cache-Ebenen umfassen, wobei eine höchste Cache-Ebene vor dem externen Speicher als LLC klassifiziert ist. Bei mindestens einer Ausführungsform bewahrt eine Cache-Kohärenzlogik die Kohärenz zwischen den diversen Cache-Einheiten 1106 und 1104A bis 1104N.
  • Bei mindestens einer Ausführungsform kann der Prozessor 1100 auch eine Menge von einer oder mehreren Bus-Controller-Einheiten 1116 und einen Systemagentenkern 1110 umfassen. Bei mindestens einer Ausführungsform verwalten eine oder mehrere Bus-Controller-Einheiten 1116 eine Menge von Peripheriebussen, wie etwa einen oder mehrere PCI- oder PCI-Express-Busse. Bei mindestens einer Ausführungsform stellt der Systemagentenkern 1110 eine Verwaltungsfunktion für diverse Prozessorkomponenten bereit. Bei mindestens einer Ausführungsform umfasst der Systemagentenkern 1110 einen oder mehrere integrierte Speicher-Controller 1114, um den Zugriff auf diverse externe Speichervorrichtungen (nicht gezeigt) zu verwalten.
  • Bei mindestens einer Ausführungsform umfassen einer oder mehrere der Prozessorkerne 1102A bis 1102N eine Unterstützung für gleichzeitiges Multithreading. Bei mindestens einer Ausführungsform umfasst der Systemagentenkern 1110 Komponenten zum Koordinieren und Betätigen der Kerne 1102A bis 1102N während einer Multithread-Verarbeitung. Bei mindestens einer Ausführungsform kann der Systemagentenkern 1110 zusätzlich eine Energiesteuereinheit (PCU) umfassen, die eine Logik und Komponenten umfasst, um einen oder mehrere Energiezustände der Prozessorkerne 1102A bis 1102N und des Grafikprozessors 1108 zu verwalten.
  • Bei mindestens einer Ausführungsform umfasst der Prozessor 1100 zusätzlich einen Grafikprozessor 1108, um Grafikverarbeitungsoperationen durchzuführen. Bei mindestens einer Ausführungsform ist der Grafikprozessor 1108 mit gemeinsam genutzten Cache-Einheiten 1106 und dem Systemagentenkern 1110 gekoppelt, wozu ein oder mehrere integrierte Speicher-Controller 1114 gehören. Bei mindestens einer Ausführungsform umfasst der Systemagentenkern 1110 auch einen Display-Controller 1111, um die Grafikprozessorausgabe an ein oder mehrere gekoppelte Displays anzusteuern. Bei mindestens einer Ausführungsform kann der Display-Controller 1111 auch ein separates Modul sein, das mit dem Grafikprozessor 1108 über mindestens eine Zusammenschaltung gekoppelt ist, oder kann innerhalb des Grafikprozessors 1108 integriert sein.
  • Bei mindestens einer Ausführungsform wird eine ringbasierte Zusammenschaltungseinheit 1112 verwendet, um interne Komponenten des Prozessors 1100 zu koppeln. Bei mindestens einer Ausführungsform können eine alternative Zusammenschaltungseinheit, wie etwa eine Punkt-zu-Punkt-Zusammenschaltung, eine geschaltete Zusammenschaltung oder andere Techniken verwendet werden. Bei mindestens einer Ausführungsform ist der Grafikprozessor 1108 mit der Ringzusammenschaltung 1112 über eine E/A-Verbindung 1113 gekoppelt.
  • Bei mindestens einer Ausführungsform stellt die E/A-Verbindung 1113 mindestens eine von mehreren Versionen von E/A-Zusammenschaltungen dar, wozu eine Gehäuse-E/A-Zusammenschaltung gehört, welche die Kommunikation zwischen diversen Prozessorkomponenten und einem eingebetteten Hochleistungs-Speichermodul 1118, wie etwa einem eDRAM-Modul, ermöglicht. Bei mindestens einer Ausführungsform verwendet jeder von den Prozessorkernen 1102A bis 1102N und dem Grafikprozessor 1108 eingebettete Speichermodule 1118 als gemeinsam genutzten Last-Level-Cache.
  • Bei mindestens einer Ausführungsform sind die Prozessorkerne 1102A bis 1102N homogene Kerne, die eine gemeinsame Befehlssatzarchitektur ausführen. Bei mindestens einer Ausführungsform sind die Prozessorkerne 1102A bis 1102N im Sinne der Befehlssatzarchitektur (ISA) heterogen, wobei ein oder mehrere der Prozessorkerne 1102A bis 1102N einen gemeinsamen Befehlssatz ausführen, während ein oder mehrere andere Kerne der Prozessorkerne 1102A bis 1102N eine Teilmenge eines gemeinsamen Befehlssatzes oder einen anderen Befehlssatz ausführen. Bei mindestens einer Ausführungsform sind die Prozessorkerne 1102A bis 1102N im Sinne der Mikroarchitektur heterogen, wobei ein oder mehrere Kerne, die einen relativ höheren Energieverbrauch aufweisen, mit einem oder mehreren Energiekernen gekoppelt sind, die einen niedrigeren Energieverbrauch aufweisen. Bei mindestens einer Ausführungsform kann der Prozessor 1100 auf einem oder mehreren Chips oder als integrierter SoC-Schaltkreis umgesetzt sein.
  • Diese Komponenten können verwendet werden, um die Bildqualität während der Bildrekonstruktion unter Verwendung einer schnellen History-basierten Blockierung und Differenzbestimmungen zu verbessern.
  • Andere Varianten liegen im Geist der vorliegenden Offenbarung. Obwohl die offenbarten Techniken zu diversen Änderungen und alternativen Konstruktionen fähig sind, werden somit gewisse abgebildete Ausführungsformen derselben in den Zeichnungen gezeigt und wurden zuvor ausführlich beschrieben. Es versteht sich jedoch, dass es nicht beabsichtigt ist, die Offenbarung auf die spezifischen offenbarten Form(en) einzuschränken, sondern die Erfindung vielmehr alle Änderungen, alternativen Konstruktionen und Äquivalente abdecken soll, die in Geist und Umfang der Offenbarung fallen, wie sie in den beiliegenden Ansprüchen definiert sind.
  • Die Verwendung der Begriffe „ein, eine, eines“ und „der, die, das“ und ähnlicher Bezeichnungen in Zusammenhang mit der Beschreibung der offenbarten Ausführungsformen (insbesondere in Zusammenhang mit den folgenden Ansprüchen) ist dahingehend auszulegen, dass sie sowohl Singular als auch Plural abdecken, soweit hier nicht anderweitig angegeben oder in deutlichem Widerspruch zum Zusammenhang stehend, und nicht als eine Definition eines Begriffs. Die Begriffe „umfassend“, „aufweisend“, „einschließend“ und „enthaltend“ sind als offene Begriffe auszulegen (mit der Bedeutung „einschließlich ohne Einschränkung“), soweit nicht anderweitig angemerkt. Der Begriff „verbunden“, wenn er unverändert ist und sich auf physische Verbindungen bezieht, ist als teilweise oder ganz enthalten in, angebracht an oder zusammengefügt mit auszulegen, selbst wenn etwas dazwischenliegt. Die Aufführung von Wertebereichen ist hier nur dazu gedacht, als verkürztes Verfahren zu dienen, um sich einzeln auf jeden getrennten Wert zu beziehen, der in den Bereich fällt, soweit hier nicht anderweitig angegeben, und jeder getrennte Wert wird in die Beschreibung übernommen, als ob er hier einzeln aufgeführt wäre. Die Verwendung des Begriffs „Menge“ (z. B. „eine Menge von Dingen“) oder „Teilmenge“, soweit nicht anderweitig angemerkt oder in Widerspruch zum Zusammenhang stehend, ist als eine nicht leere Sammlung auszulegen, die ein oder mehrere Elemente umfasst. Ferner bezeichnet, soweit nicht anderweitig angemerkt oder in Widerspruch zum Zusammenhang stehend, der Begriff „Teilmenge“ einer entsprechenden Menge nicht unbedingt eine eigene Teilmenge der entsprechenden Menge, sondern die Teilmenge und die entsprechende Menge können gleich sein.
  • Eine verbindende Ausdruckweise, wie etwa Ausdrücke in Form von „mindestens eines von A, B, und C“ oder „mindestens eines von A, B und C“, soweit nicht spezifisch anderweitig angegeben oder ansonsten mit dem Zusammenhang in deutlichem Widerspruch stehend, versteht sich ansonsten in dem Zusammenhang wie im Allgemeinen verwendet, um darzustellen, dass ein Element, ein Begriff usw. entweder A oder B oder C oder eine beliebige nicht leere Teilmenge der Menge von A und B und C sein kann. Beispielsweise beziehen sich bei einem erläuternden Beispiel einer Menge mit drei Elementen die verbindenden Ausdrücke „mindestens eines von A, B, und C“ und „mindestens eines von A, B und C“ auf eine der folgenden Mengen: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Somit ist eine derartige verbindende Ausdrucksweise im Allgemeinen nicht dazu gedacht nahezulegen, dass gewisse Ausführungsformen erfordern, dass mindestens eines von A, mindestens eines von B und mindestens eines von C jeweils vorhanden ist. Zudem, soweit nicht anderweitig angemerkt oder in Widerspruch zum Zusammenhang stehend, gibt der Begriff „Vielzahl“ einen pluralischen Zustand an (z. B. gibt „eine Vielzahl von Elementen“ mehrere Elemente an). Eine Vielzahl entspricht mindestens zwei Elementen, kann jedoch mehreren entsprechen, wenn dies entweder explizit oder durch den Zusammenhang angegeben ist. Ferner bedeutet, soweit nicht anders angegeben oder ansonsten aus dem Zusammenhang hervorgehend, der Ausdruck „basierend auf‟ „mindestens teilweise basierend auf‟ und nicht „nur basierend auf‟.
  • Die Operationen von hier beschriebenen Prozessen können in einer beliebigen Reihenfolge ausgeführt werden, soweit hier nicht anderweitig angegeben oder ansonsten in deutlichem Widerspruch mit dem Zusammenhang stehend. Bei mindestens einer Ausführungsform wird ein Prozess, wie etwa die hier beschriebenen Prozesse (oder Varianten und/oder Kombinationen davon), unter der Kontrolle eines oder mehrerer Computersysteme, die mit ausführbaren Befehlen konfiguriert sind, ausgeführt und ist als Code umgesetzt (z. B. als ausführbare Befehlen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), der zusammen auf einem oder mehreren Prozessoren, auf Hardware oder Kombinationen davon abläuft. Bei mindestens einer Ausführungsform wird der Code auf einem computerlesbaren Speichermedium gespeichert, beispielsweise in der Form eines Computerprogramms, das eine Vielzahl von Befehlen umfasst, die von einem oder mehreren Prozessoren ausführbar sind. Bei mindestens einer Ausführungsform ist ein computerlesbares Speichermedium ein nicht vorübergehendes computerlesbares Speichermedium, das vorübergehende Signale ausschließt (z. B. eine sich ausbreitende transiente elektrische oder elektromagnetische Übertragung), umfasst jedoch nicht vorübergehende Datenspeicherungsschaltungen (z. B. Pufferspeicher, Cache und Warteschlangen) innerhalb von Transceivern von vorübergehenden Signalen. Bei mindestens einer Ausführungsform wird der Code (z. B. ausführbarer Code oder Source-Code) in einer Menge von einem oder mehreren nicht vorübergehenden computerlesbaren Speichermedien gespeichert, auf denen ausführbare Befehlen gespeichert sind (oder einem anderen Speicher zum Speichern von ausführbaren Befehlen), die bei ihrer Ausführung (d. h. infolge ihrer Ausführung) durch einen oder mehrere Prozessoren eines Computersystems bewirken, dass das Computersystem die hier beschriebenen Operationen ausführt. Eine Menge von nicht vorübergehenden computerlesbaren Speichermedien umfasst bei mindestens einer Ausführungsform mehrere nicht vorübergehende computerlesbare Speichermedien, und ein oder mehrere von einzelnen nicht vorübergehenden Speichermedien von mehreren nicht vorübergehenden computerlesbaren Speichermedien weisen keinerlei Code auf, während mehrere nicht vorübergehende computerlesbare Speichermittel insgesamt den gesamten Code speichern. Bei mindestens einer Ausführungsform werden ausführbare Befehle ausgeführt, so dass verschiedene Befehle von verschiedenen Prozessoren ausgeführt werden - beispielsweise speichert ein nicht vorübergehendes computerlesbares Speichermedium Befehle, und eine Hauptzentraleinheit („CPU“) führt einige der Befehle aus, während ein Grafikprozessor („GPU“) andere Befehle ausführt. Bei mindestens einer Ausführungsform weisen verschiedene Komponenten eines Computersystems getrennte Prozessoren auf, und verschiedene Prozessoren führen verschiedene Teilmengen von Befehlen aus.
  • Entsprechend sind bei mindestens einer Ausführungsform die Computersysteme konfiguriert, um einen oder mehrere Dienste umzusetzen, die einzeln oder insgesamt Operationen von hier beschriebenen Prozessen ausführen, und diese Computersysteme sind mit anwendbarer Hardware und/oder Software konfiguriert, die das Ausführen der Operationen ermöglicht bzw. ermöglichen. Ferner ist ein Computersystem, das mindestens eine Ausführungsform der vorliegenden Offenbarung umsetzt, eine einzelne Vorrichtung, und ist bei einer anderen Ausführungsform ein verteiltes Computersystem, das mehrere Vorrichtungen umfasst, die unterschiedlich funktionieren, so dass das verteilte Computersystem die hier beschriebenen Operationen ausführt, und so dass eine einzelne Vorrichtung nicht alle Operationen ausführt.
  • Die Verwendung sämtlicher Beispiele oder einer beispielhaften Ausdrucksweise (z. B. „wie etwa“), die hier bereitgestellt wird, ist nur dazu gedacht, die Ausführungsformen der Offenbarung besser zu beleuchten und bedeutet keine Einschränkung des Umfangs der Offenbarung, soweit nicht anderweitig beansprucht. Keine Ausdrucksweise in der Beschreibung ist dahingehend auszulegen, dass sie irgendein nicht beanspruchtes Element als für die Umsetzung der Offenbarung in die Praxis wesentlich angibt.
  • Alle Referenzen, einschließlich Veröffentlichungen, Patentanmeldungen und Patenten, die hier erwähnt werden, werden hiermit zur Bezugnahme übernommen, als ob jede Referenz einzeln und spezifisch angegeben wäre, durch Bezugnahme übernommen zu sein, und hier vollständig dargelegt wäre.
  • In der Beschreibung und den Ansprüchen können die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. Es versteht sich, dass diese Begriffe eventuell nicht als Synonyme füreinander gedacht sind. Vielmehr kann bei bestimmten Beispielen „verbunden“ oder „gekoppelt“ verwendet werden, um anzugeben, dass zwei oder mehrere Elemente in direktem oder indirektem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt“ kann auch bedeuten, dass zwei oder mehrere Elemente nicht in direktem Kontakt miteinander stehen, jedoch dennoch miteinander zusammenwirken oder interagieren.
  • Soweit nicht spezifisch anderweitig angegeben, versteht es sich, dass sich in der Beschreibung Begriffe, wie etwa „Verarbeitung“, „Datenverarbeitung“, „Berechnung“, „Bestimmung“ oder dergleichen, auf eine Aktion und/oder Prozesse eines Computer- oder Datenverarbeitungssystems oder einer ähnlichen elektronischen Computervorrichtung, die Daten, die als physische, wie etwa elektronische, Größen innerhalb der Register und/oder Speicher des Computersystems dargestellt sind, manipuliert und/oder in Daten, die ähnlich als physische Größen innerhalb der Speicher, Register oder einer anderen derartigen Informationsspeicherungs-, Übertragungs- oder Anzeigevorrichtungen dargestellt sind, umwandelt, beziehen.
  • Ähnlich kann sich der Begriff „Prozessor“ auf eine beliebige Vorrichtung oder einen Teil einer Vorrichtung, die elektronische Daten aus Registern und/oder Speicher verarbeitet, und diese elektronischen Daten in andere elektronische Daten, die in Registern und/oder Speicher gespeichert werden können, umwandelt, beziehen. Als nicht einschränkende Beispiele kann der „Prozessor“ eine CPU oder eine GPU sein. Eine „Computerplattform“ kann einen oder mehrere Prozessoren umfassen. Wie der Begriff hier verwendet wird, können „Software-“ Prozesse beispielsweise Software- und/oder Hardware-Entitäten umfassen, die im Verlauf der Zeit eine Arbeit, wie etwa Aufgaben, Threads und intelligente Agenten, ausführen. Auch kann sich jeder Prozess auf mehrere Prozesse beziehen, um Befehle der Reihe nach oder parallel, kontinuierlich oder intermittierend auszuführen. Die Begriffe „System“ und „Verfahren“ werden hier austauschbar verwendet, insofern ein System ein oder mehrere Verfahren ausbilden kann, und die Verfahren als System angesehen werden können.
  • In der vorliegenden Druckschrift kann Bezug auf das Erzielen, Erfassen, Empfangen oder Eingeben von analogen oder digitalen Daten in ein Teilsystem, ein Computersystem oder eine computerumgesetzte Maschine genommen werden. Das Erzielen, Erfassen, Empfangen oder Eingeben von analogen und digitalen Daten kann auf unterschiedliche Art und Weise erfolgen, wie etwa durch das Empfangen von Daten als Parameter eines Funktionsaufrufs oder eines Aufrufs an eine Anwendungsprogrammierschnittstelle. Bei einigen Umsetzungen kann der Prozess des Erzielens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übertragen von Daten über eine serielle oder parallele Schnittstelle erfolgen. Bei einer anderen Umsetzung kann der Prozess des Erzielens, Erfassens, Empfangens oder Eingebens von analogen oder digitalen Daten durch das Übertragen von Daten über ein Computernetzwerk von einer bereitstellenden Entität an eine erfassende Entität erfolgen. Es kann auch auf das Bereitstellen, Ausgeben, Übertragen, Senden oder Präsentieren von analogen oder digitalen Daten Bezug genommen werden. Bei diversen Beispielen kann der Prozess des Bereitstellens, Ausgebens, Übertragens, Sendens oder Präsentierens von analogen oder digitalen Daten durch das Übertragen von Daten als Ein- oder Ausgangsparameter eines Funktionsaufrufs, eines Parameters einer Anwendungsprogrammierschnittstelle oder eines Kommunikationsmechanismus zwischen Prozessen erfolgen.
  • Obwohl die obige Diskussion beispielhafte Umsetzungen von beschriebenen Techniken darlegt, können andere Architekturen verwendet werden, um die beschriebene Funktion umzusetzen, und sind dazu gedacht, im Umfang der vorliegenden Offenbarung zu liegen. Obwohl ferner spezifische Verteilungen von Verantwortungen zuvor zum Zweck der Diskussion definiert wurden, könnten nach Maßgabe der Umstände diverse Funktionen und Verantwortungen andersartig verteilt und aufgeteilt werden.
  • Obwohl ferner der Gegenstand in einer Ausdrucksweise beschrieben wurde, die für strukturelle Merkmale und/oder methodische Aktionen spezifisch ist, versteht es sich, dass der in den beiliegenden Ansprüchen beanspruchte Gegenstand nicht unbedingt auf die beschriebenen spezifischen Merkmale und Aktionen eingeschränkt ist. Vielmehr werden spezifische Merkmale und Aktionen als beispielhafte Formen zum Umsetzen der Ansprüche offenbart.

Claims (20)

  1. Verfahren, umfassend: Erzeugen eines schnellen historischen Einzelbildes für ein gerendertes Einzelbild; Bestimmen, aus dem schnellen historischen Einzelbild, eines Bereichs von erwarteten Pixelwerten für eine Pixelstelle; Bestimmen, dass ein historischer Pixelwert für die Pixelstelle aus einem vollständigen historischen Einzelbild außerhalb des Bereichs von erwarteten Pixelwerten liegt; Blockieren des historischen Pixelwertes für die Pixelstelle aus dem vollständigen historischen Einzelbild auf einen blockierten historischen Wert innerhalb des Bereichs von erwarteten Pixelwerten; Bestimmen eines Betrags an räumlichem Filtern, der auf die Pixelstelle anzuwenden ist, basierend mindestens teilweise auf einer Differenz zwischen dem historischen Wert und dem blockierten historischen Wert; und Ausführen einer Bildrekonstruktion teilweise durch Mischen eines aktuellen Wertes für die Pixelstelle des aktuellen Einzelbildes mit dem blockierten historischen Wert und Anwenden des bestimmten Betrags an räumlichem Filtern.
  2. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen des Betrags an anzuwendendem räumlichen Filtern unter Verwendung einer Filtergewichtung, die einer Differenz zwischen dem historischen Wert und dem blockierten historischen Wert, die mit einem spezifizierten Einzelwert multipliziert wird, entspricht.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Betrag an anzuwendendem räumlichen Filtern zu einem Standardbetrag an anzuwendendem räumlichen Filtern an einer oder mehreren Pixelstellen während der Bildrekonstruktion hinzukommt.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Betrag an anzuwendendem räumlichen Filtern einem Weichzeichnungsradius für eine gaußsche Weichzeichnung entspricht, die auf die Pixelstelle nach dem Mischen anzuwenden ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Bereitstellen eines Bildes, das sich aus der Bildrekonstruktion ergibt, für einen zeitlichen Anhäufungsprozess zum Aktualisieren des schnellen historischen Einzelbildes und des vollständigen historischen Einzelbildes und Speichern in jeweiligen Pufferspeichern für die Bildrekonstruktion.
  6. Verfahren nach Anspruch 5, ferner umfassend: Bestimmen einer ersten zeitlichen Anhäufungsgewichtung zum Erzeugen des schnellen historischen Einzelbildes und einer zweiten zeitlichen Anhäufungsgewichtung zum Erzeugen des vollständigen historischen Einzelbildes, wobei die erste zeitliche Anhäufungsgewichtung höher als die zweite zeitliche Anhäufungsgewichtung ist.
  7. Verfahren nach Anspruch 6, wobei die erste zeitliche Anhäufungsgewichtung ungefähr 0,5 ist und die zweite zeitliche Anhäufungsgewichtung ungefähr 0,05 ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Bereich von erwarteten Pixelwerten basierend mindestens teilweise auf einer Menge von schnellen Pixelwerten bestimmt wird, die aus einer Pixelumgebung, welche die Pixelstelle in dem schnellen historischen Einzelbild umgibt, bestimmt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, ferner umfassend: Bestimmen, aus einem zweiten gerenderten Einzelbild, einer zweiten Menge von schnellen Pixelwerten, die einer Pixelstelle entsprechen; Bestimmen eines zweiten Bereichs von erwarteten Pixelwerten basierend mindestens teilweise auf der zweite Menge von schnellen Pixelwerten; Bestimmen, dass ein aktualisierter historischer Pixelwert aus dem vollständigen historischen Einzelbild in dem zweiten Bereich von erwarteten Pixelwerten liegt; und Bestimmen, nur einen Standardbetrag an räumlichem Filtern an der Pixelstelle anzuwenden.
  10. System, umfassend: einen Prozessor; und einen Speicher, der Befehle umfasst, die, wenn sie von dem Prozessor ausgeführt werden, das System veranlassen zum: Erzeugen eines schnellen historischen Einzelbildes für ein gerendertes Einzelbild; Bestimmen aus dem schnellen historischen Einzelbild eines Bereichs von erwarteten Pixelwerten für eine Pixelstelle; Bestimmen, dass ein historischer Pixelwert für die Pixelstelle aus einem vollständigen historischen Einzelbild außerhalb des Bereichs von erwarteten Pixelwerten liegt; Blockieren des historischen Pixelwertes für die Pixelstelle aus dem vollständigen historischen Einzelbild auf einen blockierten historischen Wert innerhalb des Bereichs von erwarteten Pixelwerten; Bestimmen eines Betrags an räumlichem Filtern, der auf die Pixelstelle anzuwenden ist, basierend mindestens teilweise auf einer Differenz zwischen dem historischen Wert und dem blockierten historischen Wert; und Ausführen einer Bildrekonstruktion teilweise durch Mischen eines aktuellen Wertes für die Pixelstelle des aktuellen Einzelbildes mit dem blockierten historischen Wert, und Anwenden des bestimmten Betrags an räumlichem Filtern.
  11. System nach Anspruch 10, wobei die Befehle, wenn sie ausgeführt werden, das System ferner veranlassen zum: Bestimmen des Betrags an anzuwendendem räumlichen Filtern unter Verwendung einer Filtergewichtung, die einer Differenz zwischen dem historischen Wert und dem blockierten historischen Wert, die mit einem spezifischen Einzelwert multipliziert wird, entspricht.
  12. System nach Anspruch 10 oder 11, wobei der Betrag an anzuwendendem räumlichen Filtern zu einem Standardbetrag an anzuwendendem räumlichen Filtern an Pixelstellen während der Bildrekonstruktion hinzukommt.
  13. System nach einem der Ansprüche 10 bis 12, wobei der Betrag an anzuwendendem räumlichen Filtern einem Weichzeichnungsradius für eine gaußsche Weichzeichnung entspricht, die an der Pixelstelle nach dem Mischen anzuwenden ist.
  14. System nach einem der Ansprüche 10 bis 13, wobei die Befehle, wenn sie ausgeführt werden, das System ferner veranlassen zum: Bereitstellen eines Bildes, das sich aus der Bildrekonstruktion ergibt, für einen zeitlichen Anhäufungsprozess zum Aktualisieren des schnellen historischen Einzelbildes und des vollständigen historischen Einzelbildes, und Speichern in jeweiligen Pufferspeichern für die Bildrekonstruktion.
  15. System nach Anspruch 14, wobei die Befehle, wenn sie ausgeführt werden, das System ferner veranlassen zum: Bestimmen einer ersten zeitlichen Anhäufungsgewichtung zum Erzeugen des schnellen historischen Einzelbildes und einer zweiten zeitlichen Anhäufungsgewichtung zum Erzeugen des vollständigen historischen Einzelbildes, wobei die erste zeitliche Anhäufungsgewichtung höher als die zweite zeitliche Anhäufungsgewichtung ist.
  16. Verfahren, umfassend: Identifizieren einer zeitlichen Änderung, die sich auf eine erste Pixelstelle in einem gerenderten Bild auswirkt; Bestimmen des anzuwendenden räumlichen Filterns an der ersten Pixelstelle basierend mindestens teilweise auf der zeitlichen Änderung; und Anwenden des räumlichen Filterns an der ersten Pixelstelle, um ein Ausgangsbild zu erzeugen, wobei mindestens entweder eine andere Art oder ein anderer Betrag an räumlichem Filtern an einer zweiten Pixelstelle in dem gerenderten Bild anzuwenden ist, das nicht von der zeitlichen Änderung betroffen ist.
  17. Verfahren nach Anspruch 16, wobei die zeitliche Änderung mindestens einem von einem zeitlichen Gradienten, einem räumlichen Gradienten, einer Okklusionsgeschwindigkeit oder einer Differenz zwischen blockierten und historischen Pixelwerten an der Pixelstelle entspricht.
  18. Verfahren nach Anspruch 16 oder 17, wobei ein Betrag an anzuwendendem räumlichen Filtern unter Verwendung einer Filtergewichtung, die einer Größe der zeitlichen Änderung multipliziert mit einem Skalar entspricht, bestimmt wird.
  19. Verfahren nach einem der Ansprüche 16 bis 18, wobei das anzuwendende räumliche Filtern zu einem Standardbetrag an anzuwendendem räumlichen Filtern an Pixelstellen während der Erzeugung des Ausgangsbildes hinzukommt.
  20. Verfahren nach einem der Ansprüche 16 bis 19, wobei das anzuwendende räumliche Filtern einer gaußschen Weichzeichnung mit einem bestimmten Weichzeichnungsradius entspricht.
DE102021125897.9A 2020-10-09 2021-10-06 History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung Pending DE102021125897A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/067,430 2020-10-09
US17/067,417 2020-10-09
US17/067,430 US11232544B1 (en) 2020-10-09 2020-10-09 History clamping for denoising dynamic ray-traced scenes using temporal accumulation
US17/067,417 US11216916B1 (en) 2020-10-09 2020-10-09 History clamping for denoising dynamic ray-traced scenes using temporal accumulation

Publications (1)

Publication Number Publication Date
DE102021125897A1 true DE102021125897A1 (de) 2022-04-14

Family

ID=79169496

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102021125774.3A Pending DE102021125774A1 (de) 2020-10-09 2021-10-05 History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung
DE102021125897.9A Pending DE102021125897A1 (de) 2020-10-09 2021-10-06 History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102021125774.3A Pending DE102021125774A1 (de) 2020-10-09 2021-10-05 History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung

Country Status (3)

Country Link
US (4) US11232544B1 (de)
CN (2) CN114331861A (de)
DE (2) DE102021125774A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102339619B1 (ko) * 2020-11-19 2021-12-17 광주과학기술원 이미지 품질향상장치, 이미지 품질향상방법
CN117812236A (zh) * 2022-09-27 2024-04-02 万有引力(宁波)电子科技有限公司 图像处理器、处理方法、存储介质及扩展现实显示装置
GB2624854A (en) * 2022-11-24 2024-06-05 Advanced Risc Mach Ltd System, devices and/or processes for application of an intensity derivative for temporal image stability

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729672A (en) * 1993-07-30 1998-03-17 Videologic Limited Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
US6674430B1 (en) * 1998-07-16 2004-01-06 The Research Foundation Of State University Of New York Apparatus and method for real-time volume processing and universal 3D rendering
EP1580694A1 (de) * 2004-03-22 2005-09-28 STMicroelectronics S.r.l. Bildgenerierung mit adaptiver Antialias-Filterung
US8811769B1 (en) * 2012-02-28 2014-08-19 Lytro, Inc. Extended depth of field and variable center of perspective in light-field processing
US9727991B2 (en) * 2013-03-01 2017-08-08 Microsoft Technology Licensing, Llc Foveated image rendering
US9710957B2 (en) * 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Graphics processing enhancement by tracking object and/or primitive identifiers
US9865074B2 (en) * 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
CN107533755B (zh) * 2015-04-14 2021-10-08 皇家飞利浦有限公司 用于改进医学图像质量的设备和方法
US10438400B2 (en) * 2016-03-08 2019-10-08 Nvidia Corporation Perceptually-based foveated rendering using a contrast-enhancing filter
US10116916B2 (en) * 2016-03-17 2018-10-30 Nvidia Corporation Method for data reuse and applications to spatio-temporal supersampling and de-noising
CN107452048B (zh) * 2016-05-30 2019-03-12 网易(杭州)网络有限公司 全局光照的计算方法及装置
US10388059B2 (en) * 2016-10-03 2019-08-20 Nvidia Corporation Stable ray tracing
CN106875344B (zh) * 2016-12-21 2019-09-17 浙江大华技术股份有限公司 一种视频图像的补光处理方法及装置
US11113800B2 (en) * 2017-01-18 2021-09-07 Nvidia Corporation Filtering image data using a neural network
US10896657B2 (en) * 2017-04-17 2021-01-19 Intel Corporation Graphics with adaptive temporal adjustments
US10713752B2 (en) * 2017-06-09 2020-07-14 Sony Interactive Entertainment Inc. Temporal supersampling for foveated rendering systems
US20190035113A1 (en) * 2017-07-27 2019-01-31 Nvidia Corporation Temporally stable data reconstruction with an external recurrent neural network
WO2019046323A1 (en) * 2017-08-28 2019-03-07 Oxide Interactive, LLC LAMINATE, SPACE, PROGRAMMABLE AND ASYNCHRONOUS SURFACE GENERATION SYSTEM
CN109671393B (zh) * 2017-10-13 2020-07-31 京东方科技集团股份有限公司 一种像素补偿方法及系统、显示装置
US10762592B2 (en) * 2018-07-31 2020-09-01 Intel Corporation Point-based rendering and removal of projection noise
US10916002B2 (en) * 2018-08-31 2021-02-09 International Business Machines Corporation Enhancing temporal and spatial resolution and correcting data anomalies of remote sensed data for estimating high spatio-temporal resolution vegetation indices

Also Published As

Publication number Publication date
US11216916B1 (en) 2022-01-04
US20240029211A1 (en) 2024-01-25
CN114332250A (zh) 2022-04-12
US20220122229A1 (en) 2022-04-21
US11232544B1 (en) 2022-01-25
DE102021125774A1 (de) 2022-04-14
US11783455B2 (en) 2023-10-10
CN114331861A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
DE102021125897A1 (de) History-blockieren zum entrauschen dynamischer raytracing-szenen unter verwendung zeitlicher anhäufung
DE102021119726A1 (de) Dreidimensionale objektrekonstruktion aus einem video
DE102018117813A1 (de) Zeitlich stabile Datenrekonstruktion mit einem externen rekurrenten neuronalen Netzwerk
DE102017124573A1 (de) Systeme und verfahren zum beschneiden von neuronalen netzen für eine betriebsmitteleffiziente folgerung
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE102019103310A1 (de) Schätzer for einen optimalen betriebspunkt für hardware, die unter einer beschränkung der gemeinsam genutzten leistung/wärme arbeitet
DE102021105249A1 (de) Mikrotraining zur iterativen verfeinerung eines neuronalen netzes mit wenigen anpassungen
DE102021121332A1 (de) Bewertung von qualitativer streaming-erfahrung unter verwendung von sitzungsleistungsmetadaten
DE102018128699A1 (de) Einstellen einer Winkelabtastrate während eines Renderings unter Verwendung von Blickinformationen
DE102019216979A1 (de) Oberflächenrekonstruktion für interaktive augmented reality
DE102021109050A1 (de) Durch ein neuronales generative adversarial netzwerk unterstützte videokompression und -übertragung
DE102022112157A1 (de) Echtzeit-verbesserung für streaming-inhalt
DE102021132992A1 (de) Messen und Detektieren von Leerlaufzeiten und Erkennen der Ursachen dafür in Cloud-basierten Streaming-Anwendungen
DE112020007087T5 (de) Gleichzeitige Hashtabellen-Aktualisierungen
DE102023113190A1 (de) Identifizieren von Applikationspuffern zum Nachbearbeiten und Wiederverwenden in sekundären Applikationen
DE102021132529A1 (de) Adaptive zeitliche bildfilterung zum rendern einer realistischen beleuchtung
DE102021128286A1 (de) Adaptives abtasten mit einer zielabtastrate
DE102023105068A1 (de) Bewegungsvektoroptimierung für mehrfach refraktive und reflektierende Schnittstellen
DE102019101845B4 (de) Photorealistische Bildstilisierung unter Verwendung eines Neuronalen-Netzwerkmodells
DE112022001485T5 (de) Verfahren und einrichtungen zum synthetisieren von ansichten mit sechs freiheitsgraden aus spärlichen rgb-tiefe-eingaben
DE102019109757A1 (de) Hinzufügen von mehr realismus zu einem von einem computergenerierten bild durch glätten von gezackten kanten
DE102018127265A1 (de) Multi-einzelbild-videointerpolation mit optischem fluss
DE102022114518A1 (de) Fusionierte verarbeitung eines kontinuierlichen mathematischen operators
DE112022002137T5 (de) Hybrides differenzierbares Rendering für Lichttransportsimulationssysteme und -Anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed