DE102020123396A1 - Verfahren und system für inhaltsadaptives entrauschen zum videocodieren - Google Patents

Verfahren und system für inhaltsadaptives entrauschen zum videocodieren Download PDF

Info

Publication number
DE102020123396A1
DE102020123396A1 DE102020123396.5A DE102020123396A DE102020123396A1 DE 102020123396 A1 DE102020123396 A1 DE 102020123396A1 DE 102020123396 A DE102020123396 A DE 102020123396A DE 102020123396 A1 DE102020123396 A1 DE 102020123396A1
Authority
DE
Germany
Prior art keywords
block
noise estimate
blocks
frame
image data
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
DE102020123396.5A
Other languages
English (en)
Inventor
Yu-Ting Li
Jong Dae Oh
Yi-Jen Chiu
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE102020123396A1 publication Critical patent/DE102020123396A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Verfahren, Artikel und Systeme zum Entrauschen für Videocodieren unter Verwendung von inhaltsadaptivem zeitlichem und räumlichem Filtern.

Description

  • HINTERGRUND
  • Da Videocodieren und Streamen von Videos immer häufiger verwendet wird, wächst auch weiterhin der Bedarf an Video von hoher Qualität. In dem Codierungsprozess, in dem ein Video codiert, zu einer entfernten Berechnungsvorrichtung gesendet und decodiert wird, werden spezielle Vorverarbeitungsoperationen vor dem Codieren ausgeführt, um die Qualität der resultierenden dekomprimierten und angezeigten Bilder eines Videos besser sicherzustellen. Das kann Ausführen von Entrauschen enthalten, bevor ein Video codiert oder zum Senden zu einer anderen Vorrichtung codiert werden soll. Entrauschen bezieht sich sowohl auf das Entfernen von Rauschen aus Bildern in Form unerwünschter Punkte oder Flecken, die ein Bild verschleiern oder verwischen können, als auch Farbveränderung oder Luminanzfehler, wo die Pixel die falschen Bildwerte aufweisen. Das kann aufgrund schlechter Beleuchtung und/oder Fehlfunktion oder schlechter Qualität von Kamerasensoren oder anderer Kameraausstattung auftreten.
  • Um das Entrauschen auszuführen, kann eine Rauschschätzungstechnik verwendet werden, die das Rauschen schätzt, um das Rauschen in dem zu codierenden Bild zu identifizieren und es zu entfernen. Diese Techniken sind jedoch häufig unzureichend, weil eine Bewegung von Rahmen zu Rahmen von Bildinhalt und komplexer Bildinhalt die Fähigkeit stören, einen signifikanten Betrag zufälliger Fluktuation in Pixelwerten zu identifizieren und zu glätten oder zu entfernen.
  • Figurenliste
  • Das hier beschriebene Material ist als Beispiel und nicht zur Einschränkung in den begleitenden Figuren dargestellt. Zur Vereinfachung und Verdeutlichung der Darstellung sind in den Figuren dargestellte Elemente nicht notwendigerweise maßstabsgerecht gezeichnet. Beispielsweise können die Abmessungen einiger Elemente relativ zu anderen Elementen zur Verdeutlichung übertrieben sein. Darüber hinaus sind dort, wo es als geeignet betrachtet wurde, Bezugszeichen unter den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben; es zeigen:
    • 1 ein Bild, das Ergebnisse eines unterschätzten Rauschpegels zeigt;
    • 2 ein Bild, das Ergebnisse eines überschätzten Rauschpegels zeigt;
    • 3 eine schematische Darstellung eines herkömmlichen Videocodiersystems;
    • 4 eine schematische Darstellung eines weiteren herkömmlichen Videocodiersystems;
    • 5 eine schematische Darstellung eines Videocodiersystems mit Rauschschätzung gemäß wenigstens einer der Implementierungen hier;
    • 6 einen Ablaufplan eines Verfahrens zum inhaltsadaptiven Entrauschen für Videocodieren gemäß wenigstens einer der Implementierungen hier;
    • 7A-7C einen genauen Ablaufplan eines Verfahrens zum Entrauschen für Videocodieren gemäß wenigstens einer der Implementierungen hier;
    • 7D eine schematische Darstellung zum Erläutern von Summen der absoluten Medianabweichung gemäß wenigstens einer der Implementierungen hier;
    • 8 einen Ablaufplan räumlicher Rauschschätzungserzeugung für das Verfahren der 7A-7C gemäß wenigstens einer der Implementierungen hier;
    • 9 eine erläuternde Darstellung eines Beispielsystems;
    • 10 eine erläuternde Darstellung eines weiteren Beispielsystems; und
    • 11 eine weitere Beispielvorrichtung, die insgesamt in Übereinstimmung mit wenigstens einigen Implementierungen der vorliegenden Offenbarung ausgelegt ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine oder mehrere Implementierungen sind jetzt mit Bezug auf die beigefügten Figuren beschrieben. Obwohl spezifische Konfigurationen und Anordnungen diskutiert sind, ist zu verstehen dass das nur zu anschaulichen Zwecken so gemacht ist. Fachleute der relevanten Technik werden erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne von dem Geist und Schutzbereich der Beschreibung abzuweichen. Es wird für Fachleute der relevanten Technik offensichtlich sein, dass hier beschriebene Techniken und/oder Anordnungen auch in einer Vielzahl anderer Systeme und Anwendungen, die nicht das sind, was hier beschrieben ist, eingesetzt werden können.
  • Obwohl die folgende Beschreibung verschiedene Implementierungen darlegt, die in Architekturen wie beispielsweise Einchipsystem-Architekturen (SoC-Architekturen) ausgeprägt sein können, sind Implementierungen der hier beschriebenen Techniken und/oder Anordnungen nicht auf spezielle Architekturen und/oder Berechnungssysteme beschränkt und können durch irgendein/e Architektur und Berechnungssystem zu ähnlichen Zwecken implementiert sein. Zum Beispiel können verschiedenen Architekturen, die beispielsweise mehrere Chips oder Baugruppen mit integrierter Schaltung (IC) einsetzen, und/oder verschiedene Berechnungsvorrichtungen und/oder elektronische Unterhaltungsgeräte (CE-Geräte) wie z. B. Set-Top-Boxes, Smartphones, Tablets, Mobilgeräte, Computer usw. die hier beschriebenen Techniken und/oder Anordnungen implementieren. Darüber hinaus kann, obwohl die folgende Beschreibung zahlreiche spezifische Einzelheiten wie z. B. Logikimplementierungen, Typen und wechselseitige Beziehungen von Systemkomponenten, Wahlmöglichkeiten für Logik-Partitionierung/Integration usw. darlegen kann, der beanspruchte Gegenstand ohne solche spezifischen Einzelheiten praktiziert werden. In anderen Fällen kann einiges Material wie beispielsweise Steuerstrukturen und vollständige Software-Befehlssequenzen nicht im Einzelnen gezeigt sein, um das hier offenbarte Material nicht zu verdecken.
  • Das hier offenbarte Material kann in Hardware, Firmware, Software oder irgendeiner Kombination daraus implementiert sein. Das hier offenbarte Material kann auch als Befehle, die auf einem maschinenlesbaren Medium gespeichert sind, die durch einen oder mehrere Prozessoren gelesen und ausgeführt werden können, implementiert sein. Ein maschinenlesbares Medium kann irgendein/en Medium und/oder Mechanismus zum Speichern oder Senden von Informationen in einer durch eine Maschine (z. B. eine Berechnungsvorrichtung) lesbaren Form enthalten. Beispielsweise kann ein maschinenlesbares Medium Festwertspeicher (ROM); Direktzugriffsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen verbreiteter Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.) und andere enthalten. In einer weiteren Form kann ein nicht-transitorischer Artikel wie z. B. ein nicht-transitorisches computerlesbares Medium mit irgendeinem der vorstehend genannten Beispiele oder anderen Beispielen, außer wenn es per se kein transitorisches Signal enthält, verwendet werden. Es enthält diejenigen Elemente, die per se kein Signal sind, die Daten temporär auf eine „transitorische“ Weise halten können, wie z. B. RAM und so weiter.
  • Bezugnahmen in der Spezifikation auf „eine Implementierung“, „eine Beispielimplementierung“ usw. geben an, dass die beschriebene Implementierung ein/e spezielle/s Merkmal, Struktur oder Eigenschaft enthalten kann, doch nicht jede Implementierung notwendigerweise das/die spezielle Merkmal, Struktur oder Eigenschaft enthalten muss. Außerdem beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Implementierung. Darüber hinaus ist, wenn ein/e spezielle/s Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Implementierung beschrieben ist, mitgeteilt, dass es in dem Wissensbereich eines Fachmanns ist, ein/e solche/s Merkmal, Struktur oder Eigenschaft in Verbindung mit anderen Implementierungen, seien sie hier ausdrücklich beschrieben oder nicht, zu bewirken.
  • Systeme, Artikel und Verfahren, die sich auf inhaltsadaptives Entrauschen zum Videocodieren gemäß der Implementierungen hier beziehen, sind nachstehend beschrieben.
  • Entrauschen als Teil der Vorverarbeitung vor dem Codieren eines Videos versucht, den Codierungsgewinn (Signal-Rausch-Verhältnis (SNR) eines ursprünglichen Videos versus dem codierten Video) zu erhöhen und erhöht dadurch die Qualität des Videos. Techniken, die einfach spezielle Bilddatendurchlassebenen entfernen, wie z. B. Ausreißer, haben sich als unzureichend erwiesen. Somit sind sowohl Software- als auch Hardware-Techniken entwickelt worden, die eine identifizierbare Rauschschätzung bereitstellen, so dass Bildwerte, die mit dem identifizierten Rauschen übereinstimmen, entfernt oder in dem Bild ausgeglichen werden können.
  • Bezug nehmend auf die 1-2 basieren die herkömmlichen Rauschschätzungstechniken jedoch typischerweise auf Einzelbildrauschschätzung, die dazu neigt, den Rauschpegel von Inhalt mit starkem Rauschen, der aus Vorrichtungen geringer Qualität in einer Umgebung mit wenig Licht aufgenommen wurde, zu unterschätzen. Die Rauschschätzung durch ein herkömmliches System ist in Bild 100 mit einer niedrigen Rauschschätzung, wo massive zeitliche Fluktuationen resultierten, so dass der Rauschpegel, der aus einem einzelnen Bild geschätzt ist, den Rauschpegel nicht widerspiegelt, der durch ein menschliches visuelles System wahrgenommen wird und zu einem Bild schlechter Qualität führt, gezeigt. Ein Bild 200 zeigt das Ergebnis dieses herkömmlichen Systems, wenn Rauschschätzung auf einem Bild mit einem wahrnehmbar niedrigen (nahezu sauberen) Rauschpegel einen hohen Rauschpegel des Videoinhalts überschätzt und beispielsweise ohnehin mit einer starken Textur detektiert. Andere Soft-Schätzungstechniken können bessere Ergebnisse bereitstellen, konkurrieren jedoch häufig mit anderen Betriebsmitteln der zentralen Verarbeitungseinheit (CPU) aufgrund der Rauschschätzung mit hoher Rechenlast.
  • Bezug nehmend auf 3 ist ein herkömmliches Videocodiersystem 300 gezeigt, das nicht komprimiertes Video 302 für einen Vorprozessor 304 bereitstellt, der Entrauschungstechniken ausführt, die die erwähnte herkömmliche Rauschschätzung enthalten. Die entrauschten Videorahmen werden für einen Codierer 306 zum Codieren und dadurch Bilden von codierter Videoausgabe 308 bereitgestellt.
  • Bezug nehmend auf 4 wird in einer weiteren herkömmlichen Technik der Quantisierungsparameter (QP), der während des Codierens verwendet wird, auch verwendet, um die Filterstärke zum Entrauschen während der Vorverarbeitung von Bildern einzustellen. Je höher der QP ist, je geringer ist die Qualität des Bilds, die erwartet wird, desto stärker können die Filtergewichte eingestellt werden, um einen größeren Betrag von Rauschen aus dem Bild zu entfernen. Somit ist ein herkömmliches Videocodiersystem 400 gezeigt mit eingegebenem nicht komprimiertem Videos 402, das für eine Rauschschätzungsvorprozessoreinheit 404 bereitgestellt wird, die entrauschte Bilddaten für einen Codierer 406 bereitstellt, der den QP verwendet und das codierte Video 410 ausgibt. Der Codierparameter (der QP) 412 wird für eine Filterstärkeneinheit 408 bereitgestellt, bevor ein Bild für den Codierer 406 bereitgestellt wird, so dass sowohl der QP als auch eine Profileinstellung 414 verwendet werden können, um eine Filterstärke anzupassen. Die Profileinstellung 414 stellt die Filterstärke für spezielle Bildeigenschaften wie z. B. einen niedrigen, mittleren oder hohen Rauschpegel ein. Die Filterstärkeneinstellung wird dann für den Vorprozessor bereitgestellt, um das Entrauschen zusammen mit Rauschschätzung auszuführen, wenn sie ausgeführt wird, um bekanntes Rauschen zu identifizieren und zu entfernen.
  • Andere Rauschschätzungstechniken bestimmen eine zeitliche Rauschschätzung unter Verwendung mehrerer Rahmen, doch diese Techniken sind immer noch rechnerisch aufwändig, da alle Pixel eines Bilds analysiert werden, und sind immer noch ungenau, da sie viele Fluktuationen aus Bewegung und komplexem Inhalt erfassen und fälschlicherweise solche Änderungen als Rauschen identifizieren.
  • Um diese Probleme zu lösen, verbessern ein Verfahren und System, die hier offenbart sind, die subjektiv sichtbare Qualität oder behalten sie bei, während sie einen erhöhten Codierungsgewinn im Vergleich zu den herkömmlichen Entrauschungssystemen zum Vorverarbeiten vor dem Codieren von Videorahmenbilddaten erreichen. Das wird durch Verwenden von inhaltsadaptivem Entrauschen erreicht und beinhaltet das Bestimmen einer räumlichen Rauschschätzung durch Identifizieren von Pixelblöcken in einem Rahmen, die ausreichend gleichmäßige (oder flache oder homogene) Bilddaten aufweisen, die dazu neigen, komplexe und Bewegungs-Bilddaten, die leicht als Rauschen missverstanden werden können, zu vermeiden. Die gleichmäßigen Blöcke, anstatt aller Blöcke in dem Rahmen, werden dann verwendet, um die räumliche Rauschschätzung zu bilden, und insbesondere unter Verwendung von Mediandifferenzwerten der Blöcke, um die räumlichen Schätzungen zu bilden.
  • In einer Form wird eine zeitliche Rauschschätzung auch unter Verwendung von Unterschieden in Bilddaten von Rahmen zu Rahmen und wieder nur unter Verwendung der gleichmäßigen Blöcke, um die Schätzung zu bilden, gebildet, und dadurch werden Zufallsfluktuationen im Rauschen von Rahmen zu Rahmen ausgeglichen oder entfernt. Insbesondere können, um den Rauschpegel zeitlich zu schätzen, um zufällige Rauschfluktuationen widerzuspiegeln, aufeinanderfolgende (oder andere) Paare von Rahmen verwendet werden, um den Rauschpegel zu schätzen. Die gleichmäßigen oder homogenen Blöcke werden basierend auf statistischen Messungen ausgewählt, um besser sicherzustellen, dass Blöcke ohne komplexe Texturen und Einzelheiten in die Rauschschätzungsberechnung aufgenommen werden, und dadurch das Aufnehmen von Intensitätsvariationen von Rahmen zu Rahmen aufgrund komplexen Bildinhalts zu vermeiden. Die räumliche oder zeitliche Rauschschätzung kann dann verwendet werden, um eine Entrauschungsfilterstärke zum Entrauschen während der Vorverarbeitung zum Codieren und beispielsweise abhängig von wenigstens einem Leistungskriterium verwendet werden. Da die Filterstärken basierend auf dem Inhaltstyp adaptiv abgeleitet werden, kann der gesamte Codierungsgewinn verbessert sein.
  • Insbesondere gibt mit besseren Rauschschätzungsergebnissen, die aus rauschbehafteten jedoch weniger komplexen und statischen Bilddaten erhalten werden, der verbesserte geschätzte Rauschpegel eine Rauschfilterstärke besser an, um Rauschen auf Blöcken mit sowohl statischem als auch nicht-statischem Bildinhalt und sowohl komplexem als auch einfachem Bildinhalt zu detektieren. Das verbessert das Ausgleichen von Zufallsfluktuationen in Pixelwerten während der Vorverarbeitung vor dem Codieren eines Bilds. Die Rauschfilterungsstärke ist deshalb inhaltsadaptiv, weil sie aus den geschätzten Rauschpegeln basierend auf gleichmäßigen Blöcken abgeleitet ist, und dadurch wird eine erweiterte globale Rauschschätzung (GNE) bei Videoentrauschungs- (VDN-) Filtern bereitgestellt, um Rauschpegel von Videoinhalt zu identifizieren, und kann so betrachtet werden, dass sie den Rauschpegel, der durch ein menschliches visuelles System wahrgenommen wird, besser widerspiegelt.
  • Bezug nehmend auf 5 empfängt ein beispielhaftes Videocodiersystem 500 nicht komprimierte Videoeingabe 502 aus einem Decodierer, Speicher oder einer anderen Quelle und stellt Bildinhalt, der Bildrohinhalt sein kann, für eine Vorprozessoreinheit 504 bereit, die die Bilddaten zum Codieren formatiert. Die Vorverarbeitung kann das hier offenbarte inhaltsadaptive Entrauschen enthalten und durch eine Inhaltsrauschenschätzeinheit (Inhalts-NE-Einheit) 506 und eine Entrauschungseinheit 516 ausgeführt werden. Die vorverarbeiteten Bilddaten werden dann für einen Codierer 508 bereitgestellt, um codiertes Video 510 beispielsweise zum Senden zu entfernten Decodierern auszugeben. Das System 500 kann das inhaltsadaptive Entrauschen dadurch ausführen, dass es zuerst die Inhalts-NE-Einheit 506 gleichmäßige Blöcke eines Bilds bestimmen lässt und dann diese Blöcke verwendet, um räumliche und zeitliche Rauschschätzungen auszuführen. Wenigstens eine der Rauschschätzungen wird dann für eine Filterstärkeneinheit 518 bereitgestellt, die als Teil der Vorprozessoreinheit 504 betrachtet werden kann oder nicht. Die Filterstärkeneinheit 518 kann sowohl die Rauschschätzungen und optional eine Profileinstellung 514 als auch eine optionale Codierungs- (QP-) Einstellung 512 aus dem Codierer 508 verwenden, um die Filterstärke einzustellen. Die Entrauschungssteuerlogik kann analytische Informationen von sowohl der Vorprozessoreinheit 504 als auch dem Codierer 508 als Eingabe zum Einstellen der inhaltsadaptiven und codierungsbewussten Vorverarbeitungsstärke erhalten. Die Filterstärke wird dann für eine Entrauschungseinheit 516 bereitgestellt, um die Filter durch Anpassen der Filtergewichte gemäß der Filterstärkeneinstellung einzustellen und dann das Filtern auszuführen, um ein Bild zu entrauschen. Sowohl andere Einzelheiten als auch experimentelle Ergebnisse, die das System von 500 mit dem herkömmlichen System 400 vergleichen, sind nachstehend bereitgestellt.
  • Bezug nehmend auf 6 ist ein Beispielprozess 600 für inhaltsadaptives Entrauschen für Videocodieren in Übereinstimmung mit wenigstens einigen Implementierungen der vorliegenden Offenbarung ausgelegt. In der dargestellten Implementierung kann der Prozess 600 eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie durch eine oder mehrere der geradzahlig nummerierten Operationen 602 bis 608 dargestellt ist. Als nicht einschränkendes Beispiel kann der Prozess 600 hier mit Bezug auf die Beispielsysteme 500 oder 900 der 5 bzw. 9 und wie hier diskutiert beschrieben werden.
  • Der Prozess 600 kann „Erhalten von Bilddaten von Rahmen einer Videosequenz“ 602 enthalten, und das kann das Erhalten nicht komprimierter Bilddaten entweder von einem Decodierer zum erneuten Codieren der Bilddaten wie z. B. in einem Transcodierer enthalten, oder es könnten Bildrohdaten sein, die von einer Kamera erhalten werden. Die Bilddaten können sowohl als Rohdaten oder mit einiger Formatbearbeitung aus einem Speicher erhalten werden. In einer Form kann das auch das Vorverarbeiten der Bilddaten wenigstens ausreichend zum Entrauschen enthalten, wie z. B. dass sie „demosaiced“ werden und so weiter.
  • Der Prozess 600 kann „Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen wenigstens teilweise basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt“ 604 enthalten. Diese Operation beinhaltet zuerst das Bestimmen, ob Blöcke auf einem aktuellen Bild als ausreichend gleichmäßig betrachtet werden, um Änderungen am komplexen Inhalt in den Blöcken, der fälschlicherweise als Rauschen betrachtet werden könnte, zu vermeiden. Das wird unter Verwendung von Mediandifferenzen mit Pixelbilddatenwerten wie z. B. Intensitäts- oder Luminanzwerten bestimmt. Als ein Beispiel werden für jedes Pixel in einem Block und ähnlich zu einer absoluten Medianabweichung (MAD) eine Differenz zwischen einem Median von Pixelwerten innerhalb eines Nachbarfensters des Blockpixels und jedem Pixelwert innerhalb des Nachbarfensters summiert. Somit werden die Differenzen summiert, um eine einzige Mediandifferenzsumme für das Blockpixel bereitzustellen, und das wird für jedes Pixel in einem Block wiederholt. Die Mediansumme (oder die Mediandifferenzsumme) für jedes Pixel wird dann gemittelt, um eine Blockmittel-MAD-Summe für jeden Block bereitzustellen. Die Mediandifferenzsummen in einem Block werden dann analysiert, um zu bestimmen, ob diese Summen innerhalb eines Gleichmäßigkeitsbereichs sind, und Pixelwerte werden außerdem mit einem Schwellenwert verglichen. Die Bilddaten des Blocks werden auch analysiert, um zu bestimmen, ob eine Kante eines Objekts in dem Inhalt des Blocks detektiert wird. Das kann unter Verwendung von Kantendetektionsalgorithmen ausgeführt werden. Falls diese Kriterien erfüllt sind und der Block keinen Kanteninhalt aufweist, wird dann der Block zumindest initial als ein gleichmäßiger Block betrachtet. Um ausreichend gleichmäßig für die Aufnahme in die Erzeugung einer räumlichen Rauschschätzung zu sein, kann ein weiterer Test verwendet werden, in dem die kleinste MAD-Summe eines Blockpixels und innerhalb eines gleichmäßigen Kandidatenblocks kleiner sein sollte als ein Schwellenwert für räumliches Rauschen. In diesem Fall ist der Mittelwert der Blockmittelwert-MAD-Summen die räumliche Rauschschätzung. Ansonsten wird ein weiterer Test ausgeführt, der die Blockmittelwert-MAD-Summen mit einem weiteren Gleichmäßigkeitsbereich für einen Block vergleicht, um ausreichend gleichmäßig zur Erzeugung der zeitlichen Rauschschätzung zu sein.
  • Der Prozess 600 kann „Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen“ 606 enthalten. Hier wird für jeden Block, für den gefunden wird, dass er ein gleichmäßiger Block ist, eine Differenz der Bilddaten zwischen dem aktuellen Rahmen und einem weiteren Rahmen, wie z. B. einem vorhergehenden Rahmen, bestimmt, wie z. B. durch Berechnen einer SAD oder STAD für den Block. Die STAD für jeden Block wird dann mit einem oder mehreren Schwellenwerten verglichen, um sicherzustellen, dass Bildinhalt mit zu viel Bewegung oder Komplexität vermieden wird. Einer der Schwellenwerte ist ein Bewegungsdetektionsschwellenwert STAD_th(n), der ein gewichteter Mittelwert des Bewegungsdetektionsschwellenwerts eines vorhergehenden Rahmens und eines geschätzten Rauschpegels eines vorhergehenden Rahmens ist. Die Anzahl gleichmäßiger Blöcke, die diese Kriterien erfüllen, (qualifizierter Blöcke) wird durch die Gesamtzahl gleichmäßiger Blöcke auf dem Rahmen, die zur zeitlichen Rauschschätzung geeignet sind, dividiert, um einen prozentualen Anteil der qualifizierten gleichmäßigen Blöcke, die den Schwellenwert erfüllen, zu erhalten. Dieser prozentuale Anteil gibt an, wie viele Blöcke Blöcke mit gleichmäßigem Rauschen mit wenig oder keiner Bewegung sind. Falls der prozentuale Anteil der qualifizierten gleichmäßigen Blöcke größer ist als ein Schwellenwert für den zeitlichen prozentualen Anteil, dann kann eine zeitliche Rahmenrauschschätzung verwendet werden, um die Filterstärke einzustellen. In diesem Fall ist der Mittelwert der qualifizierten STADS, die die Schwellenwerte erfüllen, die zeitliche Rahmenrauschschätzung, die zu verwenden ist. Wenn kein Schwellenwert für den kleinsten prozentualen Anteil von STAD-qualifizierten gleichmäßigen Blöcken erhalten wird, dann ist stattdessen die räumliche Rahmenrauschschätzung zur Anpassung der Filterstärke zu verwenden.
  • Der Prozess 600 kann dann „Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Verwenden zum Anpassen einer Entrauschungsfilterstärke zum Vorverarbeiten des aktuellen Rahmens vor dem Codieren des aktuellen Rahmens“ 608 enthalten. Wie erwähnt ist wenigstens die zeitliche oder die räumliche Rauschschätzung zu verwenden, um eine Filterstärke einzustellen. Die Filterstärke wird dann verwendet, um den aktuellen Rahmen während der Vorverarbeitung zu filtern, um den aktuellen Rahmen zum Codieren vorzubereiten.
  • Bezug nehmend auf die 7A-7C ist ein Beispielprozess 700 für inhaltsadaptives Entrauschen für Videocodieren in Übereinstimmung mit wenigstens einigen Implementierungen der vorliegenden Offenbarung ausgelegt. In der dargestellten Implementierung kann der Prozess 700 eine oder mehrere Operationen, Funktionen oder Aktionen enthalten, wie durch eine oder mehrere allgemein geradzahlig nummerierten Operationen 702 bis 750 dargestellt ist. Als nicht einschränkendes Beispiel kann der Prozess 700 hier mit Bezug auf die Beispielsysteme 500 oder 900 der 5 bzw. 9 und wie hier diskutiert beschrieben werden.
  • Der Prozess 700 kann „Erhalten von Bilddaten eines Rahmens eines Videos“ 702 enthalten, und das können, wie vorstehend mit dem Prozess 600 erwähnt, nicht komprimierte Bilddaten sein, die aus einem Decodierer, einem Speicher mit Bildrohdaten aus einem oder mehreren Kamerasensoren, aus anderen Quellen oder Speicher und so weiter erhalten werden, um dann codiert zu werden.
  • Der Prozess 700 kann „ausreichendes Vorverarbeiten zum Entrauschen“ 704 enthalten, und das enthält Vorverarbeitung, die zum Ausführen von Entrauschen ausreichend ist. Das kann Bayer-„Demosaicing“ und andere Vorverarbeitungstechniken enthalten. Sobald das Entrauschen für ein Bild zum Codieren fertiggestellt ist, können dann andere Codierer-Vorverarbeitungstechniken angewandt werden, wie z. B. Bildpixellinearisierung, „Shading“-Kompensation, Auflösungsreduktion, Schablonen-Eliminierung, Bildschärfung und so weiter. Diese Techniken können nach dem Entrauschen und vor dem Bereitstellen der Bilddaten für einen Codierer angewandt werden. Das ist nachstehend angenommen und wird nicht noch einmal erwähnt.
  • Der Prozess 700 kann „Erzeugen eines Mittelwerts der Summen der absoluten Medianabweichung (MAD) pro Block“ 706 enthalten. Somit nutzt der vorgeschlagene Rauschschätzungsmechanismus Werte vom Typ einer absoluten Medianabweichung (MAD). Das kann mit „für jedes aktuelle Pixel in einem Block Bestimmen der Summe der Differenzen zwischen (1) einem Median aller Pixelwerte in einem Nachbarschaftsfenster, wobei ein aktuelles Blockpixel in der Mitte des Fensters analysiert wird, und (2) jedem Nachbarschaftsfensterpixelwert“ 708 beginnen. Bezug nehmend auf 7D zeigt ein Abschnitt eines Gitter oder eines 2D-Anordnung 790 von Pixeln 792, der einen Rahmen in einer Videosequenz bildet, wie eine MAD-Summe für jedes Pixel 796 in einem Block von Pixeln 794, hier von 1 bis 16 für einen 4x4-Block nummeriert, bestimmt werden kann. Die MAD-Summe ist die Summe der absoluten Differenz zwischen dem Medianbilddatenwert in einem Nachbarschaftsfenster 798 um das Pixel 796 und dem Bilddatenwert jedes Nachbarschaftsfensterpixels 795 in dem Nachbarschaftsfenster 798. Für eine herkömmliche MAD-Bestimmung wird der Medianwert dieser Mediandifferenzen als die Ausgabe verwendet. Hier ist jedoch die MAD-Summe stattdessen die Summe dieser Differenzen in dem Nachbarschaftsfenster 798 und ist deshalb als MAD-Summe und nicht nur als eine MAD bezeichnet. In einer Form wird die MAD-Summe für jedes 3x3-Nachbarschaftsfenster 798 für 9 Pixel berechnet, obwohl andere Größen verwendet werden könnten. Das Fenster 798 wird durch Platzieren jedes Pixels des Blocks 794 in der Mitte des Nachbarschaftsfensters 798 lokalisiert. Die mittlere MAD-Summe aller Pixel 796 in dem Block 794 wird dann als das Gleichmäßigkeitsmaß des Blocks 794 verwendet. Das kann durch die folgende Gleichung bereitgestellt sein: MAD ave-sum-k = p = 0 P ( M A D   s u m ) p / P = p = 0 P ( n p = 0 N P M p I n p ) p / P
    Figure DE102020123396A1_0001
  • wobei für einen Block k das Nachbarschaftsfenster so positioniert ist, dass jedes Pixel p von 1 bis P in einem Block k in der Mitte des Nachbarschaftsfensters 798 platziert ist. np ist der Pixelzählwert oder die Position mit 1 bis NP Pixel in dem Nachbarschaftsfenster 798. Mp ist der Medianbilddatenwert (wie z. B. Intensitätswert) für das Pixel p und aus den np Pixeln in dem Nachbarschaftsfenster 798, wobei jedes Nachbarschaftsfensterpixel np einen Intensitäts- (oder Helligkeits- oder Luminanz-) Wert Inp aufweist. Es wird darauf hingewiesen, dass die MAD-Summe für Chroma-Ebenen als auch für eine Intensitätsebene berechnet werden könnte. Der Block k 794 ist hier zu erläuternden Zwecken als 4x4 gezeigt, kann jedoch tatsächlich eine 8x8-,16x4-, 16x16-Makroblockgröße, 32x32, 64x64 oder andere wünschenswerte Größen sein.
  • Die mittlere MAD-Summe (MADave-sum-k) oder Blockmittelwert-MAD-Summe eines Blocks 794 kann als die Block-Rauschschätzung (bne) in der nachstehenden Diskussion oder sigma avg in dem nachstehend bereitgestellten Pseudo-Code bezeichnet sein. Die Blockmittelwert-MAD-Summe kann durch Dividieren der Summe jeder Pixelmediandifferenzsumme durch die Anzahl von Pixeln P in dem Block berechnet werden. In einer Form ist es in Pseudo-Code gezeigt als: sigma = sigma_sum shift; //shift = ( chroma ) 3 : 4
    Figure DE102020123396A1_0002
  • was sich auf eine Bit-Verschiebung, um die Division auszuführen, und durch Verwenden von 3 für einen Chroma-Block und 4 für einen Luma-Block bezieht.
  • Danach kann der Prozess 700 „Finden des Mediandifferenzbereichs (noise_max, noise_min) pro Block“ 710 enthalten, und während die Mediandifferenzen summiert werden, um die Blockmittelwert-MAD-Summe zu berechnen, kann das Verfahren die Differenzwerte verfolgen und die höchste Mediandifferenzsumme (noise_max) und die niedrigste Mediandifferenzsumme (Noise_min) für einen Block bestimmen, um einen Mediandifferenzbereich pro Block einzustellen. Dann kann der Prozess 700 „Vergleichen des Mediandifferenzbereichs pro Block mit dem bne-Rauschschwellenwert“ 712 enthalten, wobei ein Schwellenwert durch Experiment bestimmt wird, um einen ausreichend gleichmäßigen Bereich einzustellen, um einen gleichmäßigen Block herzustellen. Das stellt sicher, dass gefunden wird, dass die Blockmittelwert-Homogenität (Blockmittelwert-MAD-Summe) unter allen Pixeln in den Blöcken innerhalb eines Schwellenwertbereichs ist. In einem möglichen Beispiel kann die Bereichsgrenze 0 bis 255 (x 8 wenn die Eingabe 8 Bit ist) sein.
  • Als Nächstes kann der Prozess 700 „Vergleichen der Pixelwerte im Block mit hohen und niedrigen Schwellenwerten“ 714 enthalten, und Vergleichen der Pixelintensitäts- (oder Chroma-) Werte mit Schwellenwerten ValidPixelLowThreshold und ValidPixelHighThreshold, um Pixel, die zu dunkel oder zu hell sind, oder mit anderen Worten Ausreißer, auszuschließen, die unerwünschterweise einen zu großen Einfluss auf eine Rahmenrauschenschätzung haben könnten. Diese Pixelschwellenwerte können auch durch Experiment bestimmt werden.
  • Für diese Blöcke mit einem Bereich von Mediansummen innerhalb eines Schwellenwertbereichs und mit Pixelwerten innerhalb der Pixelschwellenwerte werden diese Blöcke bisher als ausreichend gleichmäßig betrachtet und werden dann getestet, um zu bestimmen, ob der Block eine Kante in seinem Bildinhalt enthält. Andernfalls wird der Block als nicht ausreichend gleichmäßig verworfen.
  • Dann kann der Prozess 700 „Eliminieren von Blöcken, die Teil einer Kante sind“ 716 enthalten. Hier können die Bilddaten wie z. B. Intensitäten (oder Chroma-Werte) der Blockmittelwert-MAD-Summe auch mit Kantendetektionsschwellenwerten verglichen werden, die dazu neigen anzugeben, dass die MAD Teil einer Kante ist anstatt eines gleichmäßigeren Teils eines Objekts in einem Bild. In einer Herangehensweise kann das zwei unterschiedliche Randschwellenwerttests enthalten, einen einzigen Sobel-Kantendetektionstest und einen Acht-KantenDetektionstest, obwohl andere Tests verwendet werden könnten. Beide Tests werden hier verwendet, weil horizontale und vertikale Kanten besser durch Sobel-Kantendetektion detektiert werden, während andere diagonale Kanten besser durch die Acht-Richtungs-Kantendetektionstechnik detektiert werden.
  • Um diese Kantentests auszuführen, kann der Prozess 700 „Vergleichen eines Kantenmaßes mit einem Block-Rauschensch.- (bne-) Schwellenwert (bne_edge_th)“ 718 und das Ausführen der Sobel-Kantendetektion für die Pixel in einem Block, der als ein gleichmäßiger Block betrachtet wird, der bisher die anderen Kriterien erfüllt hat, enthalten. Die Sobel-Kantendetektion ist eine bekannte Technik. Für den zweiten Test kann der Prozess 700 „Vergleichen von eight_edge_measure mit eight _edge_th-Schwellenwert“ 720 enthalten, was ebenfalls eine bekannte Technik zum Detektieren von Kanten ist. Diese Schwellenwerte werden durch Experiment bestimmt, und falls beide Tests nicht bestanden werden, wird der Block so betrachtet, dass er Kanteninhalt aufweist, und wird verworfen.
  • Der Prozess 700 kann „Einstellen von Blöcken, die die Kriterien erfüllen, als gleichmäßige Blöcke, die zur zeitlichen Rauschschätzung zu verwenden sind“ 722 enthalten, und das kann durch Einstellen eines Flag oder einer Bit-Nummer für jeden Block in dem Speicher oder in einer Tabelle, die beispielsweise wenigstens initial angibt, dass der Block bisher als ein gleichmäßiger Block betrachtet wird, ausgeführt werden, obwohl sowohl räumliche als auch zeitliche Rauschschätzungserzeugung weitere Gleichmäßigkeitstests bereitstellen, wie nachstehend beschrieben ist, bevor die Daten des Blocks für die Rauschschätzung verwendet werden.
  • Andererseits können die gleichmäßigen Blöcke auch verwendet werden, um eine räumliche RahmenRauschschätzung zu erzeugen, die als Alternative für eine zeitliche Rauschschätzung, die nachstehend erzeugt wird, verwendet werden kann. Die Erzeugung der räumlichen Rauschschätzung wird durch den nachstehend beschriebenen Prozess 800 (8) behandelt.
  • Weiter jetzt mit dem zeitlichen Abschnitt von Prozess 700 kann der Prozess 700 „Berechnen der Summe zeitlicher absoluter Differenz (STAD) pro gleichmäßigem Block für alle gleichmäßigen Blöcke eines Rahmens“ 724 enthalten. Sobald der Block durch Erfüllen der vorstehend genannten Kriterien als ein gleichmäßiger Block bestimmt ist, kann dann die zeitliche Rauschschätzung für diesen gleichmäßigen Block berechnet werden. Eine zeitliche Rauschschätzungsmetrik auf Blockebene wird aus der Summe zeitlicher absoluter Differenz (STAD), die auf die gleiche Weise wie die Summe absoluter Differenz (SAD) berechnet wird, zwischen entsprechenden Blöcken auf zwei Rahmen und in einer Form zeitlich benachbarten Blöcken auf den zwei Rahmen, die aufeinanderfolgende Rahmen sein können, die einen aktuellen Rahmen und einen vorhergehenden Rahmen enthalten, berechnet. In einer Form sind die zwei Rahmen ein aktueller Rahmen (n) und ein fortlaufend vorhergehender gefilterter Rahmen (n - 1), es könnten jedoch auch andere Variationen verwendet werden, wie z. B. ein aktueller Rahmen und ein zukünftiger Rahmen, und drei Rahmen (aktueller, vorhergehender und zukünftiger Rahmen). Für jeden bisher gleichmäßigen Block kann die STAD berechnet werden als: STAD = | curr_blk ( x ,y ) prev_blk ( x ,y ) |
    Figure DE102020123396A1_0003
  • wobei curr_blk der aktuelle Block ist, prev_blk ein entsprechender Block auf einem vorhergehenden Rahmen in Bezug auf den aktuellen Rahmen und an denselben Koordinaten auf dem Rahmen ist, und (x, y) dieselben Pixelkoordinaten auf beiden Rahmen sind. Das Ergebnis ist eine Block-STAD (oder STAD Sk(n)), die für jeden Block k erhalten wird.
  • Der Prozess 700 kann dann „Vergleichen der Blockmittelwert-MAD-Summe mit einem Schwellenwertbereich der zeitlichen Gleichmäßigkeit“ 726 enthalten. Für einen vorläufigen Test der räumlichen Gleichmäßigkeit kann dann die Blockmittelwert-MAD-Summe für jeden initial gleichmäßigen Block erhalten werden, um mit einem oder mehreren Gleichmäßigkeitsschwellenwerten verglichen zu werden, um zu bestimmen, ob der Block ausreichend flach oder gleichmäßig (oder homogen) für zeitliche Rauschschätzung ist. Das eliminiert ferner Blöcke mit komplexen räumlichen Intensitäts- (oder Farb-) Mustern, was komplexen Inhalt mit zufälligen unerwünschten Bilddatenvariationen angibt, die als Rauschen erscheinen können und fälschlicherweise die resultierende Rauschschätzung beeinflussen. Somit kann die Blockmittelwert-MAD-Summe eines Blocks mit oberen und unteren Schwellenwerten (low_th und hi_th) verglichen werden, um Blöcke zu eliminieren, die nicht ausreichend gleichmäßig für zeitliche Rauschschätzung sind. Diese Blöcke mit einer Blockmittelwert-MAD-Summe, die innerhalb der räumlichen gleichmäßigen Schwellenwerte sind, sind hier als ausreichend gleichmäßig für zeitliche Rauschschätzung betrachtet.
  • Der Prozess 700 kann dann „Vergleichen der STAD mit einem Bewegungsdetektionsschwellenwert STAD_th“ 728 enthalten. Insbesondere kann die STAD eines Blocks noch nicht verwendet werden, um eine zeitliche Rauschschätzung zu bilden, weil die STADs auch durch hohe Rauschpegel stark beeinflusst sein können oder durch große lokale und/oder globale Bewegung und/oder Szenenänderungen verursacht sein können. Somit kann, um Blöcke mit STADs, die das Ergebnis von Szenenänderungen, Bewegung oder hohen Rauschpegeln sind, zu eliminieren, ein adaptiver Bewegungsdetektionsschwellenwert STD_th angewandt werden und kann abhängig von der geschätzten Rauschmetrik eines vorhergehenden Rahmens adaptiv angepasst werden.
  • Insbesondere sollte ein Bewegungsdetektionsschwellenwert die STAD-Werte klammern, die diesen Schwellenwert übersteigen, durch Zurücksetzen des Werts der STAD an den Schwellenwerten. Falls nur ein empirischer Schwellenwert für den STAD-Schwellenwert verwendet wird, kann ein solcher Schwellenwert den STAD-Wert aufgrund der Bewegung für ein Video mit niedrigem Rauschpegel klammern. Da jedoch die herkömmlichen Systeme diesen Schwellenwert nicht ändern, wird die STAD-Klammer auch als ein Schwellenwert für Video mit hohem Rauschpegel verwendet, der häufig zu niedrig ist. Somit ist, anstelle der Verwendung einer voreingestellten Schwellenwerts für alle Typen von Inhalt, um große STAD-Werte zu klammern, der nicht für alle Typen von Inhalt geeignet sein kann, ist der Bewegungsdetektionsschwellenwert STAD_th hier inhaltsadaptiv, da der Schwellenwert ein gewichteter Mittelwert eines vorhergehenden Bewegungsdetektionsschwellenwerts STAD_th und eines berechneten globalen Rauschschätzungs- (GNE-) Werts eines vorhergehenden Rahmens ist. Der Schwellenwert STAD_th gibt Blöcke mit wenig oder keiner Bewegung an.
  • Somit definiert die nachstehende Gleichung (4) den gewichteten Mittelwert des Bewegungsdetektionsschwellenwerts eines vorhergehenden Rahmens während sie eine Gewichtung oder einen Skalierungsfaktor, um den Einfluss der vorhergehenden zeitlichen Rauschschätzung (die die mittlere STAD des vorhergehenden Rahmens ist) auszugleichen, und den früheren STAD-Schwellenwert verwendet, um zu versuchen, die Größe der Bewegung zu reduzieren oder eine kleine Größe der Bewegung in den gleichmäßigen Blöcken, die verwendet werden sollen, um eine zeitliche Rauschschätzung für den aktuellen Rahmen zu erzeugen, beizubehalten. Hier ist der Skalierungsfaktor sf auf 1 eingestellt, und ein sf_normalizer ist auf 2 durch dieses Beispiel eingestellt. Der Skalierungsfaktor kann durch Experiment eingestellt werden. Der Schwellenwert STAD_th vermeidet außerdem das Faktorisieren großer Bewegung in die Berechnung, weil sich voraussichtlich der Rauschpegel nicht plötzlich von Rahmen zu Rahmen ändern wird, selbst wenn eine große Größe der Bewegung auftritt. Die Gleichung für den Schwellenwert STAD_th ist wie folgt. S T A D _ t h ( n ) = ( S T A D _ t h ( n 1 ) + ( G N E _ v a l u e ( n 1 ) sf ) ) / s f _ n o r m a l i z e r
    Figure DE102020123396A1_0004
  • wobei n eine Rahmenindexnummer ist, Curr(n) der aktuell Videorahmen mit dem Rahmenindex n ist und der GNE_value (n - 1) die Rauschschätzung des vorhergehenden Rahmens ist, die zur Filterstärkenanpassung verwendet wurde. Diese Rauschschätzung könnte entweder räumliche oder zeitliche Rauschschätzung des vorhergehenden oder früheren Rahmens sein. Das kann als das Konditionieren der Aggregation der gleichmäßigen Blöcke nur durch Aufnehmen derjenigen Blöcke, die den Bewegungsdetektionsschwellenwert erfüllen, betrachtet werden.
  • Danach kann der Prozess 700 „Aggregieren von Block-STADs falls die Schwellenwertkriterien erfüllt sind“ 730 enthalten, so dass alle gleichmäßigen Blöcke, die sowohl den zeitlichen Blockmittelwert-MAD-Summen-Bereichsschwellenwert als auch den Bewegungsdetektionsschwellenwert erfüllen, (als die qualifizierten Blöcke bezeichnet) in die zeitliche Bewegungsschätzung für den aktuellen Rahmen aufgenommen werden. Hier werden die STADs aller qualifizierten Blöcke für die Mittelwertberechnung summiert.
  • Der Prozess 700 kann dann „Bestimmen der mittleren STAD des Rahmens zur Verwendung als zeitliche Rauschschätzung des Rahmens“ 732 enthalten, wobei die STAD-Summe hier durch die Anzahl qualifizierter gleichmäßiger Blöcke dividiert wird. Somit mittelt das Entrauschungsverfahren alle STADs auf Blockebene (hier als Blockebenenrauschmetriken bezeichnet) auf allen qualifizierten gleichmäßigen Blöcken, um eine zeitliche Rauschmetrik auf Rahmenebene für den Rahmen zu erhalten.
  • Der Prozess 700 fährt dann fort, um zu bestimmen, ob die zeitliche oder räumliche Rauschschätzung verwendet werden sollte, um die Filterstärke für das Entrauschen des aktuellen Rahmens anzupassen. Somit kann der Prozess 700 die Abfrage „prozentualer Anteil der qualifizierten Sk(n) > 1 % Rahmen?“ 734 enthalten. In einer Form gibt der prozentuale Anteil einen prozentualen Anteil gleichmäßiger Blöcke, die alle Bedingungen für Gleichmäßigkeit und zeitliche geringe Bewegung bis zu Operation 730 erfüllen, in Bezug auf eine Gesamtzahl von Blöcken in einem Rahmen an, wie z. B. 4x4-Blöcke, die von der gleichen Größe wie die gleichmäßigen Blöcke sind. Als eine Alternative wird die Anzahl qualifizierter gleichmäßiger Blöcke auf dem aktuellen Rahmen durch die Gesamtzahl gleichmäßiger Blöcke auf dem aktuellen Rahmen, die initial durch die räumliche Blockrauschschätzung bereitgestellt wurden und die initial als gleichmäßige Blöcke zur zeitlichen Rauschschätzung vor irgendeinem der zeitlichen Schwellenwertvergleiche betrachtet wurden, geteilt. Das kann entweder vor oder nach der Operation 726 zum Testen der Blockmittelwert-MAD-Summen der gleichmäßigen Blöcke stattfinden. Der berechnete Bruchteil ist der prozentuale Anteil, der mit dem Schwellenwert für den prozentualen Anteil, der auf etwa 1 % für die Beispiele hier eingestellt ist, verglichen wird. Der Schwellenwert für den prozentualen Anteil kann durch Experiment bestimmt werden.
  • Wenn der prozentuale Anteil der tatsächlich qualifizierten gleichmäßigen Blöcke oberhalb des Schwellenwerts für den prozentualen Anteil ist, dann kann der Prozess 700 „Verwenden von zeitlicher Rauschschätzung“ 735 als die endgültige Rauschschätzung 738 enthalten, um die Filterstärke 742 anzupassen. Es gibt unterschiedliche Filterstärken. Beispielsweise falls der Rauschpegel hoch ist (der GNE-Wert hoch ist), sollten mehr Nachbarinformationen als das aktuelle Pixel verwendet werden. Um das zu erreichen, wird den Nachbarpixeln ein höheres Gewicht zugeordnet, und ein geringeres Gewicht wird auf das aktuelle Pixel gelegt. Somit kann, wie erwähnt, die Filterstärke durch Verwenden sowohl einer Profileinstellung als auch Bildqualitätseinstellung durch Erhalten des QP aus dem Codierer für den aktuellen Rahmen eingestellt werden, und je höher de QP ist, desto schlechter ist die Bildqualität, und ein stärkeres Filtergewicht wird verwendet, und umgekehrt.
  • Wenn jedoch der prozentuale Anteil der tatsächlich qualifizierten gleichmäßigen Blöcke unterhalb des Schwellenwerts für den prozentualen Anteil ist, dann kann der Prozess 700 „Rückfall zur räumlichen Rauschschätzung“ 736 enthalten, um die Filterstärke anzupassen, und wird durch den Prozess 800 (8) unter Verwendung vieler der vorstehend beschriebenen räumlichen Operationen zum Bereitstellen räumlicher Blockrauschschätzungen (der Blockmittelwert-MAD-Summen) berechnet. Andererseits sind, sobald die räumliche Rauschschätzung erzeugt ist, die restlichen Operationen gleich denjenigen zur Verwendung der zeitlichen Rauschschätzung zum Anpassen der Filterstärke.
  • Unabhängig davon, welche Rauschschätzung verwendet wird, kann der Prozess 700 dann „Ausführen zeitlichen oder räumlichen Filterns“ 744 enthalten, wobei die Entrauschungseinheit basierend auf bekannten Faktoren bestimmen wird, welcher Typ des Filterns auszuführen ist, und ist nicht dadurch eingeschränkt, ob eine räumliche oder zeitliche Rauschschätzung bereitgestellt wurde. Somit sind das in einer Form separate Überlegungen.
  • Dann kann das rauschgefilterte Ergebnis gespeichert werden 746, um einen vorhergehenden Rahmen bereitzustellen und den Rahmen zum Codieren bereitzustellen. Eine Abfrage kann ausgeführt werden, um zu bestimmen, ob mehr Rahmen vorhanden sind, 748, und falls nicht endet der Prozess. Falls ja ruft der Prozess die Bilddaten eines vorher gefilterten Rahmens für die nächsten zeitlichen Berechnungen ab 750 und kehrt in einer Schleife zurück zu Operation 724, um die zeitlichen Operationen auf dem nächsten Rahmen auszuführen, wenn die gleichmäßigen Blöcke des nächsten Rahmens (bisher) aus den Operationen 702 bis 722 bereitgestellt sind, was für jeden neuen Rahmen wiederholt wird. Außerdem wird der genannte Detektionsschwellenwert des aktuellen Rahmens aktualisiert 740 wie auch der vorhergehende Rahmenbewegungsdetektionsschwellenwert für die zeitliche Berechnung des Bewegungsdetektionsschwellenwerts für den nächsten Rahmen bei Operation 726.
  • Bezug nehmend auf 8 erzeugt ein Prozess 800 eine räumliche Rückfall-Rahmenrauschschätzung, die die räumliche Rauschschätzung für die Operation 736 von Prozess 700 bereitstellt. Für diesen Prozess 800 werden hier die gleichen räumlichen Operationen 702 bis 720 als Operationen 802 bis 820 ausgeführt, um Blockmittelwert-MAD-Summen zu erzeugen, und müssen hier nicht noch einmal genau beschrieben werden.
  • Danach kann der Prozess 800 „falls die MAD-Summe des Blockpixels eines gleichmäßigen Blocks kleiner ist als eine aktuelle Block-Rauschschätzung, Einstellen der MAD-Summe als block_noise_estimate“ 822 enthalten. Das wird für jeden gleichmäßigen Block bisher wiederholt und wird ausgeführt, um die kleinste Medianpixelsummendifferenz in dem Block als die kleinste Rauschschätzung einzustellen. Das wird ausgeführt, weil die kleinste Mediandifferenz in einem Block, die zu groß ist, immer noch angeben kann, dass der Block nicht ausreichend gleichmäßig ist.
  • Somit kann der Prozess 800 dann „für jeden einheitlichen Block in einem Rahmen Bestimmen, ob block_noise _estimate kleiner ist als ein Grenzschwellenwert für räumliches Rauschen“ 824 enthalten. Der Grenzschwellenwert für räumliches Rauschen wird basierend auf Experimentieren bestimmt und testet, wie erwähnt, ob Differenzen in einem Block zu groß sind und es wahrscheinlicher ist, nicht gleichmäßige Bilddatenwerte in dem Block zu haben.
  • Der Prozess 800 kann „Aggregieren von Blockmittelwert-MAD-Summenwerten aller Blöcke mit qualifizierten block_noise_estimates und Teilen durch die Anzahl qualifizierter gleichmäßiger Blöcke, um den Mittelwert von Blockmittelwert-MAD-Summen als die räumliche Rahmenrauschschätzung bereitzustellen“ 826 enthalten.
    Figure DE102020123396A1_0005
    Figure DE102020123396A1_0006
    Figure DE102020123396A1_0007
  • Es wird darauf hingewiesen, dass die zeitliche Rauschschätzung zwei Ebenen von Schwellenwerten anstatt einer bereitstellt, wie vorstehend mit Prozess 700 beschrieben ist, wobei jede Ebene einen unterschiedlichen zeitlichen Rauschschätzungspegel aufweisen könnte, um die Genauigkeit zu erhöhen.
  • EXPERIMENT
  • Der experimentelle Vergleichszustand ist durch das System 400 (4) als das herkömmlichen System und das System 500 (5) als das hier offenbarte inhaltsadaptive System bereitgestellt. Das System 400 leitet Filterstärken nur basierend auf einem Parameter eines Codierers (wie z. B. QP) ab, verwendet jedoch für die Experimente keine herkömmliche Rauschschätzung in den Entrauschungsoperationen. Das System 500 weist den offenbarten GNE-Mechanismus auf, der Stärken inhaltsadaptiv ableitet, wie vorstehend beschrieben. Codierungs-Statistikdaten wurden für 90 Videos gesammelt, wie nachstehend in Tabelle 1 präsentiert, wobei sich der Nutzen von Bitrateneinsparungen aus dem vorhandenen System und Verfahren zeigt, insbesondere für rauschbehaftetes Video.
  • Die nachstehende Tabelle 1 zeigt eine mittlere Bitrateneinsparung (%) über die 90 Videos aus einem Codierer-Vorprozessor mit den zwei unterschiedlichen Design-Konfigurationen von System 400 ((a) in der Tabelle) und System 500 ((b) in der Tabelle) (die Werte sind gerundet). Es wird darauf hingewiesen, dass das inhaltsadaptive System hier außer in zwei Fällen eine signifikant bessere Bitrateneinsparung hatte (55 Clips plus QP 27 und 32).
    Quantisierungsparameter (QP) 18 22 27 32 37
    Konfig. (a) (b) (a) (b) (a) (b) (a) (b) (a) (b)
    Mittl. Bitrateneinsparung (%) 90 Clips 13,8 18,9 10,4 16,6 7,6 12,5 5,0 8,9 2,5 7,3
    Mittl. Bitrateneinsparung (%) nicht rauschbehaftet (55 Clips) 13,8 15,1 6,2 6, 4 3,3 3,2 2,4 2,2 1,3 1,8
    Mittl. Bitrateneinsparung (%) nicht rauschbehaftet (35 Clips) 13,7 25,0 17,0 32,6 14,3 27,1 9,2 19,5 4,3 15,8
  • Während die Implementierung der Beispielprozesse 600, 700 und 800 das Durchführen aller gezeigten Operationen in der dargestellten Reihenfolge enthalten kann, ist die vorliegende Offenbarung in dieser Hinsicht nicht eingeschränkt, und in verschiedenen Beispielen kann die Implementierung irgendeines der Prozesse hier das Durchführen nur einer Teilmenge der gezeigten Operationen und/oder in einer anderen als der dargestellten Reihenfolge enthalten.
  • In Implementierungen können hier beschriebene Merkmale in Reaktion auf Befehle, die durch ein oder mehrere Computerprogrammprodukte bereitgestellt werden, durchgeführt werden. Solche Programmprodukte können Signalüberträgermedien enthalten, die Befehle bereitstellen, die dann, wenn sie beispielsweise durch einen Prozessor ausgeführt werden, die hier beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in irgendeiner Form aus einem oder mehreren maschinenlesbaren Medien bereitgestellt sein. Somit kann beispielsweise ein Prozessor, der einen oder mehrere Prozessorkern(e) enthält, ein oder mehrere hier beschriebene Merkmale in Reaktion auf Programmcode und/oder Befehle oder Befehlssätze, die dem Prozessor durch ein oder mehrere maschinenlesbare Medien übermittelt werden, durchführen. Im Allgemeinen kann ein maschinenlesbares Medium Software in der Form von Programmcode und/oder Befehlen oder Befehlssätzen übermitteln, die irgendeine der hier beschriebenen Vorrichtungen und/oder Systeme veranlassen können, wenigstens Abschnitte der hier beschriebenen Merkmale zu implementieren. Wie vorstehend erwähnt kann in einer weiteren Form ein nicht-transitorischer Artikel wie z. B. ein nicht-transitorisches computerlesbares Medium, mit irgendeinem der vorstehend genannten Beispiele oder anderen Beispielen, außer wenn es per se kein transitorisches Signal enthält, verwendet werden. Es enthält diejenigen Elemente, die per se kein Signal sind, das Daten temporär auf eine „transitorische“ Weise halten können, wie z. B. RAM und so weiter.
  • Wie er in irgendeiner hier beschriebenen Implementierung verwendet ist, bezieht sich der Begriff „Modul“ auf irgendeine Kombination aus Software-Logik, Firmware-Logik und/oder Hardware-Logik, die konfiguriert ist, die hier beschriebene Funktionalität bereitstellen. Die Software kann als ein Software-Paket, Code und/oder Befehlssatz oder Befehle ausgeführt sein, und „Hardware“, wie sie in irgendeiner hier beschriebenen Implementierung verwendet ist, kann beispielsweise, einzeln oder in irgendeiner Kombination, festverdrahtete Schaltungsanordnung, programmierbare Schaltungsanordnung, Zustandsautomaten-Schaltungsanordnung und/oder Firmware, die Befehle, die durch programmierbare Schaltungsanordnung ausgeführt werden, speichert, enthalten. Die Module können, gemeinsam oder individuell, als Schaltungsanordnung ausgeführt sein, die einen Teil eines größeren Systems bildet, beispielsweise eine integrierte Schaltung (IC), ein Einchipsystem (SoC) und so weiter. Beispielsweise kann ein Modul in Logikschaltungsanordnung zur Implementierung über Software, Firmware oder Hardware des hier diskutierten Codiersystems ausgeführt sein.
  • Wie er in irgendeiner hier beschriebenen Implementierung verwendet ist, bezieht sich der Begriff „Logikeinheit“ auf irgendeine Kombination aus Firmware-Logik und/oder Hardware-Logik, die konfiguriert ist, die hier beschriebene Funktionalität bereitstellen. Die Logikeinheiten können, gemeinsam oder individuell, als Schaltungsanordnung ausgeführt sein, die einen Teil eines größeren Systems bildet, beispielsweise eine integrierte Schaltung (IC), ein Einchipsystem (SoC) und so weiter. Beispielsweise kann eine Logikeinheit in Logikschaltungsanordnung zur Implementierung von Firmware oder Hardware des hier diskutierten Codiersystems ausgeführt sein. Ein normaler Fachmann wird erkennen, dass Operationen, die durch Hardware und/oder Firmware ausgeführt werden, alternativ über Software implementiert sein können, die als ein Software-Paket, Code und/oder Befehlssatz oder Befehle verwirklicht sein kann, und ebenfalls erkennen, dass eine Logikeinheit außerdem einen Abschnitt von Software nutzen kann, um ihre Funktionalität zu implementieren.
  • Wie er in irgendeiner hier beschriebenen Implementierung verwendet ist kann sich der Begriff „Komponente“ auf ein Modul oder auf eine Logikeinheit beziehen, wie diese Begriffe vorstehend beschrieben sind. Dementsprechend kann sich der Begriff „Komponente“ auf irgendeine Kombination aus Software-Logik, Firmware-Logik und/oder Hardware-Logik beziehen, die konfiguriert ist, die hier beschriebene Funktionalität bereitstellen. Beispielsweise wird ein normaler Fachmann erkennen, dass Operationen, die durch Hardware und/oder Firmware ausgeführt werden, alternativ über ein Software-Modul implementiert sein können, das als ein Software-Paket, Code und/oder Befehlssatz verwirklicht sein kann, und ebenfalls erkennen, dass eine Logikeinheit außerdem einen Abschnitt von Software nutzen kann, um ihre Funktionalität zu implementieren.
  • Bezug nehmend auf 9 kann ein beispielhaftes Videocodiersystem 900 zum Bereitstellen von inhaltsadaptivem Entrauschen für Videocodieren in Übereinstimmung mit wenigstens einigen Implementierungen der vorliegenden Offenbarung ausgelegt sein. In der dargestellten Implementierung kann das System 900 Bildaufnahmevorrichtung(en) 901 wie z. B. eine oder mehrere Kameras, eine oder mehrere zentrale und/oder Grafik-Verarbeitungseinheiten oder Prozessoren 903, eine Anzeigevorrichtung 905, eine oder mehrere Speichereinrichtung(en) 907, eine Antenne 950 zur drahtlosen Übertragung und Verarbeitungseinheit(en) 902 zum Ausführen der vorstehend genannten Operationen enthalten. Der/die Prozessor(en) 903, die Speichereinrichtung 907 und/oder die Anzeigevorrichtung 905 können zur Kommunikation miteinander über beispielsweise einen Bus, Kabel oder einen anderen Zugang fähig sein. In verschiedenen Implementierungen kann die Anzeigevorrichtung 905 in das System 900 integriert oder separat von dem System 900 implementiert sein.
  • Wie in 9 gezeigt ist, kann/können die Verarbeitungseinheit(en) 902 eine Logikschaltungsanordnung 904 mit einer Vorverarbeitungseinheit 906 und entweder allein eine Videocodierereinheit 908 oder mit einer Videodecodierereinheit 910 aufweisen. Die Vorverarbeitungseinheit 906 kann Bilddaten zum Codieren empfangen und kann eine Inhaltsrauschschätzungs- (Inhalts-NE-) Einheit 912 zum Erzeugen von Rauschschätzungen wie vorstehend beschrieben, eine Filterstärkeneinheit 914, die die Rauschschätzungen empfängt, um die Filterstärke anzupassen, und eine Entrauschungseinheit 916, die die Filterstärke zum Ausführung des Entrauschens verwendet, aufweisen. Andere Vorverarbeitungseinheiten 918 können ebenfalls vorgesehen sein. Die Inhalts-NE-Einheit 912 kann eine räumliche NE-Einheit 920 mit einer MAD-Einheit 926, eine Einheit 928 für gleichmäßigen Schwellenwert, eine Kantendetektionseinheit 930 und eine Aggregateinheit 932 aufweisen. Außerdem weist eine zeitliche NE-Einheit 922 eine STAD-Einheit 934, eine MAD-Schwellenwerteinheit 936, eine STAD_th-Einheit 938 und eine Aggregateinheit 940 auf. Eine Auswahleinheit 924 ist vorgesehen, um zwischen zeitlichen und räumlichen Rauschschätzungen auszuwählen. Alle diese Einheiten, Logik und/oder Module führen die Aufgaben wie vorstehend genannt und wie der Name der Einheit impliziert aus.
  • Wie zu erkennen ist, können die in 9 dargestellten Module eine Vielzahl von Software- und/oder Hardware-Modulen und/oder Module, die über Software oder Hardware oder Kombinationen daraus implementiert sein können, enthalten. Beispielsweise können die Module als Software über Verarbeitungseinheiten 902 implementiert sein, oder die Module können über einen dedizierten Hardware-Abschnitt implementiert sein. Darüber hinaus können die gezeigten Speichereinrichtungen 907 gemeinsam verwendeter Speicher für Verarbeitungseinheiten 902 sein, die beispielsweise irgendwelche Vorverarbeitungs- und Entrauschungsdaten speichern, ob sie auf irgendwelchen der vorstehend genannten Optionen gespeichert sind oder auf einer Kombination dieser Optionen gespeichert sein können oder an anderer Stelle gespeichert sein können. Außerdem kann das System 900 in einer Vielzahl von Arten implementiert sein. Beispielsweise kann das System 900 (ohne die Anzeigevorrichtung 905) als ein/e einzige/r Chip oder Vorrichtung implementiert sein, der/die eine Grafikverarbeitungseinheit (GPU), einen Bildsignalprozessor (ISP), eine zentrale Verarbeitungseinheit mit vier Kernen und/oder ein Speichersteuereinheit-Eingabe/Ausgabe- (I/O-) Modul aufweisen kann. In anderen Beispielen kann das System 900 (wieder ohne die Anzeigevorrichtung 905) als ein Chipsatz oder als ein Einchipsystem (SoC) implementiert sein.
  • Der/die Prozessor(en) 903 können irgendeine geeignete Implementierung enthalten, die beispielsweise Mikroprozessor(en), Mehrkernprozessoren, anwendungsspezifische integrierte Schaltungen, Chip(s), Chipsätze, programmierbare Logikvorrichtungen, Grafikkarten, integrierte Grafik, Allzweck-Grafikverarbeitungseinheit(en) oder dergleichen enthält. Zusätzlich können Speichereinrichtungen 907 irgendein Typ eines Speichers sein, wie z. B. flüchtiger Speicher (z. B. statischer Direktzugriffsspeicher (SRAM), dynamischer Direktzugriffsspeicher (DRAM) usw.) oder nichtflüchtiger Speicher (z. B. Flash-Speicher usw.) und so weiter. In einem nicht einschränkenden Beispiel können Speichereinrichtungen 907 auch über Cache-Speicher implementiert sein.
  • Bezug nehmend auf 10 kann ein Beispielsystem 1000 in Übereinstimmung mit der vorliegenden Offenbarung und verschiedenen Implementierungen ein Mediensystem sein, obwohl das System 1000 nicht auf diesen Kontext eingeschränkt ist. Beispielsweise kann das System 1000 in einen Personalcomputer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein Touchpad, einen tragbaren Computer, einen Hand-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination Mobiltelefon/PDA, ein Fernsehgerät, eine intelligente Vorrichtung (z. B. ein Smartphone, ein Smart-Tablet oder ein intelligentes Fernsehgerät), eine mobile Internetvorrichtung (MID), eine Nachrichtenübermittlungsvorrichtung, eine Datenkommunikationsvorrichtung und so weiter integriert sein.
  • In verschiedenen Implementierungen enthält das System 1000 eine Plattform 1002, die mit einer Anzeigevorrichtung 1020 kommunikationstechnisch gekoppelt ist. Die Plattform 1002 kann Inhalt von einer Inhaltsvorrichtung wie z. B. Inhaltsdienstvorrichtung(en) 1030 oder Inhaltszustellvorrichtung(en) 1040 oder anderen ähnlichen Inhaltsquellen empfangen. Eine Navigationssteuereinheit 1050, die ein oder mehrere Navigationsmerkmale enthält, kann verwendet werden, um beispielsweise mit der Plattform 1002 und/oder der Anzeigevorrichtung 1020 zusammenzuwirken. Jede dieser Komponenten ist nachstehend genauer beschrieben.
  • In verschiedenen Implementierungen kann die Plattform 1002 irgendeine Kombination aus einem Chipsatz 1005, einer Antenne 1010, einem Speicher 1012, einer Speichervorrichtung 1011, einem Grafikteilsystem 1015, Anwendungen 1016 und/oder Funkeinrichtung 1018 und außerdem Antenne(n) 1010 enthalten. Der Chipsatz 1005 kann wechselseitige Kommunikation zwischen dem Prozessor 1014, dem Speicher 1012, der Speichervorrichtung 1011, dem Grafikteilsystem 1015, den Anwendungen 1016 und/oder der Funkeinrichtung 1018 bereitstellen. Beispielsweise kann der Chipsatz 1005 einen Speicheradapter (nicht abgebildet) enthalten, der zum Bereitstellen wechselseitiger Kommunikation mit der Speichervorrichtung 1011 fähig ist.
  • Der Prozessor 1014 kann als Prozessoren für „Complex Instruction Set Computer“ (CISC) oder „Reduced Instruction Set Computer“ (RISC); mit dem x86-Befehlssatz kompatible Prozessoren, mehrere Kerne oder irgendein anderer Mikroprozessor oder zentrale Verarbeitungseinheit (CPU) implementiert sein. In verschiedenen Implementierungen kann der Prozessor 1014 Zweikern-Prozessor(en), Zweikern-Mobilprozessor(en) und so weiter sein.
  • Der Speicher 1012 kann als eine flüchtige Speicher-Vorrichtung wie z. B., ohne jedoch darauf beschränkt zu sein, ein Direktzugriffsspeicher (RAM), ein dynamischer Direktzugriffsspeicher (DRAM) oder ein statischer RAM (SRAM) sein.
  • Die Speichervorrichtung 1011 kann als eine nichtflüchtige Speicher-Vorrichtung implementiert sein, wie z. B., ohne jedoch darauf beschränkt zu sein, ein magnetisches Plattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, eine interne Speicher-Vorrichtung, eine angeschlossene Speicher-Vorrichtung, ein Flash-Speicher, ein batteriegestützter SDRAM (synchroner DRAM) und/oder eine über ein Netz zugängliche Speicher-Vorrichtung. In verschiedenen Implementierungen kann die Speichervorrichtung 1011 eine Technologie enthalten zum Erhöhen der erweiterten Speicherschutzleistung für wertvolle digitale Medien, beispielsweise wenn mehrere Festplattenlaufwerke enthalten sind.
  • Das Grafikteilsystem 1015 kann Verarbeitung von Bildern wie z. B. Standbildern oder Video zur Anzeige ausführen. Das Grafikteilsystem 1015 kann beispielsweise eine Grafikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet sein, um das Grafikteilsystem 1015 und die Anzeigevorrichtung 1020 kommunikationstechnisch zu koppeln. Beispielsweise kann die Schnittstelle irgendeine aus einer hochauflösenden Multimedia-Schnittstelle, Display Port, drahtlosem HDMI und/oder drahtlosen HD-konformen Techniken sein. Das Grafikteilsystem 1015 kann in den Prozessor 1014 oder den Chipsatz 1005 integriert sein. In einigen Implementierungen kann das Grafikteilsystem 1015 eine eigenständige Karte sein, die mit dem Chipsatz 1005 kommunikationstechnisch gekoppelt ist.
  • Die Grafik- und/oder Videoverarbeitungstechniken, die hier beschrieben sind, können in verschiedenen Hardware-Architekturen implementiert sein. Beispielsweise kann Grafik- und/oder Video-Funktionalität in einem Chipsatz integriert sein. Alternativ kann ein diskreter Grafik- und/oder Video-Prozessor verwendet sein. Als noch eine weitere Implementierung können die Grafik- und/oder Video-Funktionen durch einen Allzweckprozessor, der einen Mehrkernprozessor enthält, bereitgestellt sein. In anderen Implementierungen können die Funktionen in einer Unterhaltungselektronikvorrichtung implementiert sein.
  • Die Funkeinrichtung 1018 kann eine oder mehrere Funkeinrichtungen enthalten, die zum Senden und Empfangen von Signalen unter Verwendung verschiedener geeigneter Drahtloskommunikationstechniken fähig sind. Solche Techniken können Kommunikation über ein oder mehrere Drahtlosnetze beinhalten. Beispielhafte Drahtlosnetze enthalten (ohne jedoch darauf beschränkt zu sein) drahtlose lokale Netze (WLANs), drahtlose persönliche Netze (WPANs), drahtlose Regionalnetze (WMANs), Mobilfunknetze und Satellitennetze. Bei der Kommunikation über solche Netze kann die Funkeinrichtung 1018 in Übereinstimmung mit einem oder mehreren anwendbaren Standards in irgendeiner Version arbeiten.
  • In verschiedenen Implementierungen kann die Anzeigevorrichtung 1020 irgendeine/n Monitor oder Anzeigevorrichtung vom Typ eines Fernsehgeräts enthalten. Die Anzeigevorrichtung 1020 kann beispielsweise einen Computer-Anzeigebildschirm, eine Anzeigevorrichtung mit berührungssensitivem Bildschirm, einen Video-Monitor, eine fernsehgerätähnliche Vorrichtung und/oder ein Fernsehgerät enthalten. Die Anzeigevorrichtung 1020 kann digital und/oder analog sein. In verschiedenen Implementierungen kann die Anzeigevorrichtung 1020 eine holografische Anzeigevorrichtung sein. Außerdem kann die Anzeigevorrichtung 1020 eine transparente Oberfläche sein, die eine sichtbare Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bilder und/oder Objekten übermitteln. Beispielsweise können solche Projektionen eine visuelle Überlagerung für eine mobile Anwendung für erweiterte Realität (MAR) sein. Unter der Steuerung einer oder mehrerer Software-Anwendungen 1016 kann die Plattform 1002 eine Anwenderschnittstelle 1022 auf der Anzeigevorrichtung 1020 anzeigen.
  • In verschiedenen Implementierungen können Inhaltsdienstvorrichtung(en) 1030 durch irgendeinen nationalen, internationalen und/oder unabhängigen Dienst gehostet und somit für die Plattform 1002 beispielsweise über das Internet zugänglich sein. Inhaltsdienstvorrichtung(en) 1030 können mit der Plattform 1002 und/oder der Anzeigevorrichtung 1020 gekoppelt sein. Die Plattform 1002 und/oder die Inhaltsdienstvorrichtung(en) 1030 können mit einem Netz 1060 gekoppelt sein, um Medieninformationen zu und von dem Netz 1060 zu kommunizieren (z. B. zu senden und/oder zu empfangen). Inhaltszustellvorrichtung(en) 1040 können ebenfalls mit der Plattform 1002 und/oder der Anzeigevorrichtung 1020 gekoppelt sein.
  • In verschiedenen Implementierungen können Inhaltsdienstvorrichtung(en) 1030 eine Kabelfernseh-Box, einen Personalcomputer, ein Netz, ein Telefon, über das Internet aktivierte Vorrichtungen oder Geräte, die zum Zustellen digitaler Informationen und/oder Inhalt fähig sind, und irgendeine andere ähnliche Vorrichtung, die zum unidirektionalen oder bidirektionalen Kommunizieren von Inhalt zwischen Inhaltsanbietern und der Plattform 1002 und/oder der Anzeigevorrichtung 1020 über ein Netz 1060 oder direkt fähig sind, enthalten. Es ist zu verstehen, dass der Inhalt unidirektional und/oder bidirektional zu und von irgendeiner der Komponenten im System 1000 und einem Inhaltsanbieter über das Netz 1060 kommuniziert werden kann. Beispiele für Inhalt können irgendwelche Medieninformationen enthalten, die beispielsweise Video, Musik, medizinische und Spiele-Informationen und so weiter enthalten.
  • Inhaltsdienstvorrichtung(en) 1030 können Inhalt empfangen wie z. B. Kabelfernsehprogramme, die Medieninformationen, digitale Informationen und/oder anderen Inhalt enthalten. Beispiele für Inhaltsanbieter können irgendwelche Inhaltsanbieter für Kabel- oder Satellitenfernsehen oder -radio oder Internet sein. Die bereitgestellten Beispiele sind nicht dafür vorgesehen, die Implementierungen in Übereinstimmung mit der vorliegenden Offenbarung in irgendeiner Weise einzuschränken.
  • In verschiedenen Implementierungen kann die Plattform 1002 Steuersignale von der Navigationssteuereinheit 1050, die eine oder mehrere Navigationsmerkmale aufweist, empfangen. Die Navigationsmerkmale der Steuereinheit 1050 können verwendet werden, um beispielsweise mit der Anwenderschnittstelle 1022 zusammenzuwirken. In Implementierungen kann die Navigationssteuereinheit 1050 eine Zeigevorrichtung sein, die eine Computer-Hardware-Komponente (insbesondere eine Vorrichtung für eine menschliche Schnittstelle) sein kann, die es einem Anwender ermöglicht, räumliche (z. B. kontinuierliche und mehrdimensionale) Daten in einem Computer einzugeben. Viele Systeme wie z. B. grafische Anwenderschnittstellen (GUI) und Fernsehgeräte und Monitore ermöglichen dem Anwender, den Computer oder das Fernsehgerät unter physikalischer Gesten zu steuern und Daten einzugeben.
  • Bewegungen der Navigationsmerkmale der Steuereinheit 1050 können auf einer Anzeigevorrichtung (z. B. der Anzeigevorrichtung 1020) durch Bewegungen eines Zeigers, eines Cursors, eines Fokusrings oder anderer visueller Kennzeichen, die auf der Anzeigevorrichtung angezeigt werden, repliziert werden. Beispielsweise können unter der Steuerung von Software-Anwendungen 1016 die Navigationsmerkmale, die sich auf der Navigationssteuereinheit 1050 befinden, auf virtuelle Navigationsmerkmale, die beispielsweise auf der Anwenderschnittstelle 1022 angezeigt werden, abgebildet werden. In Implementierungen kann die Steuereinheit 1050 keine separate Komponente sein, sondern kann in die Plattform 1002 und/oder die Anzeigevorrichtung 1020 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die Elemente oder den Kontext, die hier gezeigt oder beschrieben sind, beschränkt.
  • In verschiedenen Implementierungen können Treiber (nicht gezeigt) eine Technologie enthalten, um Anwendern zu ermöglichen, die Plattform 1002 sofort an- und abzuschalten, wie beispielsweise ein Fernsehgerät mit der Berührung einer Taste nach dem initialen Hochlaufen, wenn aktiviert. Programmlogik kann ermöglichen, dass die Plattform 1002 Inhalt zu Medienadaptern oder anderen Inhaltsdienstvorrichtung(en) 1030 oder Inhaltszustellvorrichtung(en) 1040 streamt, selbst wenn die Plattform auf „Aus“ geschaltet ist. Zusätzlich kann der Chipsatz 1005 Hardware- und/oder Software-Unterstützung beispielsweise für Audio mit 7.1-Surround-Klang und/oder Audio mit hochauflösendem (7.1) Surround-Klang enthalten. Treiber können einen Grafiktreiber für integrierte Grafikplattformen enthalten. In Implementierungen kann der Grafiktreiber eine „Peripheral Component Interconnect“- (PCI-) Express-Grafikkarte umfassen.
  • In verschiedenen Implementierungen können irgendeine oder mehrere der im System 1000 gezeigten Komponenten integriert sein. Beispielsweise können die Plattform 1002 und die Inhaltsdienstvorrichtung(en) 1030 integriert sein, oder die Plattform 1002 und die Inhaltszustellvorrichtung(en) 1040 können integriert sein, oder die Plattform 1002, die Inhaltsdienstvorrichtung(en) 1030 und die Inhaltszustellvorrichtung(en) 1040 können beispielsweise integriert sein. In verschiedenen Implementierungen können die Plattform 1002 und die Anzeigevorrichtung 1020 eine integrierte Einheit sein. Die Anzeigevorrichtung 1020 und die Inhaltsdienstvorrichtung(en) 1030 können integriert sein, oder die Anzeigevorrichtung 1020 und die Inhaltszustellvorrichtung(en) 1040 können beispielsweise integriert sein. Diese Beispiele sind nicht dafür vorgesehen, die vorliegende Offenbarung einzuschränken.
  • In verschiedenen Implementierungen kann das System 1000 als ein drahtloses System, ein drahtgebundenes System oder eine Kombination aus beidem implementiert sein. Wenn es als ein drahtloses System 1000 implementiert ist, kann das System 1000 Komponenten und Schnittstellen enthalten, die zum Kommunizieren über ein drahtloses gemeinsam verwendetes Medium geeignet sind, sie z. B. eine oder mehrere Antennen, Sender, Empfänger Sender/Empfänger, Verstärker, Filter, Steuerlogik und so weiter. Ein Beispiel für drahtlose gemeinsam verwendete Medien kann Abschnitte eines Drahtlosspektrums wie z. B. des HF-Spektrums und so weiter enthalten. Wenn es als ein drahtgebundenes System implementiert ist, kann das System 1000 Komponenten und Schnittstellen enthalten, die zum Kommunizieren über drahtgebundene Kommunikationsmedien geeignet sind, wie z. B. Eingabe/Ausgabe- (I/O-) Adapter, physikalische Verbindungselemente zum Verbinden des I/O-Adapters mit einem entsprechenden drahtgebundenen Kommunikationsmedium, eine Netzschnittstellenkarte (NIC), eine Plattensteuereinheit, eine Videosteuereinheit, eine Audiosteuereinheit und dergleichen. Beispiele für drahtgebundene Kommunikationsmedien können einen Draht, ein Kabel, Metallleitungen, eine Leiterplatte (PCB), eine Rückwandplatine, ein Switch-Fabric, Halbleitermaterial, Zweidrahtleitung, Koaxialkabel, Lichtwellenleiter und so weiter enthalten.
  • Die Plattform 1002 kann einen oder mehrere logische oder physikalische Kanäle aufbauen, um Informationen zu kommunizieren. Die Informationen können Medieninformationen und Steuerinformationen enthalten. Medieninformationen können sich auf irgendwelche Daten beziehen, die für einen Anwender bestimmten Inhalt repräsentieren. Beispiele für Inhalt können beispielsweise Daten aus einem Gespräch, Videokonferenz, Video-Streaming, Nachricht der elektronischen Post („E-Mail“), Voicemail-Nachricht, alphanumerische Symbole, Grafik, Bild, Video, Text und so weiter enthalten. Daten aus einem Gespräch können beispielsweise Sprachinformationen, Sprechpausen, Hintergrundgeräusche, Beruhigungsgeräusche, Töne und so weiter enthalten. Steuerinformationen können sich auf irgendwelche Daten beziehen, die Befehle, Anweisungen oder Steuerwörter, die für ein automatisches System bestimmt sind, repräsentieren. Beispielsweise können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu routen oder um einen Knoten anzuweisen, die Medieninformationen auf eine vorbestimmte Weise zu verarbeiten. Die Implementierungen sind jedoch nicht auf die Elemente oder den Kontext, die in 10 gezeigt und beschrieben sind, beschränkt.
  • Bezug nehmend auf 11 ist eine Vorrichtung 1100 mit kleinem Formfaktor ein Beispiel für die variierenden physikalischen Stile oder Formfaktoren, in denen die Systeme 900 oder 1000 verwirklicht sein können. Durch diese Herangehensweise kann die Vorrichtung 1100 als eine mobile Berechnungsvorrichtung implementiert sein, die Drahtlosfähigkeiten aufweist. Eine mobile Berechnungsvorrichtung kann sich auf irgendeine Vorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Stromquelle oder -versorgung wie beispielsweise eine oder mehrere Batterien aufweist.
  • Wie vorstehend beschrieben können Beispiele für eine mobile Berechnungsvorrichtung eine digitale Standbildkamera, eine digitale Videokamera, mobile Vorrichtungen mit Kamera- oder Videofunktionen wie z. B. Bildaufnahmetelefone, Webcam, Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, Tablet, Touchpad, tragbaren Computer, Hand-Computer, Palmtop-Computer, persönlichen digitalen Assistenten (PDA), Mobiltelefon, Kombination aus Mobiltelefon/PDA, Fernsehgerät, intelligente Vorrichtung (z. B. Smartphone, Smart-Tablet oder intelligentes Fernsehgerät), mobile InternetVorrichtung (MID), Nachrichtenübermittlungsvorrichtung, Datenkommunikationsvorrichtung und so weiter enthalten.
  • Beispiele für eine mobile Berechnungsvorrichtung können außerdem Computer enthalten, die dafür ausgelegt sind, von einer Person am Körper getragen zu werden, wie z. B. ein Handgelenk-Computer, ein Finger-Computer, ein Ring-Computer, ein Brillen-Computer, ein Gürtelclip-Computer, ein Armband-Computer, Schuh-Computer, Kleidungs-Computer und andere am Körper tragbare Computer. In verschiedenen Implementierungen kann beispielsweise eine mobile Berechnungsvorrichtung als ein Smartphone implementiert sein, das sowohl zum Ausführen von Computer-Anwendungen als auch zur Sprachkommunikation und/oder Datenkommunikation fähig ist. Obwohl einige Implementierungen mit einer mobilen Berechnungsvorrichtung beschrieben sein können, die als Beispiel als ein Smartphone implementiert ist, ist zu erkennen, dass andere Implementierungen auch unter Verwendung anderer drahtloser mobiler Berechnungsvorrichtungen implementiert sein können. Die Implementierungen sind in diesem Kontext nicht eingeschränkt.
  • Wie in 11 gezeigt ist, kann die Vorrichtung 1100 ein Gehäuse mit einer Vorderseite 1101 und einer Rückseite 1102 enthalten. Die Vorrichtung 1100 enthält eine Anzeigevorrichtung 1104, eine Eingabe/Ausgabe- (I/O-) Vorrichtung 1106 und eine integrierte Antenne 1108. Die Vorrichtung 1100 kann außerdem Navigationsmerkmale 1112 enthalten. Die I/O-Vorrichtung 1106 kann irgendeine geeignete I/O-Vorrichtung zum Eingeben von Informationen in eine mobile Berechnungsvorrichtung enthalten. Beispiele für die I/O-Vorrichtung 1106 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Schaltflächen, Schalter, Mikrofone, Lautsprecher, Spracherkennungsvorrichtung und Software und so weiter enthalten. Informationen können auch mit Hilfe des Mikrofons 1114 in die Vorrichtung 1100 eingegeben werden oder können durch eine Spracherkennungsvorrichtung digitalisiert werden. Wie gezeigt kann die Vorrichtung 1100 eine Kamera 1105 (die z. B. wenigstens ein Objektiv, eine Blende und einen Bildsensor enthält) und einen Blitz 1110 enthalten, der in die Rückseite 1102 (oder an anderer Stelle) der Vorrichtung 1100 integriert ist. Die Implementierungen sind in diesem Kontext nicht eingeschränkt.
  • Verschiedene Formen der Vorrichtungen und Prozesse, die hier beschrieben sind, können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination aus beidem implementiert sein. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), im Feld programmierbares Gatter-Array (FPGA), Logik-Gatter, Register, Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter enthalten. Beispiele für Software können Software-Komponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystem-Software, Middleware, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Software-Schnittstellen, Anwendungsprogrammschnittstellen (API), Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination daraus enthalten. Das Bestimmen, ob eine Implementierung unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert wird, kann in Übereinstimmung mit einer Anzahl von Faktoren variieren, wie z. B. der gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherbetriebsmittel, Datenbusgeschwindigkeiten und anderen Design- oder Leistungseinschränkungen.
  • Einer oder mehrere der vorstehend beschriebenen Aspekte kann durch repräsentative Anweisungen implementiert sein, die auf einem maschinenlesbaren Medium gespeichert sind, die verschiedene Logik innerhalb des Prozessors repräsentieren, die dann, wenn sie durch eine Maschine ausgeführt werden, die Maschine veranlassen, Logik zum Ausführen der hier beschriebenen Techniken zu produzieren. Solche Repräsentation, bekannt als „IP-Kerne“, können auf einem greifbaren maschinenlesbaren Medium gespeichert sein und an verschiedene Kunden oder Produktionsanlagen geliefert werden, um in die Produktionsmaschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Obwohl spezielle Merkmale, die hier dargelegt sind, mit Bezug auf verschiedene Implementierungen beschrieben worden sind, ist diese Beschreibung nicht dafür gedacht, in einem einschränkenden Sinn gedeutet zu werden. Somit sind sowohl verschiedene Modifikationen der hier beschriebenen Implementierungen als auch andere Implementierungen, die für Fachleute der Technik, zu der die vorliegende Offenbarung gehört, offensichtlich sind, als in dem Geist und Schutzbereich der vorliegenden Offenbarung liegend erachtet.
  • Die folgenden Beispiele gehören zu zusätzlichen Implementierungen.
  • Als ein Beispiel einer oder mehrerer erster Implementierungen umfasst ein computerimplementiertes Verfahren zum Videocodieren Erhalten von Bilddaten von Rahmen einer Videosequenz; Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt; Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen; und Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Anpassen einer Entrauschungsfilterstärke, um den aktuellen Rahmen vor dem Codieren des aktuellen Rahmens vorzuverarbeiten.
  • Als eine oder mehrere zweite Implementierung und ferner für die erste Implementierung, wobei das Bestimmen einer räumlichen Rauschschätzung das Verwenden eines Medianbilddatenwerts einer Nachbarschaft von Pixeln um jedes Pixel, die einen gleichmäßigen Kandidatenblock bilden, umfasst.
  • Als eine oder mehrere dritte Implementierungen und ferner für die erste oder zweite Implementierung, wobei das Bestimmen einer räumlichen Rauschschätzung Folgendes umfasst: für jedes Blockpixel in einem Block des aktuellen Rahmens: Bestimmen einer Differenz zwischen einem Median der Bilddatenwerte innerhalb eines Nachbarschaftsfensters, das das Blockpixel enthält, und des Bilddatenwerts jedes Nachbarschaftspixels innerhalb des Nachbarschaftsfensters; Summieren der Differenzen für die individuellen Nachbarschaftsfensterpixel, um eine Summe für das Blockpixel bereitzustellen; und Erzeugen eines Blockmittelwerts oder einer anderen Kombination der Summen der Blockpixel eines Blocks und Wiederholen für jeden Block in einem Rahmen; und Berechnen eines Rahmenmittelwerts durch Mitteln der Blockmittelwerte, um eine räumliche Rahmenrauschschätzung zu erzeugen.
  • Als eine oder mehrere vierte Implementierungen und ferner für irgendeine aus der ersten bis dritten Implementierung, wobei das Bestimmen der räumlichen Rauschschätzung nur Aufnehmen derjenigen Blöcke mit allen Pixelwerten innerhalb oberer und unterer Gleichmäßigkeitsgrenzen umfasst.
  • Als eine oder mehrere fünfte Implementierungen und ferner für irgendeine aus der ersten bis vierten Implementierung, wobei das Bestimmen der räumlichen Rauschschätzung das Bestimmen, ob ein Block eine Objektkante innerhalb des Inhalts der Bilddaten in dem Block aufweist, und nur Verwenden von Blöcken zum Bestimmen der räumlichen Rauschschätzung, die keine Kante innerhalb des Blockinhalts aufweisen, umfasst.
  • Als eine oder mehrere sechste Implementierungen und ferner für irgendeine aus der ersten bis fünften Implementierung, wobei das Bestimmen einer zeitlichen Rauschschätzung das Bestimmen umfasst, ob individuelle der gleichmäßigen Blöcke einen räumlichen repräsentativen Wert aufweisen, der in einen zeitlichen Schwellenwertbereich fällt, um zu bestimmen, ob einer der gleichmäßigen Blöcke verwendet werden sollte, um die zeitliche Rauschschätzung zu erzeugen.
  • Als eine oder mehrere siebte Implementierungen und ferner für die sechste Implementierung, wobei der räumliche repräsentative Wert eine Summe der absoluten Medianabweichung ist.
  • Als eine oder mehrere achte Implementierungen und ferner für irgendeine aus der ersten bis siebten Implementierung, wobei das Bestimmen einer zeitlichen Rauschschätzung das Erzeugen einer Summe zeitlicher absoluter Differenz (STAD) zwischen Pixeln der individuellen gleichmäßigen Blöcke und entsprechenden Pixeln von Blöcken in einem weiteren Rahmen umfasst.
  • Als eine oder mehrere neunte Implementierungen und ferner für die achte Implementierung umfasst das Verfahren das Vergleichen der STAD individueller gleichmäßiger Blöcke mit einem adaptiven Schwellenwert, der sich abhängig von dem Bildinhalt eines vorhergehenden Rahmens ändert.
  • Als eine oder mehrere zehnte Implementierungen und ferner für die neunte Implementierung, wobei sich der adaptive Schwellenwert abhängig von einer Rauschschätzung des vorhergehenden Rahmens ändert.
  • Als eine oder mehrere elfte Implementierungen und ferner für die neunte Implementierung, wobei der adaptive Schwellenwert einen Bewegungsdetektionsschwellenwert eines vorhergehenden Rahmens faktorisiert.
  • Als eine beispielhafte zwölfte Implementierung umfasst ein computerimplementiertes System einen Speicher zum Speichern von Bilddaten wenigstens eines Bilds; und wenigstens einen Prozessor, der mit dem Speicher kommunikationstechnisch gekoppelt ist, und wobei der wenigstens eine Prozessor ausgelegt ist zum Arbeiten durch: Erhalten von Bilddaten von Rahmen einer Videosequenz; Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt; Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen; und Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Anpassen einer Entrauschungsfilterstärke, um den aktuellen Rahmen vor dem Codieren des aktuellen Rahmens vorzuverarbeiten.
  • Als eine oder mehrere dreizehnte Implementierungen und ferner für die zwölfte Implementierung, wobei das Bestimmen einer räumlichen Rauschschätzung das Verwenden eines Medianbilddatenwerts einer Nachbarschaft von Pixeln um jedes Pixel, die einen gleichmäßigen Kandidatenblock bilden, umfasst.
  • Als eine oder mehrere vierzehnte Implementierungen und ferner für die zwölfte oder dreizehnte Implementierung, wobei das Bestimmen einer räumlichen Rauschschätzung Folgendes umfasst: für jedes Blockpixel in einem Block des aktuellen Rahmens: Bestimmen einer Differenz zwischen einem Median der Bilddatenwerte innerhalb eines Nachbarschaftsfensters, das das Blockpixel enthält, und des Bilddatenwerts jedes Nachbarschaftspixels innerhalb des Nachbarschaftsfensters; Summieren der Differenzen für die individuellen Nachbarschaftsfensterpixel, um eine Summe für das Blockpixel bereitzustellen; und Erzeugen eines Blockmittelwerts oder einer anderen Kombination der Summen der Blockpixel eines Blocks und Wiederholen für jeden Block in einem Rahmen; und Berechnen eines Rahmenmittelwerts durch Mitteln der Blockmittelwerte, um eine räumliche Rahmenrauschschätzung zu erzeugen.
  • Als eine oder mehrere fünfzehnte Implementierungen und ferner für irgendeine aus der dreizehnten bis vierzehnten Implementierung, wobei das Bestimmen einer zeitlichen Rauschschätzung das Erzeugen einer Summe zeitlicher absoluter Differenz (STAD) zwischen Pixeln der individuellen gleichmäßigen Blöcke und entsprechenden Pixeln der Blöcke des weiteren Rahmens umfasst.
  • Als eine oder mehrere sechzehnte Implementierungen und ferner für irgendeine aus der zwölften bis fünfzehnten Implementierung, wobei das Bestimmen einer zeitlichen Rauschschätzung das Erzeugen einer Summe zeitlicher absoluter Differenz (STAD) zwischen Pixeln der individuellen gleichmäßigen Blöcke und entsprechenden Pixeln der Blöcke des weiteren Rahmens umfasst.
  • Als eine oder mehrere siebzehnte Implementierungen und ferner für die sechzehnte Implementierung, wobei das Verfahren das Vergleichen der STAD der individuellen gleichmäßigen Blöcke mit einem adaptiven Bewegungsdetektionsschwellenwert, der ein gewichtetes Mittel eines adaptiven Bewegungsdetektionsschwellenwerts eines vorhergehenden Rahmens und eines geschätzten Rauschpegels eines vorhergehenden Rahmens ist, umfasst.
  • Als eine oder mehrere achtzehnte Implementierungen und ferner für die siebzehnte Implementierung, wobei der geschätzte Rauschpegel des vorhergehenden Rahmens, der verwendet wird, um den adaptiven Bewegungsdetektionsschwellenwert zu berechnen, so ausgelegt ist, dass er entweder eine räumliche Rauschschätzung oder eine zeitliche Rauschschätzung ist.
  • Als ein oder mehrere neunzehnte Implementierungen wenigstens ein nicht-transitorisches computerlesbares Medium, das darauf gespeicherte Befehle aufweist, die dann, wenn sie ausgeführt werden, eine Berechnungsvorrichtung veranlassen, durch Erhalten von Bilddaten von Rahmen einer Videosequenz; Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt; Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen; und Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Anpassen einer Entrauschungsfilterstärke, um den aktuellen Rahmen vor dem Codieren des aktuellen Rahmens vorzuverarbeiten, zu arbeiten.
  • Als eine oder mehrere zwanzigste Implementierungen und ferner für die neunzehnte Implementierung, wobei das Bestimmen einer räumlichen Rauschschätzung das Verwenden eines Medianbilddatenwerts einer Nachbarschaft von Pixeln um jedes Pixel, die einen gleichmäßigen Kandidatenblock bilden, umfasst.
  • Als eine oder mehrere einundzwanzigste Implementierungen und ferner für die neunzehnte oder zwanzigste Implementierung, wobei die räumliche Rauschschätzung ein Mittelwert von mittleren Summen der absoluten Medianabweichung pro Block der gleichmäßigen Blöcke ist.
  • Als eine oder mehrere zweiundzwanzigste Implementierungen und ferner für die einundzwanzigste Implementierung, wobei das Bestimmen einer zeitlichen Rauschschätzung das Vergleichen der STAD individueller gleichmäßiger Blöcke mit einem adaptiven Schwellenwert, der sich wenigstens abhängig von der Rauschschätzung eines vorhergehenden Rahmens ändert, umfasst.
  • Als eine oder mehrere dreiundzwanzigste Implementierungen und ferner für die einundzwanzigste Implementierung, wobei das Bestimmen einer zeitlichen Rauschschätzung Verwenden einer mittleren STAD der gleichmäßigen Blöcke in dem aktuellen Rahmen als die zeitliche Rauschschätzung des Rahmens des aktuellen Rahmens umfasst.
  • Als eine oder mehrere vierundzwanzigste Implementierungen und ferner für die neunzehnte bis dreiundzwanzigste Implementierung, wobei die Befehle, die Berechnungsvorrichtung veranlassen, durch Bestimmen zu arbeiten, ob die zeitliche Rauschschätzung oder die räumliche Rauschschätzung zu verwenden ist, um eine Entrauschungsfilterstärke anzupassen, wenigstens davon abhängig, ob ein prozentualer Anteil der Anzahl gleichmäßiger Blöcke des aktuellen Rahmens, die ein oder mehrere räumliche Kriterien und ein oder mehrere zeitliche Kriterien erfüllen, an der Anzahl aller Blöcke des aktuellen Rahmens, größer als oder kleiner als ein Schwellenwert für den prozentualen Anteil ist.
  • Als eine oder mehrere fünfundzwanzigste Implementierungen und ferner für die vierundzwanzigste Implementierung, wobei das eine oder die mehreren räumlichen Kriterien wenigstens ein Gleichmäßigkeitskriterium aus Folgenden umfassen: einen Schwellenwert für den Mediandifferenzbereich, einen Schwellenwert für den Pixelwert, eine Kantendetektionsbestimmung und einen Schwellenwert für die mittlere Summe der absoluten Medianabweichung (MAD) des Blocks; und das eine oder die mehreren zeitlichen Kriterien wenigstens einen Bewegungsdetektionsschwellenwert, der Rauschschätzung faktorisiert, und einen vorhergehenden Bewegungsdetektionsschwellenwert aus einem weiteren Rahmen relativ zu dem aktuellen Rahmen umfassen.
  • In einem weiteren Beispiel kann wenigstens ein maschinenlesbares Medium mehrere Anweisungen enthalten, die in Reaktion darauf, dass sie auf einer Berechnungsvorrichtung ausgeführt werden, die Berechnungsvorrichtung veranlassen, das Verfahren nach einem der vorstehenden Beispiele auszuführen.
  • In noch einem weiteren Beispiel kann eine Einrichtung Mittel zum Ausführen der Verfahren nach irgendeinem der vorstehenden Beispiele enthalten.
  • Die vorstehenden Beispiele können eine spezifische Kombination von Merkmalen enthalten. Die vorstehenden Beispiele sind jedoch in dieser Hinsicht nicht eingeschränkt, und in verschiedenen Implementierungen können die vorliegenden Beispiele das Durchführen nur einer Teilmenge solcher Merkmale, das Durchführen solcher Merkmale in einer anderen Reihenfolge, das Durchführen einer unterschiedlichen Kombination solcher Merkmale und/oder das Durchführen zusätzlicher Merkmale als der ausdrücklich aufgelisteten Merkmale enthalten. Beispielsweise können alle Merkmale, die hier mit Bezug auf irgendwelche beispielhaften Verfahren beschrieben sind, in Bezug auf irgendwelche Beispieleinrichtungen, Beispielsysteme und/oder Beispielartikel implementiert sein, und umgekehrt.

Claims (25)

  1. Computerimplementiertes Verfahren zum Videocodieren, das Folgendes umfasst: Erhalten von Bilddaten von Rahmen einer Videosequenz; Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt; Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen; und Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Anpassen einer Entrauschungsfilterstärke, um den aktuellen Rahmen vor dem Codieren des aktuellen Rahmens vorzuverarbeiten.
  2. Verfahren nach Anspruch 1, wobei das Bestimmen einer räumlichen Rauschschätzung das Verwenden eines Medianbilddatenwerts einer Nachbarschaft von Pixeln um jedes Pixel, die einen gleichmäßigen Kandidatenblock bilden, umfasst.
  3. Verfahren nach Anspruch 1, wobei das Bestimmen einer räumlichen Rauschschätzung Folgendes umfasst: für jedes Blockpixel in einem Block des aktuellen Rahmens: Bestimmen einer Differenz zwischen einem Median der Bilddatenwerte innerhalb eines Nachbarschaftsfensters, das das Blockpixel enthält, und des Bilddatenwerts jedes Nachbarschaftspixels innerhalb des Nachbarschaftsfensters; Summieren der Differenzen für die individuellen Nachbarschaftsfensterpixel, um eine Summe für das Blockpixel bereitzustellen; und Erzeugen eines Blockmittelwerts oder einer anderen Kombination der Summen der Blockpixel eines Blocks und wiederholt für jeden Block in einem Rahmen; und Berechnen eines Rahmenmittelwerts durch Mitteln der Blockmittelwerte, um eine räumliche Rauschschätzung für den Rahmen zu erzeugen.
  4. Verfahren nach Anspruch 1, wobei das Bestimmen der räumlichen Rauschschätzung nur Aufnehmen derjenigen Blöcke mit allen Pixelwerten innerhalb oberer und unterer Grenzen der Pixelgleichmäßigkeit umfasst.
  5. Verfahren nach Anspruch 1, wobei das Bestimmen der räumlichen Rauschschätzung das Bestimmen, ob ein Block eine Objektkante innerhalb des Inhalts der Bilddaten in dem Block aufweist, und nur Verwenden von Blöcken zum Bestimmen der räumlichen Rauschschätzung, die keine Kante innerhalb des Blockinhalts aufweisen, umfasst.
  6. Verfahren nach Anspruch 1, wobei das Bestimmen einer zeitlichen Rauschschätzung das Bestimmen umfasst, ob individuelle der gleichmäßigen Blöcke einen räumlichen repräsentativen Wert aufweisen, der in einen zeitlichen Schwellenwertbereich fällt, um zu bestimmen, ob einer der gleichmäßigen Blöcke verwendet werden sollte, um die zeitliche Rauschschätzung zu erzeugen.
  7. Verfahren nach Anspruch 6, wobei der räumliche repräsentative Wert eine Summe der absoluten Medianabweichung ist.
  8. Verfahren nach Anspruch 1, wobei das Bestimmen einer zeitlichen Rauschschätzung das Erzeugen einer Summe zeitlicher absoluter Differenz (STAD) zwischen Pixeln der individuellen gleichmäßigen Blöcke und entsprechenden Pixeln von Blöcken des weiteren Rahmens umfasst.
  9. Verfahren nach Anspruch 8, das das Vergleichen der STAD individueller gleichmäßiger Blöcke mit einem adaptiven Schwellenwert, der sich abhängig von dem Bildinhalt eines vorhergehenden Rahmens ändert, umfasst.
  10. Verfahren nach Anspruch 9, wobei sich der adaptive Schwellenwert abhängig von einer Rauschschätzung des vorhergehenden Rahmens ändert.
  11. Verfahren nach Anspruch 9, wobei der adaptive Schwellenwert einen Bewegungsdetektionsschwellenwert eines vorhergehenden Rahmens faktorisiert.
  12. Computerimplementiertes System, das Folgendes umfasst: einen Speicher zum Speichern von Bilddaten wenigstens eines Bilds; und wenigstens einen Prozessor, der mit dem Speicher kommunikationstechnisch gekoppelt ist, und wobei der wenigstens eine Prozessor ausgelegt ist zum Arbeiten durch: Erhalten von Bilddaten von Rahmen einer Videosequenz; Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt; Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen; und Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Anpassen einer Entrauschungsfilterstärke, um den aktuellen Rahmen vor dem Codieren des aktuellen Rahmens vorzuverarbeiten.
  13. System nach Anspruch 12, wobei das Bestimmen einer räumlichen Rauschschätzung das Verwenden eines Medianbilddatenwerts einer Nachbarschaft von Pixeln um jedes Pixel, die einen gleichmäßigen Kandidatenblock bilden, umfasst.
  14. System nach Anspruch 12, wobei das Bestimmen einer räumlichen Rauschschätzung Folgendes umfasst: für jedes Blockpixel in einem Block des aktuellen Rahmens: Bestimmen einer Differenz zwischen einem Median der Bilddatenwerte innerhalb eines Nachbarschaftsfensters, das das Blockpixel enthält, und des Bilddatenwerts jedes Nachbarschaftspixels innerhalb des Nachbarschaftsfensters; Summieren der Differenzen für die individuellen Nachbarschaftsfensterpixel, um eine Summe für das Blockpixel bereitzustellen; und Erzeugen eines Blockmittelwerts oder einer anderen Kombination der Summen der Blockpixel eines Blocks und wiederholt für jeden Block in einem Rahmen; und Berechnen eines Rahmenmittelwerts durch Mitteln der Blockmittelwerte, um eine räumliche Rauschschätzung für den Rahmen zu erzeugen.
  15. System nach Anspruch 12, wobei das Bestimmen der räumlichen Rauschschätzung das Bestimmen, ob ein Block eine Objektkante innerhalb des Inhalts der Bilddaten in dem Block aufweist, und nur Verwenden von Blöcken zum Bestimmen der räumlichen Rauschschätzung, die keine Kante innerhalb des Blockinhalts aufweisen, umfasst.
  16. System nach Anspruch 12, wobei das Bestimmen einer zeitlichen Rauschschätzung das Erzeugen einer Summe zeitlicher absoluter Differenz (STAD) zwischen Pixeln der individuellen gleichmäßigen Blöcke und entsprechenden Pixeln der Blöcke des weiteren Rahmens umfasst.
  17. System nach Anspruch 16, wobei der wenigstens eine Prozessor dient zum Arbeiten durch Vergleichen der STAD der individuellen gleichmäßigen Blöcke mit einem adaptiven Bewegungsdetektionsschwellenwert, der ein gewichtetes Mittel eines adaptiven Bewegungsdetektionsschwellenwerts eines vorhergehenden Rahmens und eines geschätzten Rauschpegels eines vorhergehenden Rahmens ist.
  18. System nach Anspruch 17, wobei der geschätzte Rauschpegel des vorhergehenden Rahmens, der verwendet wird, um den adaptiven Bewegungsdetektionsschwellenwert zu berechnen, so ausgelegt ist, dass er entweder eine räumliche Rauschschätzung oder eine zeitliche Rauschschätzung ist.
  19. Wenigstens ein nicht-transitorisches computerlesbares Medium, das darauf gespeicherte Befehle aufweist, die dann, wenn sie ausgeführt werden, eine Berechnungsvorrichtung veranlassen zu arbeiten durch: Erhalten von Bilddaten von Rahmen einer Videosequenz; Bestimmen einer räumlichen Rauschschätzung für einen aktuellen Rahmen basierend auf gleichmäßigen Blöcken von Pixeln, für die gefunden wurde, dass sie eine Gleichmäßigkeit in den Bilddaten aufweisen, die ein oder mehrere Gleichmäßigkeitskriterien erfüllt; Bestimmen einer zeitlichen Rauschschätzung für den aktuellen Rahmen wenigstens teilweise basierend auf Bilddatendifferenzen zwischen den gleichmäßigen Blöcken und Blöcken auf einem weiteren Rahmen; und Bereitstellen entweder der zeitlichen Rauschschätzung oder der räumlichen Rauschschätzung abhängig von wenigstens einem Schwellenwert und zum Anpassen einer Entrauschungsfilterstärke, um den aktuellen Rahmen vor dem Codieren des aktuellen Rahmens vorzuverarbeiten.
  20. Medium nach Anspruch 19, wobei das Bestimmen einer räumlichen Rauschschätzung das Verwenden eines Medianbilddatenwerts einer Nachbarschaft von Pixeln um jedes Pixel, die einen gleichmäßigen Kandidatenblock bilden, umfasst.
  21. Medium nach Anspruch 19, wobei das Bestimmen einer zeitlichen Rauschschätzung das Erzeugen einer Summe zeitlicher absoluter Differenz (STAD) zwischen Pixeln der individuellen gleichmäßigen Blöcke und entsprechenden Pixeln des weiteren Rahmens umfasst.
  22. Medium nach Anspruch 19, wobei die Befehle, die Berechnungsvorrichtung veranlassen, zu arbeiten durch Bestimmen, ob die zeitliche Rauschschätzung oder die räumliche Rauschschätzung zu verwenden ist, um eine Entrauschungsfilterstärke anzupassen, wenigstens davon abhängig, ob ein prozentualer Anteil der Anzahl gleichmäßiger Blöcke des aktuellen Rahmens, die ein oder mehrere räumliche Kriterien und ein oder mehrere zeitliche Kriterien erfüllen, relativ zu der Anzahl aller Blöcke des aktuellen Rahmens, größer als oder kleiner als ein Schwellenwert für den prozentualen Anteil ist.
  23. Medium nach Anspruch 22, wobei das eine oder die mehreren räumlichen Kriterien wenigstens ein Gleichmäßigkeitskriterium aus Folgenden umfassen: einen Schwellenwert für den Mediandifferenzbereich, einen Schwellenwert für den Pixelwert, eine Kantendetektionsbestimmung und einen Schwellenwert für die Summe der mittleren absoluten Medianabweichung (MAD) des Blocks; und das eine oder die mehreren zeitlichen Kriterien wenigstens einen Bewegungsdetektionsschwellenwert, der Rauschschätzung faktorisiert, und einen vorhergehenden Bewegungsdetektionsschwellenwert aus einem weiteren Rahmen relativ zu dem aktuellen Rahmen umfassen.
  24. Wenigstens ein maschinenlesbares Medium, das mehrere Befehle umfasst, die in Reaktion darauf, dass sie auf einer Berechnungsvorrichtung ausgeführt werden, die Berechnungsvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 1-11 auszuführen.
  25. Einrichtung, die Mittel zum Ausführen des Verfahrens nach einem der Ansprüche 1-11 umfasst.
DE102020123396.5A 2019-09-27 2020-09-08 Verfahren und system für inhaltsadaptives entrauschen zum videocodieren Pending DE102020123396A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/586,751 US11197008B2 (en) 2019-09-27 2019-09-27 Method and system of content-adaptive denoising for video coding
US16/586,751 2019-09-27

Publications (1)

Publication Number Publication Date
DE102020123396A1 true DE102020123396A1 (de) 2021-04-01

Family

ID=69720226

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020123396.5A Pending DE102020123396A1 (de) 2019-09-27 2020-09-08 Verfahren und system für inhaltsadaptives entrauschen zum videocodieren

Country Status (3)

Country Link
US (1) US11197008B2 (de)
CN (1) CN112584149A (de)
DE (1) DE102020123396A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563856B (zh) * 2020-05-09 2023-01-10 青岛信芯微电子科技股份有限公司 一种芯片及图像去噪声方法
US11538136B2 (en) * 2020-10-28 2022-12-27 Qualcomm Incorporated System and method to process images of a video stream
CN114679553A (zh) * 2020-12-24 2022-06-28 华为技术有限公司 视频降噪方法及装置
CN113055669B (zh) * 2021-01-15 2023-01-17 北京博雅慧视智能技术研究院有限公司 一种编码前的图像滤波方法及装置
US20220237746A1 (en) * 2021-01-22 2022-07-28 Cvitek Co. Ltd. Image processing method and image processing device using the same
US11798135B2 (en) * 2021-02-24 2023-10-24 Gn Audio A/S Method and system for three-dimensional noise reduction and contrast enhancement of images
CN113438488B (zh) * 2021-06-18 2023-01-31 北京锐马视讯科技有限公司 低码率视频优化编码方法和装置、设备及存储介质
CN113674209A (zh) * 2021-07-20 2021-11-19 浙江大华技术股份有限公司 视频噪声检测方法、终端设备和计算机存储介质
CN113612996B (zh) * 2021-07-30 2024-02-09 百果园技术(新加坡)有限公司 一种基于时域滤波的视频降噪的方法及装置
CN114500802B (zh) * 2022-01-21 2023-05-05 西南科技大学 一种γ辐射环境下成像设备的图像去噪方法
CN116777796B (zh) * 2023-08-22 2024-05-10 深圳市小铭工业互联网有限公司 全自动摄像精准pcba电路板物料检测系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447130B2 (en) * 2007-12-31 2013-05-21 Intel Corporation History-based spatio-temporal noise reduction
US8411993B2 (en) * 2008-12-22 2013-04-02 Panasonic Corporation Apparatus and method for reducing image noise
KR101306242B1 (ko) * 2012-03-26 2013-09-09 엠텍비젼 주식회사 영상의 시간적 잡음 제거 방법 및 장치
KR102182695B1 (ko) * 2014-04-01 2020-11-24 한화테크윈 주식회사 영상 잡음 제거 장치 및 방법
US10313565B2 (en) * 2014-06-26 2019-06-04 Integrated Device Technology, Inc. Methods and apparatuses for edge preserving and/or edge enhancing spatial filter
US10448014B2 (en) * 2017-05-23 2019-10-15 Intel Corporation Content adaptive motion compensated temporal filtering for denoising of noisy video for efficient coding
US20190188829A1 (en) * 2017-12-14 2019-06-20 Multitek Inc. Method, Apparatus, and Circuitry of Noise Reduction
US10964000B2 (en) * 2018-07-17 2021-03-30 Nvidia Corporation Techniques for reducing noise in video

Also Published As

Publication number Publication date
CN112584149A (zh) 2021-03-30
US20200084460A1 (en) 2020-03-12
US11197008B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
DE102020123396A1 (de) Verfahren und system für inhaltsadaptives entrauschen zum videocodieren
DE102020127627A1 (de) Verfahren und System zum Videocodieren mit Intra-Block-Kopieren
Yang et al. Perceptual quality assessment of screen content images
DE112006002124B4 (de) Verfahren zum Verbessern der Kontrastverstärkung
DE19734881C2 (de) Verfahren zum Reduzieren von Blockbildungsartefakten, die beim Kodieren von Filmaufnahmen erzeugt werden
DE112013004778T5 (de) Kodierung von Bildern unter Verwendung eines 3D-Netzes von Polygonen und entsprechenden Strukturen
DE112017000500T5 (de) Bewegungsadaptive Flussverarbeitung zur zeitlichen Rauschunterdrückung
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE102019218316A1 (de) 3d-renderer-zu-videocodierer-pipeline für verbesserte visuelle qualität und geringe latenz
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung
DE102018119625A1 (de) Reduzieren von strukturierten IR-Mustern bei der Stereoskopischen Tiefensensorbildgebung
DE102018130086A1 (de) Mehrkameraprozessor mit merkmalsabgleich
DE112016004109T5 (de) Echtzeit-mehrfach-fahrzeugdetektion und -tracking
CN109587558B (zh) 视频处理方法、装置、电子设备以及存储介质
DE10331048A1 (de) Vorrichtung und Verfahren für die Detektion, ob sich ein ankommendes Bildsignal in einem Filmmodus befindet
DE102015001814A1 (de) Farbkomprimierung unter Verwendung einer selektiven Farbtransformation
DE102020125206A1 (de) Verfahren und system zur mehrkanalvideocodierung mit frameratenänderung und kanalübergreifender referenzierung
DE112016005482T5 (de) Objektdetektion mit adaptiven Kanalmerkmalen
DE102020128902A1 (de) Bewegungsadaptive video-codierung
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
DE102019215911A1 (de) Adaptive inhaltsquantisierung zur videocodierung
CN112508820A (zh) 图像处理方法、装置及电子设备
CN106454386A (zh) 一种基于jnd的视频编码的方法和装置
CN115802038A (zh) 一种量化参数确定方法、装置及一种视频编码方法、装置
DE112016002638B4 (de) Videocodierung mit niedriger Bitrate