DE102020133244A1 - Kantenbewusste Aufwärtsskalierung für verbesserte Bildschirminhaltsqualität - Google Patents

Kantenbewusste Aufwärtsskalierung für verbesserte Bildschirminhaltsqualität Download PDF

Info

Publication number
DE102020133244A1
DE102020133244A1 DE102020133244.0A DE102020133244A DE102020133244A1 DE 102020133244 A1 DE102020133244 A1 DE 102020133244A1 DE 102020133244 A DE102020133244 A DE 102020133244A DE 102020133244 A1 DE102020133244 A1 DE 102020133244A1
Authority
DE
Germany
Prior art keywords
pixel
edge
target output
potential
edges
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
DE102020133244.0A
Other languages
English (en)
Inventor
Vijay Sundaram
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 DE102020133244A1 publication Critical patent/DE102020133244A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/403Edge-driven scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • G06V20/635Overlay text, e.g. embedded captions in a TV program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

Eine Einrichtung für eine kantenbewusste Aufwärtsskalierung ist hierin beschrieben. Die Einrichtung umfasst einen Potentielle-Kantendetektor, einen Dünne-Kantendetektor, einen Eindirektionale-Kantendetektor, einen Korrelationsdetektor und eine Korrektureinrichtung. Der Potentielle-Kantendetektor identifiziert potentielle Kanten in einem Eingabebild, und der Dünne-Kantendetektor detektiert dünne Kanten in den potentiellen Kantenpixeln des Eingabebildes. Der Eindirektionale-Kantendetektor detektiert eindirektionale Kanten in den potentiellen Kantenpixeln des Eingabebildes, und der Korrelationsdetektor detektiert stark korrelierte Kanten in den potentiellen Kantenpixeln des Eingabebildes. Die Korrektureinrichtung leitet einen Zielausgabewert basierend auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels ab.

Description

  • Hintergrund
  • Bildinhalt wird unter Verwendung von Pixeln gerendert, die die kleinste renderbare Einheit des Bildes darstellen. In verschiedenen Anwendungen kann ein Eingabebild durch Abtasten des Inhalts des Eingabebildes bei verschiedenen Pixeln und Verarbeiten der Abtastungen skaliert werden, um ein Ausgabebild einer im Vergleich zu dem Eingabebild unterschiedlichen Größe zu erhalten.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Systems für eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität gemäß der vorliegenden Techniken;
    • 2 ist eine Darstellung von 3x3-Sobel-Matrizen;
    • 3 ist eine Darstellung von dünnen Kanten;
    • 4 ist eine Darstellung einer linearen Anordnung von Pixeln;
    • 5 ist eine Darstellung von eindirektionalen Kanten;
    • 6 ist eine Darstellung einer Nachbarschaft von 5x5 Pixeln;
    • 7 ist ein Prozessablaufdiagramm eines Verfahrens, das eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität implementiert;
    • 8 ist ein Prozessablaufdiagramm eines Verfahrens für eine Detektion potentieller Kanten während einer kantenbewussten Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität;
    • 9 ist ein Prozessablaufdiagramm eines Verfahrens für eine Korrektur während einer kantenbewussten Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität;
    • 10 ist eine Darstellung einer Reihe von Bildern;
    • 11 ist ein Blockdiagramm eines Systems, das eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität ermöglicht; und
    • 12 ist ein Blockdiagramm, das computerlesbare Medien zeigt, die Code für eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität speichern.
  • Gleiche Zahlen werden in der gesamten Offenbarung und den Figuren verwendet, um ähnliche Komponenten und Merkmale zu bezeichnen. Zahlen in der 100er-Reihe bezeichnen Merkmale, die ursprünglich in 1 zu finden sind; Zahlen in der 200er-Reihe bezeichnen Merkmale, die ursprünglich in 2 zu finden sind; und so weiter.
  • Beschreibung der Ausführungsformen
  • Eine Vielzahl von Anwendungen können eine Bildskalierung erfordern, die eine Bildaufwärtsskalierung und eine Bildabwärtsskalierung beinhalten kann. Eine Bildskalierung ist der Prozess einer Größenänderung des Bildes (Aufwärtsskalierung oder Abwärtsskalierung) in Einsatzbereichen, die ein Anpassen des Bildes oder Videos an eine Anzeigeauflösung erfordern. Eine Bildaufwärtsskalierung kann eine Größe des ursprünglichen Bildes vergrößern, während eine Bildabwärtsskalierung die Größe des ursprünglichen Bildes verringern kann. Im Allgemeinen wird eine Bildaufwärtsskalierung durch Abtastratenkonvertierung des Eingabebildes über einen Rekonstruktionsfilter erzielt. Eine Bildabwärtsskalierung wird durch Heruntertaktung der Abtastrate eines kleineren Bildes aus einem ursprünglichen Eingabebild mit höherer Auflösung erzielt.
  • Die zu skalierenden Bilder können Bildschirminhalt beinhalten. Wie hierin verwendet, bezeichnet Bildschirminhalt im Allgemeinen digital generierte Pixel, die in Bildern oder Video vorliegen. Digital generierte Pixel können andere Eigenschaften als durch eine Bildgebungsvorrichtung oder eine Kamera aufgenommene Pixel aufweisen. In Beispielen umfasst Bildschirminhalt Video, das einen beträchtlichen Anteil an gerenderten Grafiken, Text oder Animation anstelle von durch eine Kamera aufgenommenen Videoszenen enthält. Durch eine Bildgebungsvorrichtung oder eine Kamera aufgenommene Pixel enthalten Inhalt, der von der realen Welt aufgenommen wurde, während Pixel von Bildschirminhalt elektronisch generiert werden. Mit anderen Worten ist die ursprüngliche Quelle von Bildschirminhalt elektronisch.
  • Bildschirminhalt oder durch einen Computer generierte/gerenderte Inhaltsbilder bestehen in der Regel aus weniger Farben, einfacheren Formen, einer größeren Häufigkeit von dünnen Linien und schärferen Farbübergängen im Vergleich zu anderem Inhalt, wie beispielsweise natürlichem Inhalt. Bei einer Aufwärtsskalierung von Bildschirminhalt erzeugen herkömmliche Skalierungslösungen mit Filtern mit großem Abgriff Artefakte bei einer Skalierung von Bereichen mit dünnen Kanten in dem Bildschirminhalt. Die Artefakte manifestieren sich als Farbartefakte und Intensitätsverläufe, was zu unscharfen skalierten Bildern führt. Wie hierin verwendet, kann ein Filter mit großem Abgriff ein Filter sein, der während einer herkömmlichen Bildaufwärtsskalierung verwendet wird. Zum Beispiel kann ein gattungsgemäßes Filter mit großem Abgriff bei Rekonstruktionstechniken wie beispielsweise Nächster-Nachbar-Interpolation, bilinearer Interpolation, bikubischen Interpolationen, Sinc-Abtastratenkonvertierung, Lanczos-Abtastratenkonvertierung, Fourier-basierten Interpolationen und dergleichen verwendet werden.
  • Diese allgemeinen Rekonstruktionstechniken zielen häufig auf Anwendungsfälle ab, in denen die Ausgabequalität nicht von äußerster Wichtigkeit ist, wie beispielsweise die Nächster-Nachbar- und bilinearen Interpolationen. Eine herkömmliche kantengerichtete Interpolation, wie beispielsweise eine Lanczos-Abtastratenkonvertierung, liefert in Bereichen mit dünnen Kanten schlechte Ergebnisse. Darüber hinaus führt beim Filtern mit ausschließlich Lanczos-Kernen, die einen Filter mit großem Abgriff beinhalten, eine Skalierung über dünne Kanten zu unvorhersagbarem Verhalten, wie unter anderem Artefakten zwischen den Kanten und Intensitätsverläufen über die Kanten, was zu einer unscharfen Ausgabe führt. Dünne Kanten sind typischerweise in Bildschirminhalt zu sehen, insbesondere wenn Text einem einfarbigen Hintergrund überlagert ist oder bei Spieleinhalt mit gerenderten Szenen. Häufig sind Bereiche eines Bildes mit dünnen Kanten wichtige Teile des Bildes, wie beispielsweise interaktiver Text oder der Punktanzeigebereich eines Spiels. Wichtige Teile des Bildes sind die Abschnitte des Bildes, die ein wesentliches Konzept oder wesentliche Informationen von dem Bild vermitteln.
  • Die vorliegenden Techniken ermöglichen eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität. In Ausführungsformen wird eine Bildaufwärtsskalierung optisch durch Eliminieren von Artefakten verbessert, die infolge einer Verarbeitung von Bereichen mit dünnen Kanten in Bildschirminhalt auftreten. Die optischen Qualitätsverbesserungen setzen sich direkt in eine bessere Gesamtnutzererfahrung um. Die vorliegenden Techniken verbessern die Bildaufwärtsskalierungsqualität durch Charakterisieren von Inhalt des Eingabebildes und Anwenden unterschiedlicher Verarbeitungsschritte auf interessierende Bereiche in dem Eingabebild. Interessierende Bereiche können sich auf die Merkmale in dem Eingabebild beziehen, die während einer Aufwärtsskalierung wahrscheinlich Artefakte erzeugen. Die interessierenden Bereiche können sich auf Regionen in dem Eingabebild beziehen, die während einer Aufwärtsskalierung über eine Lanczos-Abtastratenkonvertierung Artefakte erzeugen. Schließlich können sich in Ausführungsformen die interessierenden Bereiche auch auf Regionen in dem Eingabebild entlang des Rands einer in dem Eingabebild detektierten dünnen Kante beziehen.
  • Die interessierenden Bereiche können durch über eine Inhaltsanalyse detektierte Pixel identifiziert werden. Geeignete Skalierungsverfahren werden dann auf die interessierenden detektierten Pixel basierend auf dem Skalierungsfaktor angewendet (Rückabbildungsposition in dem Eingabebild). Zudem wird die Detektion/Korrektur ausschließlich auf die Luminanzkomponente des Bildes angewendet. Luminanz (Luma) bezieht sich wie hierin verwendet auf eine Helligkeitsdarstellung in Zusammenhang mit verschiedenen Farbräumen. Zum Beispiel ist der YUV-Farbraum durch eine Luminanzkomponente (Y) und zwei Chrominanzkomponenten definiert, die als eine Blau-Projektion (U) und eine Rot-Projektion (V) bezeichnet werden. Wie unten beschrieben, korrigieren die vorliegenden Techniken die Luminanzkomponenten eines Eingabebildes, während die Chrominanzkomponenten nicht verändert werden.
  • Die interessierenden Bereiche können Merkmale wie beispielsweise Kanten sein. Im Allgemeinen ist eine Kante eine Ansammlung von Pixeln in einem digitalen Bild, in denen sich ein Pixelwert abrupt ändert. Zum Beispiel können die Pixel in einem digitalen Bild, in denen sich der Luminanzwert schnell ändert, in einen Satz von gekrümmten Liniensegmenten organisiert werden, die als eine Kante bezeichnet werden. Jedes Pixel stellt einen diskreten Punkt in dem Bild dar. Es gibt eine Annahme einer zugrundeliegenden stetigen Pixelwertfunktion, von der die Pixel abgetastet wurden. Dementsprechend kann an einer Kante die abrupte Änderung bei Pixelwerten sukzessive auftreten, wobei ein Teil der Pixeländerung über eine Reihe von Pixeln auftritt. Eine Kante kann eine Richtung aufweisen, wobei die Richtung der Kante horizontal oder vertikal ist. Eine Kante kann als „dünn“ bezeichnet werden, wenn die Anzahl an Pixeln entlang der Breite der Kante unterhalb eines Schwellwerts liegt. Wie hierin beschrieben, ist eine dünne Kante eine Kante mit einem Pixel, zwei Pixeln oder drei Pixeln wie unten beschrieben. Die Kanten mit einem Pixel, zwei Pixeln oder drei Pixeln sind typischerweise in Text-/Bildschirm- und Spieleinhalt zu finden.
  • 1 ist ein Blockdiagramm eines Systems 100 für eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität gemäß der vorliegenden Techniken. Das Eingabebild 102 kann in das System 100 eingegeben werden, um ein endgültiges skaliertes Ausgabebild 104 zu erhalten. Das System 100 umfasst eine vertikale Kantendetektion 106, eine vertikale Skalierung 108, eine horizontale Kantendetektion 110 und eine horizontale Skalierung 112. Das Blockdiagramm kann in der Rechenvorrichtung 1100 von 11 unten oder dem computerlesbaren Medium 1200 von 12 unten implementiert werden. Zur Einfachheit der Beschreibung können die vorliegenden Techniken unter Verwenden einer einzelnen Richtung für eine Detektion von Kanten, eine Korrektur von Kanten und eine nachfolgende Skalierung der Kanten beschrieben sein. Jedoch wenden die vorliegenden Techniken eine Skalierung sowohl in einer vertikalen Richtung als auch in einer horizontalen Richtung an. Zusätzlich ist zu beachten, dass die vorliegenden Techniken hardwareeffizient sind. Insbesondere können die vorliegenden Techniken durch das Hinzufügen von logischen Additionen und Verschiebungen für eine Detektion (keine Multiplikatoren) und durch Varianten von bilinearen Interpolationen für eine Skalierung im Vergleich zu herkömmlichen Skalierungslösungen umgesetzt werden.
  • Die kantenbewusste Aufwärtsskalierungsmethodik wird als ein zweistufiger Prozess angewendet: erstens Detektion von interessierenden Bereichen und zweitens Anwenden der linearen Skalierungsvarianten auf die interessierenden Bereiche als eine Korrektur. Die Detektion und Korrektur kann sowohl an Kanten mit einer vertikalen Richtung als auch an Kanten mit einer horizontalen Richtung durchgeführt werden. In Ausführungsformen wird die Kantenrichtung als die Richtung eines Einheitsvektors berechnet, der senkrecht zu der Kantennormalen ist. Die Kantennormale kann ein Einheitsvektor in der Richtung einer maximalen Intensitätsänderung sein. Die vorliegenden Techniken umfassen eine vertikale Detektion 106, eine vertikale Skalierung 108, eine horizontale Detektion 110 und eine horizontale Skalierung 112.
  • Bei der vertikalen Detektion 106 und der horizontalen Detektion 110 werden Pixel am Rand einer Kante basierend auf einer Analyse des speziellen Bildinhalts identifiziert. Die Kantenpixel umfassen die Pixel, die zu einer Kante aufsteigen, und Pixel, die von einer Kante wegführen. Im Allgemeinen werden sowohl die vertikale Detektion 106 als auch die horizontale Detektion 110 auf Bildschirminhalt, Text oder Spieleinhalt angewendet. An natürlichem Video finden keine Detektionen statt. Zwar ist dargestellt, dass eine vertikale Detektion 106 vor einer horizontalen Detektion 110 stattfindet, die vertikale Detektion 106 und die horizontale Detektion 110 können jedoch in beliebiger Reihenfolge stattfinden.
  • Bei einer Detektion 120 potentieller Kanten während einer vertikalen Detektion 106 werden alle interessierenden Pixel isoliert. In Ausführungsformen faltet die Detektion 120 potentieller Kanten das Eingabebild mit drei 3x3-Sobel-Kantendetektoren, die summiert und einer Schwellwertoperation unterzogen werden, um potentielle Kantenpixel zu identifizieren. Die Sobel-Kantendetektoren können die Sobel-Matrizen 200 von 2 sein. Die interessierenden Pixel können als potentielle vertikale Kanten detektiert werden. Durch Detektieren der interessierenden Pixel als potentielle vertikale Kanten wird eine nachfolgende Kantendetektion und Korrektur auf die potentiellen vertikalen Kanten und nicht das gesamte Eingabebild angewendet.
  • Bei einer Kantendetektion 122 dünner Kanten werden vertikale Kanten als eine Kante mit einem, zwei oder drei Pixeln detektiert, wie in Bezug auf 3 erörtert. Eine Detektion 124 eindirektionaler Kanten bestimmt, ob das Pixel eine eindirektionale Kante ist, wie in 5 dargestellt. Wenn ein Pixel während einer Kantendetektion 122 nicht als ein Pixel einer dünnen Kante klassifiziert wird, bestimmt die Kantendetektion 124, ob das Pixel eine eindirektionale Kante ist. Bei einer horizontalen Korrelationsdetektion 126 wird, wenn das aktuelle Pixel nicht ein Pixel einer dünnen Kante oder ein Pixel einer eindirektionalen Kante ist, bestimmt, ob das Pixel zu einer starken horizontalen Kante gehört. Im Allgemeinen tritt starker direktionaler Inhalt in Bereichen auf, in denen eine Korrelation von Pixeln in einer spezifischen Richtung vorliegt. Dementsprechend weist ein Pixel einen starken direktionalen Inhalt in einer speziellen Richtung auf, wenn andere benachbarte Pixel denselben direktionalen Inhalt aufzeigen, wodurch eine direktionale Korrelation über eine Gruppe von Pixeln erzeugt wird. Wie hierin verwendet, ist eine starke horizontale Kante eine konsistente Korrelation von Pixeln (nicht nur eines oder zwei) über eine Nachbarschaft von Pixeln in der horizontalen Richtung. Die dünnen Kanten, eindirektionalen Kanten und stark korrelierten Kanten können ferner wie unten beschrieben als eine aufsteigende Kante oder eine abfallende Kante klassifiziert werden. Sobald alle Pixel detektiert sind, die zu dünnen Kanten, eindirektionalen Kanten und stark korrelierten Kanten gehören, und die potentiellen Kantenpixel als aufsteigende Kanten- oder absteigende Kantenpixel klassifiziert sind, wird eine vertikale Skalierung 108 angewendet. Während der vertikalen Skalierung 108 wird eine Korrektur 130 auf jedes Pixel gemäß dem Kantentyp und der Klassifikation angewendet. Während der Korrektur werden für die detektierten potentiellen Kanten die Pixelwerte für das Zielausgabebild mit einer linearen Ausgabe gemäß dem Kantentyp und der Klassifikation überschrieben. Dementsprechend leiten in Ausführungsformen die vorliegenden Techniken Pixelwerte für ein aufwärts skaliertes Zielausgabebild ab, die als Ersatzwerte für ein anderes Rekonstruktionsfilter dienen. Das Rekonstruktionsfilter kann zum Beispiel eine Nächster-Nachbar-Interpolation, eine bilineare Interpolation, bikubische Interpolationen, eine Sinc-Abtastratenkonvertierung, eine Lanczos-Abtastratenkonvertierung, Fourier-basierte Interpolationen sein.
  • Nach der vertikalen Detektion 106 und der vertikalen Skalierung 108 werden eine horizontale Detektion 110 und eine horizontale Skalierung in einer ähnlichen Weise durchgeführt. Bei einer Detektion 140 potentieller Kanten während einer horizontalen Detektion 110 werden alle interessierenden Pixel isoliert. In Ausführungsformen faltet die Detektion 140 potentieller Kanten das Eingabebild mit drei 3x3-Sobel-Kantendetektoren, die summiert und einer Schwellwertoperation unterzogen werden, um potentielle Kantenpixel zu identifizieren. Die Sobel-Kantendetektoren können die Sobel-Matrizen 200 von 2 sein. Die interessierenden Pixel können als potentielle horizontale Kanten detektiert werden. Durch Detektieren der interessierenden Pixel als potentielle horizontale Kanten wird eine nachfolgende Kantendetektion und Korrektur auf die potentiellen horizontalen Kanten und nicht das gesamte Eingabebild angewendet.
  • Bei einer Kantendetektion 142 dünner Kanten werden horizontale Kanten als eine Kante mit einem, zwei oder drei Pixeln detektiert, wie in Bezug auf 3 erörtert. Eine Detektion 144 eindirektionaler Kanten bestimmt, ob das Pixel eine eindirektionale Kante ist, wie in 5 dargestellt. Wenn ein Pixel während einer Kantendetektion 142 nicht als ein Pixel einer dünnen Kante klassifiziert wird, bestimmt die Kantendetektion 144, ob das Pixel eine eindirektionale Kante ist. Bei einer vertikalen Korrelationsdetektion 146 wird, wenn das aktuelle Pixel nicht ein Pixel einer dünnen Kante oder ein Pixel einer eindirektionalen Kante ist, bestimmt, ob das Pixel zu einer starken vertikalen Kante gehört. Wie hierin verwendet, ist eine starke vertikale Kante eine konsistente Korrelation von Pixeln (nicht nur eines oder zwei) über eine Nachbarschaft von Pixeln in der vertikalen Richtung. Die dünnen Kanten, eindirektionalen Kanten und stark korrelierten Kanten können ferner wie unten beschrieben als eine aufsteigende Kante oder eine abfallende Kante klassifiziert werden. Sobald alle Pixel detektiert sind, die zu dünnen Kanten, eindirektionalen Kanten und stark korrelierten Kanten gehören, und die potentiellen Kantenpixel als aufsteigende Kanten- oder absteigende Kantenpixel klassifiziert sind, wird eine horizontale Skalierung 112 angewendet. Während der horizontalen Skalierung 112 wird eine Korrektur 150 auf jedes Pixel gemäß dem Kantentyp und der Klassifikation angewendet. Während der Korrektur werden für die detektierten potentiellen Kanten die Pixelwerte für das Zielausgabebild mit einer linearen Ausgabe gemäß dem Kantentyp und der Klassifikation überschrieben. Ähnlich wie bei der vertikalen Skalierung leiten in Ausführungsformen die vorliegenden Techniken Pixelwerte für ein aufwärts skaliertes Zielausgabebild ab, die als Ersatzwerte für ein anderes Rekonstruktionsfilter dienen. Wieder kann das Rekonstruktionsfilter zum Beispiel eine Nächster-Nachbar-Interpolation, eine bilineare Interpolation, bikubische Interpolationen, eine Sinc-Abtastratenkonvertierung, eine Lanczos-Abtastratenkonvertierung, Fourier-basierte Interpolationen sein.
  • In Beispielen ist das endgültige skalierte Bild 104 eine Kombination von Zielausgabepixelwerten, die umfassen: 1) für potentielle Kanten die linearen Ausgabepixelwerte, die gemäß einem Kantentyp und einer Klassifikation erhalten werden, und 2) für das restliche Bild wird eine Aufwärtsskalierung unter Verwenden einer beliebigen von einer Nächster-Nachbar-Interpolation, einer bilinearen Interpolation, bikubischen Interpolationen, einer Sinc-Abtastratenkonvertierung, einer Lanczos-Abtastratenkonvertierung oder Fourier-basierten Interpolationen vorgenommen. In Ausführungsformen ist das zum Erhalten der linearen Ausgabe verwendete Skalierungsverfahren ein direktionaler Skalar. Die Skalierung wird zunächst in der vertikalen Richtung angewendet, um eine endgültige vertikale Auflösung zu erreichen, gefolgt von einer Skalierung entlang der horizontalen Richtung, um die beabsichtigte endgültige Auflösung zu erreichen. Die vorliegenden Techniken wenden die Detektions- und Korrekturalgorithmen auf jede Skalierungsrichtung an.
  • 2 ist eine Darstellung von 3x3-Sobel-Matrizen 200. Um potentielle Kanten bei einer Detektion 120 potentieller Kanten und Detektion 140 potentieller Kanten (1) zu identifizieren, wird das Eingabebild mit drei 3x3-Sobel-Kantendetektoren gefaltet, summiert und einer Schwellwertoperation unterzogen, um potentielle Kantenpixel zu identifizieren. Eine Kantendetektion wird unter Verwenden von 2x3-Sobel-Matrizen und in K unterschiedlichen Richtungen für vier mögliche Winkel, vertikal 202, horizontal 204, fünfundvierzig Grad 206 und einhundertfünfunddreißig Grad 208, durchgeführt. In Ausführungsformen isolieren die Detektion 120 potentieller Kanten und die Detektion 140 potentieller Kanten die interessierenden Pixel für eine weitere Verarbeitung, anstatt die Detektion dünner Kanten, die Detektion eindirektionaler Kanten und die Detektion stark korrelierter Kanten auf alle Pixel in dem Eingabebild anzuwenden. Bei einer vertikalen Detektion 120 potentieller Kanten (1) wird das Eingabebild mit der horizontalen Matrix 204, der Fünfundvierzig-Grad-Matrix 206 und der Einhundertfünfunddreißig-Grad-Matrix gefaltet, um horizontale und abgewinkelte Kanten zu detektieren. Bei einer horizontalen Detektion 140 potentieller Kanten (1) wird das Eingabebild mit der vertikalen Matrix 202, der Fünfundvierzig-Grad-Matrix 206 und der Einhundertfünfunddreißig-Grad-Matrix gefaltet, um vertikale und abgewinkelte Kanten zu detektieren. Die Sobel-Faltungen werden berechnet, summiert und mit einem programmierbaren Kantenschwellwert verglichen, um potentielle Kantenpixel in dem Bild zu identifizieren. Die hierin beschriebenen Schwellwerte können basierend auf dem Inhalt und einer gewünschten Ausgabequalität programmierbar sein.
  • 3 ist eine Darstellung von dünnen Kanten 300. Für jedes während einer vertikalen Detektion 120 potentieller Kanten oder einer horizontalen Detektion 140 potentieller Kanten gefundene potentielle Kantenpixel werden dünne Kanten detektiert. Dies kann zum Beispiel bei einer vertikalen Detektion 122 dünner Kanten oder einer horizontalen Detektion 142 dünner Kanten durchgeführt werden. Zur Einfachheit der Beschreibung werden Kanten mit einer Dünne von einem Pixel, zwei Pixeln und drei Pixeln als dünne Kanten beschrieben. Dies ist jedoch eine Designentscheidung und kann gemäß der speziellen Anwendung geändert werden. Die Zahl bezeichnet eine Dünne, in Anzahlen an Pixeln, die als eine Kante detektiert wurden. 4 ist eine Darstellung einer linearen Anordnung von Pixeln 400. Die lineare Anordnung von Pixeln kann parallel zu der Skalierungsrichtung verlaufen. Für jede Skalierungsrichtung wird eine lineare Anordnung zu der Detektion 122/142 dünner Kanten eingegeben. Die lineare Anordnung von Pixeln 400 umfasst neun als P0 bis P8 nummerierte Pixel in der Skalierungsrichtung, wobei P4 das mittlere/aktuelle Pixel ist i.
  • Eine aufsteigende Kante kann als ein Pixel definiert werden, in dem die potentielle Kante beginnt. Gleichermaßen kann eine absteigende Kante als ein Pixel definiert werden, in dem die potentielle Kante endet. Um aufsteigende Kantenpixel zu identifizieren, werden Pixeldifferenzen für die lineare Anordnung von Pixeln berechnet. Eine Pixeldifferenz wie hierin verwendet ist eine Änderung bei Luminanzwerten zwischen unmittelbaren/angrenzenden Paaren von Pixeln der linearen Anordnung von Pixeln in der Skalierungsrichtung. Bei einer linearen Anordnung von N Pixeln gibt es N-1 Pixeldifferenzen. Eine Pixeldifferenz kann wie folgt berechnet werden: E i n e P i x e l D i f f i , j = | P i x e l i P i x e l j |
    Figure DE102020133244A1_0001
    wobei Pixel i und Pixel j Pixel in einer linearen Anordnung von Pixeln sind.
  • Erneut Bezug nehmend auf 3 ist eine Kante mit einem Pixel mit dem Bezugszeichen 310 dargestellt. Ein aktuelles Pixel i ist ein Pixel einer aufsteigenden Kante (LE - Leading Edge) aus einer linearen Anordnung von neun Pixeln für eine Kante mit einem Pixel, wenn Folgendes wahr ist: E i n e P i x e l D i f f P i 1 , P i U n t e r e r L E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i + 1 O b e r e r L E S c h w e l l w e r t  &&  E i n e P i x e l D i f f P i , P i + 2                                      U n t e r e r L E S c h w e l l w e r t
    Figure DE102020133244A1_0002
  • Die Schwellwerte UntererLESchwellwert und UntererLESchwellwert definieren eine Bandbreite von Luminanzänderungen, und Bedingungen in Bezug auf diese Schwellwerte werden verwendet, um zu bestimmen, ob das aktuelle Pixel i ein Pixel einer aufsteigenden Kante (LE) einer dünnen Kante ist. Im Allgemeinen sind die Schwellwerte UntererLESchwellwert und UntererLESchwellwert programmierbar. Es wird ein Beispiel betrachtet, in dem das aktuelle Pixel i Pixel P4 der linearen Anordnung von Pixeln 400 ist. Gleichung 1, wenn das Pixel i Pixel P4 ist, ist wie folgt:                 E i n e P i x e l D i f f P 3, P 4 U n t e r e r L E S c h w e l l w e r t  && E i n e P i x e l D i f f P 4, P 5 O b e r e r L E S c h w e l l w e r t  &&  E i n e P i x e l D i f f P 4, P 6                     U n t e r e r L E S c h w e l l w e r t
    Figure DE102020133244A1_0003
  • Dementsprechend ist, wenn (1) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem unmittelbar vorausgehenden Pixel kleiner als ein unterer Schwellwert ist; (2) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem ersten unmittelbar nachfolgenden Pixel größer als ein oberer Schwellwert ist; und (3) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem zweiten unmittelbar nachfolgenden Pixel kleiner als ein unterer Schwellwert ist; dann das aktuelle Pixel P4 ein aufsteigendes Kantenpixel. Mit anderen Worten, wenn die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und seinem unmittelbar benachbarten Pixel P3 und Pixel P5 hinreichend groß ist, um als eine abrupte Änderung betrachtet zu werden, und die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem zweiten unmittelbar nachfolgenden Pixel P6 hinreichend klein ist, um eine Rückkehr zu vorausgehenden Luminanzwerten anzuzeigen.
  • In 3 ist eine Kante mit zwei Pixeln mit dem Bezugszeichen 320 dargestellt. Ein aktuelles Pixel i ist ein Pixel einer aufsteigenden Kante (LE) aus einer linearen Anordnung von neun Pixeln für eine Kante mit zwei Pixeln, wenn Folgendes wahr ist:                   E i n e P i x e l D i f f P i 1 , P i U n t e r e r L E S c h w e l l w e r t  &&                    E i n e P i x e l D i f f P i , P i + 1 O b e r e r L E S c h w e l l w e r t  &&  ( E i n e P i x e l D i f f P i + 1 , P i + 2 U n t e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P i , P i + 2           O b e r e r L E S c h w e l l w e r t )  &&                    E i n e P i x e l D i f f P i , P i + 3 U n t e r e r L E S c h w e l l w e r t
    Figure DE102020133244A1_0004
  • Es wird ein Beispiel betrachtet, in dem das aktuelle Pixel i Pixel P4 der linearen Anordnung von Pixeln 400 ist. Gleichung 3, wenn das Pixel i Pixel P4 ist, ist wie folgt:                 E i n e P i x e l D i f f P 3 , P 4 U n t e r e r L E S c h w e l l w e r t  &&                 E i n e P i x e l D i f f P 4 , P 5 O b e r e r L E S c h w e l l w e r t  && ( E i n e P i x e l D i f f P 5 , P 6 U n t e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P 4 , P 6      O b e r e r L E S c h w e l l w e r t ) &&                E i n e P i x e l D i f f P 4 , P 7 U n t e r e r L E S c h w e l l w e r t
    Figure DE102020133244A1_0005
  • Dementsprechend ist, wenn (1) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem unmittelbar vorausgehenden Pixel kleiner als ein unterer Schwellwert ist; (2) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem ersten unmittelbar nachfolgenden Pixel größer als ein oberer Schwellwert ist; (3) eine Pixeldifferenz zwischen dem ersten unmittelbar nachfolgenden Pixel und dem zweiten unmittelbar nachfolgenden Pixel kleiner als ein unterer Schwellwert ODER eine Pixeldifferenz zwischen dem aktuellen Pixel und dem zweiten unmittelbar nachfolgenden Pixel ist; UND (4) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem dritten unmittelbar nachfolgenden Pixel größer als ein unterer Schwellwert ist, dann P4 ein aufsteigendes Kantenpixel einer Kante mit zwei Pixeln.
  • Mit anderen Worten ist bei einer Kante mit zwei Pixeln die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und seinem unmittelbar benachbarten Pixel P3 hinreichend groß, um als eine abrupte Änderung betrachtet zu werden. Die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem ersten unmittelbar nachfolgenden Pixel P5 ist größer als oder gleich dem oberen Schwellwert. Zusätzlich ist entweder die Differenz bei einer Luminanz zwischen dem ersten unmittelbar nachfolgenden Pixel P5 und dem zweiten unmittelbar nachfolgenden Pixel P6 kleiner als oder gleich einem unteren Schwellwert ODER die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem zweiten unmittelbar nachfolgenden Pixel P6 ist größer als oder gleich dem oberen Schwellwert. Schließlich ist die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem dritten unmittelbar nachfolgenden Pixel P7 hinreichend klein, um eine Rückkehr zu vorausgehenden Luminanzwerten anzuzeigen.
  • In 3 ist eine Kante mit drei Pixeln mit dem Bezugszeichen 330 dargestellt. Ein aktuelles Pixel i ist ein Pixel einer aufsteigenden Kante (LE) aus einer linearen Anordnung von neun Pixeln für eine Kante mit drei Pixeln, wenn Folgendes wahr ist:                 E i n e P i x e l D i f f P i 1 , P i U n t e r e r L E S c h w e l l w e r t  &&                  E i n e P i x e l D i f f P i , P i + 1 O b e r e r L E S c h w e l l w e r t  && ( E i n e P i x e l D i f f P i + 1 , P i + 2 U n t e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P i , P i + 2                    O b e r e r L E S c h w e l l w e r t ) && ( E i n e P i x e l D i f f P i + 2 , P i + 3 U n t e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P i , P i + 3                   O b e r e r L E S c h w e l l w e r t ) &&                 E i n e P i x e l D i f f P i , P i + 4 U n t e r e r L E S c h w e l l w e r t
    Figure DE102020133244A1_0006
  • Es wird ein Beispiel betrachtet, in dem das aktuelle Pixel i Pixel P4 der linearen Anordnung von Pixeln 400 ist. Gleichung 5, wenn das Pixel i Pixel P4 ist, ist wie folgt:                  E i n e P i x e l D i f f P 3 , P 4 U n t e r e r L E S c h w e l l w e r t  &&                  E i n e P i x e l D i f f P 4 , P 5 O b e r e r L E S c h w e l l w e r t  && ( E i n e P i x e l D i f f P 5 , P 6 U n t e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P 4 , P 6       O b e r e r L E S c h w e l l w e r t ) && ( E i n e P i x e l D i f f P 6 , P 7 U n t e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P 4 , P 7                    O b e r e r L E S c h w e l l w e r t ) &&                E i n e P i x e l D i f f P 4 , P 8 U n t e r e r L E S c h w e l l w e r t
    Figure DE102020133244A1_0007
  • Bei einer Kante mit drei Pixeln ist, wenn (1) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem unmittelbar vorausgehenden Pixel kleiner als ein unterer Schwellwert ist; (2) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem ersten unmittelbar nachfolgenden Pixel größer als ein oberer Schwellwert ist; (3) eine Pixeldifferenz zwischen dem ersten unmittelbar nachfolgenden Pixel und dem zweiten unmittelbar nachfolgenden Pixel kleiner als ein unterer Schwellwert ODER eine Pixeldifferenz zwischen dem aktuellen Pixel und dem zweiten unmittelbar nachfolgenden Pixel ist; (4) eine Pixeldifferenz zwischen dem zweiten unmittelbar nachfolgenden Pixel und dem dritten unmittelbar nachfolgenden Pixel kleiner als oder gleich einem unteren Schwellwert ist ODER eine Pixeldifferenz zwischen dem aktuellen Pixel und dem dritten unmittelbar nachfolgenden Pixel größer als oder gleich einem oberen Schwellwert ist; UND (5) eine Pixeldifferenz zwischen dem aktuellen Pixel und dem vierten unmittelbar nachfolgenden Pixel kleiner als oder gleich einem unteren Schwellwert ist, dann P4 ein aufsteigendes Kantenpixel einer dünnen Kante mit drei Pixeln.
  • Mit anderen Worten ist bei einem aufsteigenden Kantenpixel einer Kante mit drei Pixeln die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und seinem unmittelbar benachbarten Pixel P3 hinreichend groß, um als eine abrupte Änderung betrachtet zu werden. Die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem ersten unmittelbar nachfolgenden Pixel P5 ist größer als oder gleich dem oberen Schwellwert. Zusätzlich ist entweder die Differenz bei einer Luminanz zwischen dem ersten unmittelbar nachfolgenden Pixel P5 und dem zweiten unmittelbar nachfolgenden Pixel P6 kleiner als oder gleich einem unteren Schwellwert ODER die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem zweiten unmittelbar nachfolgenden Pixel P6 ist größer als oder gleich dem oberen Schwellwert. Ferner ist entweder die Differenz bei einer Luminanz zwischen dem zweiten unmittelbar nachfolgenden Pixel (P6) und dem dritten unmittelbar nachfolgenden Pixel (P7) kleiner als oder gleich einem unteren Schwellwert ODER die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem dritten unmittelbar nachfolgenden Pixel P7 ist größer als oder gleich dem oberen Schwellwert. Schließlich ist die Differenz bei einer Luminanz zwischen dem aktuellen Pixel P4 und dem vierten unmittelbar nachfolgenden Pixel P7 kleiner als oder gleich dem unteren Schwellwert, was hinreichend ist, um eine Rückkehr zu vorausgehenden Luminanzwerten anzuzeigen. Diese abrupte Änderung bei dem aktuellen Pixel P4 setzt sich in gewisser Form bei den Pixeln P5 und P6 fort und endet bei Pixel P7, was anzeigt, dass Pixel P4 der Beginn einer Kante mit drei Pixeln ist, die die Pixel P5 und P6 beinhaltet.
  • Ähnlich zu der aufsteigenden Kante kann eine absteigende Kante als ein Pixel definiert werden, in dem die potentielle Kante endet. Um absteigende Kantenpixel zu identifizieren, werden Pixeldifferenzen für die lineare Anordnung von Pixeln berechnet, die berechneten Differenzen verwenden jedoch Pixel, die ein Spiegelbild von Pixeln sind, die zum Berechnen von aufsteigenden Kantenpixeln verwendet werden. Ein aktuelles Pixel i ist ein Pixel einer absteigenden Kante (FE - Fading Edge) aus einer linearen Anordnung von neun Pixeln für eine Kante mit einem Pixel, wenn Folgendes wahr ist: E i n e P i x e l D i f f P i + 1 , P i U n t e r e r F E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i 1 O b e r e r F E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i 2                                                   U n t e r e r F E S c h w e l l w e r t
    Figure DE102020133244A1_0008
  • Ein aktuelles Pixel i ist ein Pixel einer absteigenden Kante (FE) aus einer linearen Anordnung von neun Pixeln für eine Kante mit zwei Pixeln, wenn Folgendes wahr ist: E i n e P i x e l D i f f P i + 1 , P i U n t e r e r F E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i 1 O b e r e r F E S c h w e l l w e r t  &&  ( E i n e P i x e l D i f f P i 1 , P i z U n t e r e r F E S c h w e l l w e r t E i n e P i x e l D i f f P i , P i z O b e r e r F E S c h w e l l w e r t )  && E i n e P i x e l D i f f P i , P i 3 U n t e r e r F E S c h w e l l w e r t
    Figure DE102020133244A1_0009
  • Ein aktuelles Pixel i ist ein Pixel einer absteigenden Kante (FE) aus einer linearen Anordnung von neun Pixeln für eine Kante mit drei Pixeln, wenn Folgendes wahr ist: E i n e P i x e l D i f f P i + 1 , P i U n t e r e r F E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i 1 O b e r e r F E S c h w e l l w e r t  && ( E i n e P i x e l D i f f P i 1 , P i 2 U n t e r e r F E S c h w e l l w e r t E i n e P i x e l D i f f P i , P i 2 O b e r e r F E S c h w e l l w e r t ) && ( E i n e P i x e l D i f f P i 2 , P i 3 U n t e r e r F E S c h w e l l w e r t E i n e P i x e l D i f f P i , P i 3 O b e r e r F E S c h w e l l w e r t ) && E i n e P i x e l D i f f P i , P i 4 U n t e r e r F E S c h w e l l w e r t
    Figure DE102020133244A1_0010
  • Dementsprechend kann in Bezug auf Pixel dünner Kanten ein absteigendes Kantenpixel unter Verwenden von Mathematik ähnlich zu der, die zum Bestimmen von aufsteigenden Kantenpixeln wie oben erörtert verwendet wird, gefunden werden. Im Allgemeinen sind die Schwellwerte UntererFESchwellwert und ObererFESchwellwert programmierbar und definieren eine Bandbreite von Luminanzänderungen.
  • Wenn das Pixel als ein potentielles Kantenpixel bei einer Detektion 120/140 potentieller Kanten identifiziert wurde und nicht als ein Pixel einer dünnen Kante während einer Detektion 122/142 dünner Kanten identifiziert wurde, wird das potentielle Kantenpixel ausgewertet, um zu bestimmen, ob es ein eindirektionales Kantenpixel ist. 5 ist eine Darstellung von eindirektionalen Kanten 500. Ein eindirektionales Kantenpixel ist ein Pixel in einer Nachbarschaft von Pixeln, in welcher in der Skalierungsrichtung eine einmalige direktionale Intensitätsänderung vorliegt. Eine eindirektionale aufsteigende Kante 402 ist dargestellt. Eine eindirektionale absteigende Kante 404 ist dargestellt.
  • Eine eindirektionale aufsteigende Kante kann wie folgt bestimmt werden: E i n e P i x e l D i f f P i 1 , P i U n t e r e r L E S c h w e l l w e r t  && E i n e P i x e l D i f f P i 2 , P i U n t e r e r L E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i + 1 O b e r e r L E S c h w e l l w e r t && E i n e P i x e l D i f f P i , P i + 2 O b e r e r F E S c h w e l l w e r t
    Figure DE102020133244A1_0011
  • Eine eindirektionale absteigende Kante kann wie folgt bestimmt werden: E i n e P i x e l D i f f P i , P i + 1 U n t e r e r F E S c h w e l l w e r t  && E i n e P i x e l D i f f P i , P i + 2 U n t e r e r F E S c h w e l l w e r t  && E i n e P i x e l D i f f P i 1 , P i O b e r e r F E S c h w e l l w e r t && E i n e P i x e l D i f f P i 2 , P i O b e r e r F E S c h w e l l w e r t
    Figure DE102020133244A1_0012
  • Wenn das durch die Kantendetektion 120/140 identifizierte aktuelle potentielle Kantenpixel nicht bei der Kantendetektion 122/124 als eine dünne Kante identifiziert wird und nicht bei der Kantendetektion 124/144 als eine eindirektionale Kante identifiziert wird, werden jegliche starke Korrelationen über eine Kantendetektion 126/146 für die aktuelle potentielle Kante detektiert. Die vorliegenden Techniken detektieren, ob das Pixel zu einer starken horizontalen oder vertikalen Kante gehört. 6 ist eine Darstellung eines Fensters von Pixeln 600, die mit Pixel P00 bis P44 nummeriert sind. Um starken direktionalen Inhalt zu identifizieren, wird ein Fenster von Pixeln ausgewertet. Ein aktuelles Pixel P22 ist das mittlere/aktuelle Pixel. Korrelationen können eine Richtungsklassifikation als entweder horizontal oder vertikal sein.
  • Es wird eine vertikale Korrelationsdetektion 126 betrachtet. Während einer vertikalen Korrelationsdetektion 126 werden horizontale Kanten detektiert, da die Skalierung senkrecht zu der Kante stattfinden wird. Gleichermaßen werden bei einer horizontalen Korrelationsdetektion 146 vertikale Kanten identifiziert, da die Skalierung senkrecht zu der Kante stattfinden wird.
  • In dem Beispiel einer vertikalen Korrelationsdetektion 126 wird zum Identifizieren von horizontalen Kanten eine absolute Differenz von Pixeln über dem mittleren Pixel für die Positionen P21, P22 und P23 wie folgt berechnet. P i x D i f f M i n u s P 21 = E i n e P i x D i f f P 01, P 11 + E i n e P i x D i f f P 11, P 21
    Figure DE102020133244A1_0013
    P i x D i f f M i n u s P 22 = E i n e P i x D i f f P 02, P 12 + E i n e P i x D i f f P 12, P 22
    Figure DE102020133244A1_0014
    P i x D i f f M i n u s P 23 = E i n e P i x D i f f P 03, P 13 + E i n e P i x D i f f P 13, P 23
    Figure DE102020133244A1_0015
    P i x D i f f P l u s P 21 = E i n e P i x D i f f P 41, P 31 + E i n e P i x D i f f P 31, P 21
    Figure DE102020133244A1_0016
    P i x D i f f P l u s P 22 = E i n e P i x D i f f P 42, P 32 + E i n e P i x D i f f P 32, P 22
    Figure DE102020133244A1_0017
    P i x D i f f P l u s P 23 = E i n e P i x D i f f P 43, P 33 + E i n e P i x D i f f P 33, P 23
    Figure DE102020133244A1_0018
  • Bei der Benennung von hierin erörterten Variablen bezeichnet „minus“ eine Seite jenseits des mittleren Pixels und „plus“ bezeichnet die andere Seite jenseits des mittleren Pixels. Eine aufsteigende Kante kann wie folgt bestimmt werden: P i x D i f f M i n u s _ P 22 U n t e r e r S L E S c h w e l l w e r t && ( P i x D i f f M i n u s P 21 U n t e r e r S L E S c h w e l l w e r t P i x D i f f M i n u s _ P 23 U n t e r e r S L E S c h w e l l w e r t ) && E i n e P i x D i f f P 22, P 32 O b e r e r L E S c h w e l l w e r t && E i n e P i x e l D i f f P 21 , P 31 O b e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P 23 , P 33
    Figure DE102020133244A1_0019
  • Eine absteigende Kante kann wie folgt bestimmt werden: P i x D i f f M i n u s _ P 22 U n t e r e r S F E S c h w e l l w e r t && ( P i x D i f f M i n u s P 21 U n t e r e r S F E S c h w e l l w e r t P i x D i f f M i n u s _ P 23 U n t e r e r S F E S c h w e l l w e r t ) && E i n e P i x D i f f P 22, P 12 O b e r e r L E S c h w e l l w e r t && E i n e P i x e l D i f f P 21 , P 11 O b e r e r L E S c h w e l l w e r t E i n e P i x e l D i f f P 23 , P 13
    Figure DE102020133244A1_0020
  • Hierbei sind die Schwellwerte UntererSLESchwellwert und UntererSFESchwellwert programmierbar. Zusätzlich werden während einer Korrelationsdetektion Eckenpixel in starkem horizontalem Inhalt ebenfalls detektiert.
  • In Ausführungsformen werden nach Abschluss der Detektion potentieller Kanten, der Detektion des Kantentyps und der Klassifikation der Kanten als eine aufsteigende Kante oder eine abfallende Kante isolierte Detektionen entfernt. Insbesondere werden bei einer Detektion 122/142 dünner Kanten, einer Detektion 124/144 eindirektionaler Kanten oder einer Korrelationsdetektion 126/146 erkannte isolierte Detektionen aus einer weiteren Verarbeitung entfernt. Dies stellt eine Einheitlichkeit bei Detektionen sicher und eliminiert falsche Detektionen.
  • Um die isolierten Detektionen zu entfernen, wird für jedes bei einer Detektion 122/142 dünner Kanten, einer Detektion 124/144 eindirektionaler Kanten oder einer Korrelationsdetektion 126/146 als eine aufsteigende/absteigende Kante markiertes Pixel eine Nachbarschaft von Pixeln in der Skalierungsrichtung ausgewertet. In Ausführungsformen ist die Nachbarschaft von Pixeln 3x5 bei einer vertikalen Skalierung und 5x3 bei einer horizontalen Skalierung. Die Anzahl von detektierten aufsteigenden/absteigenden Kanten in jeder Nachbarschaft wird summiert. Wenn die Gesamtanzahl an detektierten Kanten größer als eins ist, dann wird das aktuelle Pixel nicht als ein Kantenpixel entfernt. Ansonsten wird das detektierte Pixel fallengelassen oder aus einer weiteren Verarbeitung entfernt.
  • Potentielle Kantenpixel werden als ein dünnes Kantenpixel, ein eindirektionales Kantenpixel oder ein stark korreliertes Pixel typisiert. Jedes potentielle Kantenpixel wird zudem als ein aufsteigendes Kantenpixel oder ein absteigendes Kantenpixel klassifiziert. Wie unten beschrieben, können Pixel gemäß dem speziellen Typ von Pixel oder der Klassifikation des Pixels korrigiert werden. Eine Korrektur gemäß den vorliegenden Techniken umfasst verschiedene bilineare Skalierungsvorschläge, und die Eingaben in den bilinearen Filter sind von der Rückabbildungsposition des Ausgabepixels in dem Eingabebild abhängig.
  • Die hierin beschriebene Korrektur gibt einen Pixelwert aus, der aus einer bilinearen Interpolation für die ganzzahlige Komponente des aktuellen Pixels und eines anderen Pixels gemäß dem Kantentyp abgeleitet wurde. Wie hierin verwendet, interpoliert eine bilineare Interpolation Pixelwerte von zwei Pixeln. Zum Beispiel kann eine bilineare Interpolation einen Gewichtungsmittelwert von zwei Pixeln als A u s g a b e = a x + b ( 256 x ) 256
    Figure DE102020133244A1_0021
    finden. Basierend auf dem Typ der detektierten Kante, fällt die hierin beschriebene Korrektur in drei Kategorien/Typen: (1) Bilinear Minus, die eine bilineare Interpolation ist, welche die Pixelwerte eines aktuellen Pixels i und eines vorausgehenden Pixels i - 1 verwendet; (2) Bilinear Plus, die eine bilineare Interpolation ist, welche die Pixelwerte des aktuellen Pixels i und des nächsten Pixels i + 1 verwendet; und (3) Bilinear Plus-Plus, die eine bilineare Interpolation ist, welche die Pixelwerte des aktuellen Pixels i und des zweitnächsten Pixels i + 2 verwendet.
  • Die Korrekturen werden für jedes Pixel in dem Zielausgabebild abgeleitet. Wenn ein Bild skaliert wird, liegt in der Regel ein Zielausgabepixel nicht an einer Pixelposition des Eingabebildes. Stattdessen entsprechen die Pixel des Zielausgabebildes typischerweise einer Position zwischen benachbarten Eingabebildpixeln. Eine bilineare Interpolation berechnet einen Pixelwert des Zielausgabebildes durch Lokalisieren jedes Pixels in dem Zielausgabebild in der Bildebene. Eine geometrische Transformation identifiziert jedes Zielausgabepixel in dem Zielausgabebild mit einer entsprechenden Position in dem Eingabebild. Somit bildet die Transformation ein Pixel des Zielausgabebildes auf das Eingabebild ab. Die Abbildung kann als eine Quellenkarte mit einer Anzahl von Punkten S bezeichnet werden. Im Allgemeinen entsprechen Punkte der Quellenkarte nicht einem einzelnen Pixel des Eingabebildes. Vielmehr werden Quellenkartenpositionen häufig als eine Kombination einer ganzzahligen Komponente und einer Bruchteilkomponente ausgedrückt. Daher wird der einem Zielausgabepixel (yAus) zugewiesene Wert als eine interpolierte Kombination der Eingabebildpixelwerte, die am nächsten zu dem entsprechenden Punkt S in der Quellenkarte sind, berechnet, was eine ganzzahlige Komponente (yGanzzahl) und eine Bruchteilkomponente (yBruchteil) beinhaltet. Der Quellenkartenpunkt S kann basierend auf dem Skalierungsfaktor in der Skalierungsrichtung identifiziert werden.
  • Die spezielle Korrektur, die für ein Zielausgabepixel (yAus) verwendet wird, basiert auf dem Kantentyp und der Klassifikation des Eingabebildpixels, das sich an der ganzzahligen Komponente yGanzzahl des entsprechenden Quellenkartenpunkts S befindet. Die Bruchteilkomponente yBruchteil kann verwendet werden, um die spezielle Interpolation, die zum Ableiten eines endgültigen Werts für das Zielausgabepixel (yAus) verwendet wird, weiter zu bestimmen. Somit ist die Korrektur nahezu unabhängig von der ganzzahligen und Bruchteilabbildung des Zielausgabepixels in der Quellenkarte.
  • Im Allgemeinen basiert die angewendete Korrektur auf dem detektierten Kantentyp und dem Bruchteilwert der entsprechenden Quellenkartenposition. Für jeden Punkt S in der Quellenkarte kann die ganzzahlige Komponente yGanzzahl direkt einem Pixel des Eingabebildes entsprechen. Insbesondere wird jedes Pixel des Ausgabebildes auf eine Position in dem Eingabebild (basierend auf dem Skalierungsfaktor) rückabgebildet und es erzeugt yGanzzahl (was der ganzzahlige Teil der Abbildung ist) und yBruchteil (was der Bruchteilanteil der Abbildung ist). Im Allgemeinen ist, wenn yBruchteil 0 ist, dann yGanzzahl ein direktes Eingabepixel. Wenn yBruchteil nicht null ist, dann liegt die entsprechende Position zwischen yGanzzahl und yPlus.
  • Ein nächstes Pixel (yPlus) in der Quellenkarte S kann als yPlus = yGanzzahl + 1 definiert werden. Das nächste Pixel (yPlus) der Quellenkarte umfasst auch eine jeweilige ganzzahlige Komponente und eine Bruchteilkomponente, wobei die ganzzahlige Komponente einem Pixel des Eingabebildes direkt entspricht. Ein vorausgehendes Pixel (yMinus) der Quellenkarte S kann als yMinus = yGanzzahl - 1 definiert werden. Das dem aktuellen Pixel S vorausgehende Pixel yMinus umfasst auch eine jeweilige ganzzahlige Komponente und eine Bruchteilkomponente.
  • In dem Szenario, dass das entsprechende Eingabebildpixel an der ganzzahligen Komponente der Quellenkartenposition (yGanzzahl) als ein aufsteigendes Kantenpixel klassifiziert wird, wird eine Korrektur wie folgt durchgeführt. Wenn das nächste Pixel yPlus eine absteigende Kante ist und der Bruchteilanteil yBruchteil < 0,5, wird eine bilineare Minus-Ausgabe verwendet. Insbesondere wird der Pixelwert des Zielausgabepixels aus den Pixelwerten des aktuellen Pixels i und des vorausgehenden Pixels i - 1 berechnet. Wenn das nächste Pixel yPlus eine absteigende Kante ist und der Bruchteilanteil yBruchteil > 0,5, wird eine bilineare Plus-Plus-Ausgabe verwendet. Insbesondere wird der Pixelwert des Zielausgabepixels unter Verwenden der Pixelwerte des aktuellen Pixels i und des zweiten unmittelbar nachfolgenden Pixels i + 2 berechnet. In allen anderen Fällen wird, wenn die ganzzahlige Komponente der Quellenkartenposition (yGanzzahl) ein aufsteigendes Kantenpixel ist, wenn der Bruchteilanteil yBruchteil < 0,5 ist, eine bilineare Minus-Ausgabe verwendet.
  • In dem Szenario, dass das entsprechende Eingabebildpixel an der ganzzahligen Komponente der Quellenkartenposition (yGanzzahl) ein absteigendes Kantenpixel ist, wird eine Korrektur unter Verwenden der bilinearen Plus-Ausgabe durchgeführt, unabhängig von dem Wert des Bruchteilanteils yBruchteil. Dementsprechend wird für Zielausgabepixel, die auf eine ganzzahlige Komponente der Quellenkartenposition (yGanzzahl) abgebildet werden, die in dem Eingabebild als eine absteigende Kante identifiziert wird, der Pixelwert aus den Pixelwerten des aktuellen Pixels i und des ersten unmittelbar nachfolgenden Pixels i + 1 berechnet.
  • In dem Szenario, dass das entsprechende Eingabebildpixel an der ganzzahligen Komponente der Quellenkartenposition (yGanzzahl) weder ein aufsteigendes Kantenpixel noch ein absteigendes Kantenpixel ist, wird eine Korrektur wie folgt durchgeführt. Wenn das nächste Pixel yPlus eine absteigende Kante ist und der Bruchteilanteil yBruchteil > 0,5, wird eine bilineare Plus-Plus-Ausgabe verwendet. Insbesondere wird der Pixelwert des Zielausgabepixels aus den Pixelwerten des aktuellen Pixels i und des zweiten unmittelbar nachfolgenden Pixels i + 2 berechnet. Wenn das nächste Pixel yPlus eine aufsteigende Kante ist, wird eine bilineare Plus-Ausgabe verwendet. Insbesondere werden, wenn die Quellenkartenposition weder ein aufsteigendes Kantenpixel noch ein absteigendes Kantenpixel ist und das nächste Pixel eine aufsteigende Kante ist, die Pixelwerte des Zielausgabepixels aus den Pixelwerten des aktuellen Pixels i und des ersten unmittelbar nachfolgenden Pixels i + 1 berechnet. In allen anderen Fällen wird, wenn das vorausgehende Pixel (yMinus) ein absteigendes Kantenpixel ist, wenn der Bruchteilanteil yBruchteil < 0,5 ist, eine bilineare Minus-Ausgabe verwendet.
  • 7 ist ein Prozessablaufdiagramm eines Verfahrens 700 für eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität. Das Verfahren 700 kann in der Rechenvorrichtung 1100 von 11 unten oder dem computerlesbaren Medium 1200 von 12 unten implementiert werden. Zur Einfachheit der Beschreibung können die vorliegenden Techniken als allgemein eine Skalierung betreffend beschrieben werden. Jedoch wenden die vorliegenden Techniken eine Skalierung sowohl in einer vertikalen Richtung als auch in einer horizontalen Richtung an.
  • Bei Block 702 werden potentielle Kanten in dem Eingabebild detektiert. Das Eingabebild beinhaltet Bildschirminhalt. In Ausführungsformen können verschiedene Kantendetektionstechniken zum Bestimmen potentieller Kanten in dem Eingabebild verwendet werden. Die Kantendetektionstechniken können die Verwendung eines Sobel-Filters zum Extrahieren von Kanten für eine potentielle zusätzliche Verarbeitung beinhalten. Dementsprechend können Pixel aus dem Eingabebild, die diese extrahierten Kanten bilden, als potentielle Kanten oder potentielle Kantenpixel bezeichnet werden.
  • Bei Block 704 wird für jede potentielle Kante oder jedes potentielle Kantenpixel ein Kantentyp bestimmt. Insbesondere kann jedes potentielle Kantenpixel als ein dünnes Kantenpixel, ein eindirektionales Kantenpixel, ein starkes Kantenpixel oder keiner der obengenannten Kantentypen detektiert werden. Darüber hinaus kann das Pixel innerhalb jedes detektierten Kantentyps als ein aufsteigendes Kantenpixel oder ein absteigendes Kantenpixel klassifiziert werden. Ein potentielles Pixel kann auch ohne einen detektierten Kantentyp als ein aufsteigendes Kanten- oder ein absteigendes Kantenpixel detektiert werden.
  • Bei Block 706 wird jede potentielle Kante durch Überschreiben von Ausgaben eines Filters mit großem Abgriff mit einer linearen Ausgabe basierend auf dem Kantentyp und der Klassifikation korrigiert. Die lineare Ausgabe kann eine Variante einer bilinearen Interpretation unter Verwenden von zwei Pixeln aus dem Eingabebild sein. Die speziellen Pixel des Eingabebildes, die in der bilinearen Interpolation verwendet werden, basieren auf einem Typ einer an den potentiellen Kanten detektierten Kante sowie darauf, ob die Kanten als eine aufsteigende Kante oder eine abfallende Kante identifiziert werden.
  • Dieses Prozessablaufdiagramm soll nicht andeuten, dass die Blöcke des beispielhaften Verfahrens 700 in einer speziellen Reihenfolge auszuführen sind oder dass alle die Blöcke in jedem Fall einzuschließen sind. Ferner kann eine beliebige Anzahl nicht gezeigter zusätzlicher Blöcke in das beispielhafte Verfahren 700 in Abhängigkeit von den Details der spezifischen Implementierung integriert werden.
  • 8 ist ein Prozessablaufdiagramm eines Verfahrens 800 für eine potentielle Kantendetektion während einer kantenbewussten Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität. Das Verfahren 800 kann in der Rechenvorrichtung 1100 von 11 unten oder dem computerlesbaren Medium 1200 von 12 unten implementiert werden.
  • Bei Block 802 wird bestimmt, ob das Pixel zu einer potentiellen Kante gehört. Potentielle Kanten können durch die Verwendung eines Sobel-Operators detektiert werden. Wenn das Pixel nicht zu einer potentiellen Kante gehört, fährt der Prozessablauf mit Block 804 fort. Bei Block 804 wird ein nächstes Pixel ausgewählt. Wenn das Pixel zu einer potentiellen Kante gehört, fährt der Prozessablauf mit Block 806 fort.
  • Bei Block 806 wird bestimmt, ob das aktuelle Pixel ein dünnes Kantenpixel ist. In Ausführungsformen ist ein dünnes Kantenpixel ein Pixel, das eine Kante mit einem, zwei oder drei Pixeln in dem Eingabebild bildet. Wenn das Pixel ein dünnes Kantenpixel ist, fährt der Prozessablauf mit Block 808 fort. Wenn das Pixel kein dünnes Kantenpixel ist, fährt der Prozessablauf mit Block 816 fort. Bei Block 808 wird bestimmt, ob das aktuelle Pixel ein aufsteigendes Kantenpixel ist. Wenn das Pixel ein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 812 fort, in welchem das Pixel als ein aufsteigendes Kantenpixel klassifiziert wird. Wenn das Pixel kein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 810 fort. Bei Block 810 wird bestimmt, ob das aktuelle Pixel ein absteigendes Kantenpixel ist. Wenn das Pixel ein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 814 fort, in welchem das Pixel als ein absteigendes Kantenpixel klassifiziert wird.
  • Bei Block 816 wird bestimmt, ob das aktuelle Pixel ein eindirektionales Pixel ist. Wenn das Pixel ein eindirektionales Pixel ist, fährt der Prozessablauf mit Block 818 fort. Wenn das Pixel kein eindirektionales Pixel ist, fährt der Prozessablauf mit Block 826 fort. Bei Block 818 wird bestimmt, ob das aktuelle Pixel ein aufsteigendes Kantenpixel ist. Wenn das Pixel ein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 822 fort, in welchem das Pixel als ein aufsteigender Kantenpixeltyp klassifiziert wird. Wenn das Pixel kein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 820 fort. Bei Block 820 wird bestimmt, ob das aktuelle Pixel ein absteigendes Kantenpixel ist. Wenn das Pixel ein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 824 fort, in welchem das Pixel als ein absteigendes Kantenpixel klassifiziert wird.
  • Bei Block 826 wird bestimmt, ob das aktuelle Pixel ein stark korreliertes Pixel ist. Wenn das Pixel ein stark korreliertes Pixel ist, fährt der Prozessablauf mit Block 828 fort. Wenn das Pixel kein stark korreliertes Pixel ist, fährt der Prozessablauf mit Block 836 fort. Bei Block 828 wird bestimmt, ob das aktuelle Pixel ein aufsteigendes Kantenpixel ist. Wenn das Pixel ein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 832 fort, in welchem das Pixel als ein aufsteigender Kantenpixeltyp klassifiziert wird. Wenn das Pixel kein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 830 fort. Bei Block 830 wird bestimmt, ob das aktuelle Pixel ein absteigendes Kantenpixel ist. Wenn das Pixel ein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 834 fort, in welchem das Pixel als ein absteigender Kantenpixeltyp klassifiziert wird. Bei Block 836 werden die restlichen Pixel als aufsteigende Kanten- oder absteigende Kantenpixel klassifiziert. Der Prozessablauf kehrt dann zu Block 804 zurück und ein anderes Pixel wird zur Verarbeitung ausgewählt.
  • Dieses Prozessablaufdiagramm soll nicht andeuten, dass die Blöcke des beispielhaften Verfahrens 800 in einer speziellen Reihenfolge auszuführen sind oder dass alle die Blöcke in jedem Fall einzuschließen sind. Ferner kann eine beliebige Anzahl nicht gezeigter zusätzlicher Blöcke in das beispielhafte Verfahren 800 in Abhängigkeit von den Details der spezifischen Implementierung integriert werden.
  • 9 ist ein Prozessablaufdiagramm eines Verfahrens 900 für eine Kantenkorrektur während einer kantenbewussten Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität. Das Verfahren 900 kann in der Rechenvorrichtung 1100 von 11 unten oder dem computerlesbaren Medium 1200 von 12 unten implementiert werden.
  • Bei einer Kantenkorrektur wird das für eine Korrektur verwendete aktuelle Pixel basierend auf dem Skalierungsfaktor abgeleitet. Für jedes Zielausgabebildpixel yAus wird ein Quellenkartenpunkt S gefunden, der das Zielausgabebild auf das Eingabebild abbildet. Für den entsprechenden Quellenkartenpunkt S wird der ganzzahlige Anteil yGanzzahl des Quellenkartenpunkts verwendet, um ein Pixel in dem Eingabebild zu finden. Der Bruchteilanteil yBruchteil des Quellenkartenpunkts wird verwendet, um die spezielle bilineare Interpolation abzustimmen, um den Zielausgabepixelwert yAus zu bestimmen.
  • In dem Beispiel von 9 bezeichnet das „Pixel“ das Eingabepixel, das der ganzzahligen Komponente yGanzzahl des Quellenkartenpunkts entspricht, der auf das aktuelle Zielausgabepixel von dem Zielausgabebild abgebildet wird. Das „nächste Pixel“ bezeichnet das Eingabepixel, das der ganzzahligen Komponente yGanzzahl des Quellenkartenpunkts entspricht, der auf das nächste Zielausgabepixel von dem Zielausgabebild abgebildet wird. Das „vorausgehende Pixel“ bezeichnet das Eingabepixel, das der ganzzahligen Komponente yGanzzahl des Quellenkartenpunkts entspricht, der auf das vorausgehende Zielausgabepixel von dem Zielausgabebild abgebildet wird. Bei Block 902 wird bestimmt, ob das Zielausgabebildpixel yAus ein aufsteigendes Kantenpixel ist. Wenn das Pixel ein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 906 fort. Wenn das Pixel kein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 904 fort. Bei Block 906 wird bestimmt, ob das nächste Pixel yPlus ein absteigendes Kantenpixel ist. Wenn das nächste Pixel i + 1 kein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 910 fort. Bei Block 910 wird eine bilineare Minus-Ausgabe verwendet. Insbesondere wird der Pixelwert des Zielausgabepixelwerts yAus aus den Pixelwerten des aktuellen Pixels i und des vorausgehenden Pixels i - 1 berechnet. Wenn das nächste Pixel i + 1 ein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 908 fort. Bei Block 908 wird bestimmt, ob der Bruchteilanteil yBruchteil des entsprechenden Quellenkartenpunkts größer als 0,5 ist. Wenn der Bruchteilanteil yBruchteil kleiner als 0,5 ist, fährt der Prozessablauf mit Block 910 fort, in welchem eine bilineare Minus-Ausgabe als der Zielausgabepixelwert yAus verwendet wird. Wenn der Bruchteilanteil yBruchteil größer als 0,5 ist, fährt der Prozessablauf mit Block 912 fort, in welchem eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert yAus verwendet wird. Insbesondere wird der Pixelwert des Zielausgabepixels unter Verwenden der Pixelwerte des aktuellen Pixels i und des zweiten unmittelbar nachfolgenden Pixels i + 2 berechnet.
  • Bei Block 904 wird bestimmt, ob das aktuelle Pixel i ein absteigendes Kantenpixel ist. Wenn das aktuelle Pixel i ein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 914 fort, in welchem eine bilineare Plus-Ausgabe verwendet wird. Insbesondere wird der Pixelwert des Zielausgabepixels unter Verwenden der Pixelwerte des aktuellen Pixels i und des ersten unmittelbar nachfolgenden Pixels i + 1 berechnet. Wenn das aktuelle Pixel i kein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 914 fort, in welchem eine bilineare Plus-Ausgabe verwendet wird.
  • Bei Block 920 wird bestimmt, ob das nächste Pixel ein aufsteigendes Kantenpixel ist. Wenn das nächste Pixel ein aufsteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 914 fort, in welchem eine bilineare Plus-Ausgabe verwendet wird. Wenn das Pixel kein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 922 fort. Bei Block 922 wird bestimmt, ob das vorausgehende Pixel ein absteigendes Kantenpixel ist. Wenn das vorausgehende Pixel ein absteigendes Kantenpixel ist, fährt der Prozessablauf mit Block 910 fort, in welchem eine bilineare Minus-Ausgabe verwendet wird. Wenn das vorausgehende Pixel kein absteigendes Kantenpixel ist, gibt es keine Änderung oder Modifikation an der durchgeführten Skalierung. Bei Block 924 wird bestimmt, ob der Bruchteilanteil yBruchteil kleiner als 0,5 ist. Wenn der Bruchteilanteil yBruchteil größer als 0,5 ist, gibt es keine Änderung oder Modifikation der durchgeführten Skalierung.
  • Dieses Prozessablaufdiagramm soll nicht andeuten, dass die Blöcke des beispielhaften Verfahrens 900 in einer speziellen Reihenfolge auszuführen sind oder dass alle die Blöcke in jedem Fall einzuschließen sind. Ferner kann eine beliebige Anzahl nicht gezeigter zusätzlicher Blöcke in das beispielhafte Verfahren 900 in Abhängigkeit von den Details der spezifischen Implementierung integriert werden.
  • 10 ist eine Reihe von Bildern 1000. Das Bild 1002 ist das Eingabebild 1002. Das Ausgabebild 1004 wird unter Verwenden herkömmlicher Aufwärtsskalierungstechniken aufwärts skaliert. Das Zielausgabebild yAus 1006 ist das gemäß der vorliegenden Techniken aufwärts skalierte Eingabebild. Wie dargestellt, weist das Zielausgabebild yAus 1006 weniger Artefakte zwischen den Kanten und Intensitätsverläufe über die Kanten auf, was eine schärfere Ausgabe im Vergleich zu dem Ausgabebild 1004 bewirkt.
  • Nunmehr Bezug nehmend auf 11 ist ein Blockdiagramm eines Systems gezeigt, das eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität ermöglicht. Die Rechenvorrichtung 1100 kann zum Beispiel unter anderem ein Laptop-Computer, ein Desktop-Computer, ein Tablet-Computer, eine mobile Vorrichtung oder eine tragbare Vorrichtung sein. Die Rechenvorrichtung 1100 kann eine zentrale Verarbeitungseinheit (CPU - Central Processing Unit) 1102, die ausgelegt ist, gespeicherte Anweisungen auszuführen, sowie eine Speichervorrichtung 1104, die durch die CPU 1102 ausführbare Anweisungen speichert, beinhalten. Die CPU 1102 kann mit der Speichervorrichtung 1104 durch einen Bus 1106 gekoppelt sein. Zusätzlich kann die CPU 1102 ein Einzelkernprozessor, ein Mehrkernprozessor, ein Rechencluster oder eine beliebige Anzahl anderer Auslegungen sein. Ferner kann die Rechenvorrichtung 1100 mehr als eine CPU 1102 beinhalten. In einigen Beispielen kann die CPU 1102 ein Systemon-Chip (SoC) mit einer Mehrkernprozessorarchitektur sein. In einigen Beispielen kann die CPU 1102 ein spezialisierter Digital-Signalprozessor (DSP) sein, der für eine Bildverarbeitung verwendet wird. Die Speichervorrichtung 1104 kann Direktzugriffsspeicher (RAM - Random-Access Memory), Nurlesespeicher (ROM - Read Only Memory), Flash-Speicher oder beliebige andere geeignete Speichersysteme beinhalten. Zum Beispiel kann die Speichervorrichtung 1104 einen dynamischen Direktzugriffsspeicher (DRAM - Dynamic Random-Access Memory) beinhalten. Der Speicher kann Treiber 1110 beinhalten.
  • Die Rechenvorrichtung 1100 kann zudem eine Grafikverarbeitungseinheit (GPU - Graphics Processing Unit) 1108 beinhalten. Wie gezeigt, kann die CPU 1102 über den Bus 1106 mit der GPU 1108 gekoppelt sein. Die GPU 1108 kann ausgelegt sein, eine beliebige Anzahl von Grafikoperationen in der Rechenvorrichtung 1100 durchzuführen. Zum Beispiel kann die GPU 1108 ausgelegt sein, Grafikbilder, Grafikframes, Videos oder dergleichen zu rendern oder manipulieren, die einem Betrachter der Rechenvorrichtung 1100 anzuzeigen sind.
  • Die CPU 1102 kann zudem über den Bus 1106 mit einer Eingabe-/Ausgabe(E/A)-Vorrichtungsschnittstelle 1112 verbunden sein, die ausgelegt ist, die Rechenvorrichtung 1100 mit einer oder mehreren E/A-Vorrichtungen 1114 zu verbinden. Die E/A-Vorrichtungen 1114 können zum Beispiel eine Tastatur und eine Zeigevorrichtung beinhalten, wobei die Zeigevorrichtung zum Beispiel unter anderem ein berührungsempfindliches Tastfeld oder einen berührungsempfindlichen Bildschirm beinhalten kann. Die E/A-Vorrichtungen 1114 können integrierte Komponenten der Rechenvorrichtung 1100 sein oder können Vorrichtungen sein, die extern mit der Rechenvorrichtung 1100 verbunden sind. In einigen Beispielen kann der Speicher 1104 mit E/A-Vorrichtungen 1114 über einen Speicherdirektzugriff (DMA - Direct Memory Access) kommunikativ gekoppelt sein.
  • Die CPU 1102 kann zudem über den Bus 1106 mit einer Anzeigeschnittstelle 1116 verbunden sein, die ausgelegt ist, die Rechenvorrichtung 1100 mit einer Anzeigevorrichtung 1116 zu verbinden. Die Anzeigevorrichtungen 1118 können einen Anzeigebildschirm beinhalten, der eine integrierte Komponente der Rechenvorrichtung 1100 ist. Die Anzeigevorrichtungen 1118 können zudem unter anderem einen Computermonitor, einen Fernseher oder einen Projektor beinhalten, der intern zu oder extern verbunden mit der Rechenvorrichtung 1100 ist. Die Anzeigevorrichtung 1116 kann zudem eine am Kopf befestigte Anzeige (HMD - Head-Mounted Display) beinhalten.
  • Die Rechenvorrichtung 1100 beinhaltet zudem eine Speichervorrichtung 1120. Die Speichervorrichtung 1120 ist ein physischer Speicher wie beispielsweise ein Festplattenlaufwerk, ein optisches Laufwerk, ein USB-Speicher, ein Laufwerksarray, ein Festkörperlaufwerk oder beliebige Kombinationen daraus. Die Speichervorrichtung 1120 kann zudem entfernte Speicherlaufwerke beinhalten.
  • Die Rechenvorrichtung 1100 kann zudem eine Netzwerkschnittstellensteuerung (NIC - Network Interface Controller) 1122 beinhalten. Die NIC 1122 kann ausgelegt sein, die Rechenvorrichtung 1100 über den Bus 1106 mit einem Netzwerk 1124 zu verbinden. Das Netzwerk 1124 kann unter anderem ein Weitverkehrsnetzwerk (WAN - Wide Area Network), ein lokales Netzwerk (LAN - Local Area Network) oder das Internet sein. In einigen Beispielen kann die Vorrichtung mit anderen Vorrichtungen über eine drahtlose Technologie kommunizieren. Zum Beispiel kann die Vorrichtung mit anderen Vorrichtungen über eine drahtlose lokale Netzwerkverbindung (WLAN - Wireless Local Area Network) kommunizieren. In einigen Beispielen kann sich die Vorrichtung mit anderen Vorrichtungen über Bluetooth® oder ähnliche Technologien verbinden und kommunizieren.
  • Die Rechenvorrichtung 1100 beinhaltet einen inhaltsbasierten, kantenbewussten Aufwärtsskalierer 1128. Der inhaltsbasierte, kantenbewusste Aufwärtsskalierer 1128 beinhaltet einen Interessierender-Bereich-Detektor 1130, einen Dünne-Kantendetektor 1132, einen Eindirektionale-Kantendetektor 1134, einen Stärke-Detektor 1136 und eine Korrektureinrichtung 1138. Der Interessierender-Bereich-Detektor 1130 ist ausgelegt, potentielle Kanten in einem Eingabebild zu detektieren. Der Dünne-Kantendetektor 1132 ist ausgelegt, dünne Kanten unter den potentiellen Kanten zu detektieren. Der Eindirektionale-Kantendetektor 1134 ist ausgelegt, eindirektionalen Kanten aus den potentiellen Kanten, die nicht als dünne Kanten identifiziert wurden, zu detektieren. Der Stärke-Detektor 1136 ist ausgelegt, stark korrelierte Kanten aus den potentiellen Kanten, die nicht als dünne Kanten oder eindirektionale Kanten identifiziert wurden, zu detektieren. Die Korrektureinrichtung 1138 ist ausgelegt, die Kanten durch Anwenden von Varianten von linearen Interpolationen gemäß dem Kantentyp und der Klassifikation zu korrigieren.
  • Das Blockdiagramm von 11 soll nicht andeuten, dass die Rechenvorrichtung 1100 alle in 11 gezeigten Komponenten beinhalten muss. Vielmehr kann die Rechenvorrichtung 1100 weniger oder zusätzliche Komponenten, die nicht in 11 dargestellt sind, beinhalten, wie beispielsweise zusätzliche Puffer, zusätzliche Prozessoren und dergleichen. Die Rechenvorrichtung 1100 kann eine beliebige Anzahl an zusätzlichen Komponenten, die nicht in 11 gezeigt sind, in Abhängigkeit von den Details der spezifischen Implementierung beinhalten. Ferner können beliebige Funktionen des inhaltsbasierten, kantenbewussten Aufwärtsskalierers 1128, des Interessierender-Bereich-Detektors 1130, des Dünne-Kantendetektors 1132, des Eindirektionale-Kantendetektors 1134, des Stärke-Detektors 1136 und der Korrektureinrichtung 1138 teilweise oder vollständig in Hardware und/oder in den Prozessor 1102 implementiert werden. Zum Beispiel können die Funktionen mit einer anwendungsspezifischen integrierten Schaltung, in einer in den Prozessor 1102 implementierten Logik oder in einer beliebigen anderen Vorrichtung implementiert werden. Zum Beispiel können die Funktionen des inhaltsbasierten, kantenbewussten Aufwärtsskalierers 1128 mit einer anwendungsspezifischen integrierten Schaltung, in einer in einen Prozessor implementierten Logik, in einer in eine spezialisierte Grafikverarbeitungseinheit wie beispielsweise die GPU 1108 implementierten Logik oder in einer beliebigen anderen Vorrichtung implementiert werden.
  • 12 ist ein Blockdiagramm, das computerlesbare Medien 1200 zeigt, die Code für eine kantenbewusste Aufwärtsskalierung für eine verbesserte Bildschirminhaltsqualität speichern. Auf die computerlesbaren Medien 1200 kann durch einen Prozessor 1202 über einen Computerbus 1204 zugegriffen werden. Ferner kann das computerlesbare Medium 1200 Code beinhalten, der ausgelegt ist, den Prozessor 1202 anzuleiten, die hierin beschriebenen Verfahren durchzuführen. In einigen Ausführungsformen können die computerlesbaren Medien 1200 nichtflüchtige computerlesbare Medien sein. In einigen Beispielen können die computerlesbaren Medien 1200 Speichermedien sein.
  • Die verschiedenen hierin erörterten Softwarekomponenten können auf einem oder mehreren computerlesbaren Medien 1200 gespeichert sein, wie in 12 angedeutet. Zum Beispiel kann ein Interessierender-Bereich-Detektionsmodul 1206 ausgelegt sein, potentielle Kanten in einem Eingabebild zu detektieren. Ein Dünne-Kanten-Detektionsmodul 1208 kann ausgelegt sein, dünne Kanten unter den potentiellen Kanten zu detektieren. Ein Eindirektionale-Kanten-Detektionsmodul 1210 kann ausgelegt sein, eindirektionalen Kanten aus den potentiellen Kanten, die nicht als dünne Kanten identifiziert wurden, zu detektieren. Ein Stärke-Detektionsmodul 1212 kann ausgelegt sein, stark korrelierte Kanten aus den potentiellen Kanten, die nicht als dünne Kanten oder eindirektionale Kanten identifiziert wurden, zu detektieren. Ein Korrekturmodul 1214 kann ausgelegt sein, die Kanten durch Anwenden von Varianten von linearen Interpolationen gemäß dem Kantentyp und der Klassifikation zu korrigieren.
  • Das Blockdiagramm von 12 soll nicht andeuten, dass die computerlesbaren Medien 1200 alle in 12 gezeigten Komponenten beinhalten müssen. Ferner können die computerlesbaren Medien 1200 eine beliebige Anzahl an zusätzlichen Komponenten, die nicht in 12 gezeigt sind, in Abhängigkeit von den Details der spezifischen Implementierung beinhalten.
  • BEISPIELE
  • Beispiel 1 ist eine Einrichtung für eine kantenbewusste Aufwärtsskalierung. Die Einrichtung umfasst einen Potentielle-Kantendetektor zum Identifizieren potentieller Kantenpixel in einem Eingabebild; einen Dünne-Kantendetektor zum Detektieren dünner Kanten in den potentiellen Kantenpixeln des Eingabebildes; einen Eindirektionale-Kantendetektor zum Detektieren eindirektionaler Kanten in den potentiellen Kantenpixeln des Eingabebildes; einen Korrelationsdetektor zum Detektieren stark korrelierter Kanten in den potentiellen Kantenpixeln des Eingabebildes; eine Korrektureinrichtung zum Ableiten eines Zielausgabewerts, wobei der Zielausgabewert auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels basiert.
  • Beispiel 2 umfasst die Einrichtung nach Beispiel 1, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 3 umfasst die Einrichtung nach einem der Beispiele 1 bis 2, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 4 umfasst die Einrichtung nach einem der Beispiele 1 bis 3, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein absteigendes Kantenpixel klassifiziert wird, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 5 umfasst die Einrichtung nach einem der Beispiele 1 bis 4, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 6 umfasst die Einrichtung nach einem der Beispiele 1 bis 5, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird und ein nächstes Pixel ein aufsteigendes Kantenpixel ist, eine bilineare Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 7 umfasst die Einrichtung nach einem der Beispiele 1 bis 6, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein vorausgehendes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 8 umfasst die Einrichtung nach einem der Beispiele 1 bis 7, einschließlich oder ohne optionale Merkmale. In diesem Beispiel werden isolierte Detektionen/Falsch-Positive aus den potentiellen Kanten entfernt.
  • Beispiel 9 umfasst die Einrichtung nach einem der Beispiele 1 bis 8, einschließlich oder ohne optionale Merkmale. In diesem Beispiel werden die potentiellen Kantenpixel über eine Inhaltsanalyse identifiziert.
  • Beispiel 10 umfasst die Einrichtung nach einem der Beispiele 1 bis 9, einschließlich oder ohne optionale Merkmale. In diesem Beispiel überschreibt der Zielausgabewert einen generischen Abtastratenkonvertierungsausgabewert.
  • Beispiel 11 ist ein Verfahren für eine kantenbewusste Aufwärtsskalierung. Das Verfahren umfasst Identifizieren potentieller Kantenpixel in einem Eingabebild; Detektieren dünner Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren eindirektionaler Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren stark korrelierter Kanten in den potentiellen Kantenpixeln des Eingabebildes; Ableiten eines Zielausgabewerts basierend auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels.
  • Beispiel 12 umfasst das Verfahren nach Beispiel 11, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 13 umfasst das Verfahren nach einem der Beispiele 11 bis 12, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 14 umfasst das Verfahren nach einem der Beispiele 11 bis 13, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein absteigendes Kantenpixel klassifiziert wird, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 15 umfasst das Verfahren nach einem der Beispiele 11 bis 14, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 16 umfasst das Verfahren nach einem der Beispiele 11 bis 15, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird und ein nächstes Pixel ein aufsteigendes Kantenpixel ist, eine bilineare Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 17 umfasst das Verfahren nach einem der Beispiele 11 bis 16, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein vorausgehendes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 18 umfasst das Verfahren nach einem der Beispiele 11 bis 17, einschließlich oder ohne optionale Merkmale. In diesem Beispiel werden isolierte Detektionen/Falsch-Positive aus den potentiellen Kanten entfernt.
  • Beispiel 19 umfasst das Verfahren nach einem der Beispiele 11 bis 18, einschließlich oder ohne optionale Merkmale. In diesem Beispiel werden die potentiellen Kantenpixel über eine Inhaltsanalyse identifiziert.
  • Beispiel 20 umfasst das Verfahren nach einem der Beispiele 11 bis 19, einschließlich oder ohne optionale Merkmale. In diesem Beispiel überschreibt der Zielausgabewert einen generischen Abtastratenkonvertierungsausgabewert.
  • Beispiel 21 ist mindestens ein computerlesbares Medium für eine inhaltsbasierte Kantenglättung, auf dem Anweisungen gespeichert sind. Das computerlesbare Medium umfasst Anweisungen, die den Prozessor zum Identifizieren potentieller Kantenpixel in einem Eingabebild; Detektieren dünner Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren eindirektionaler Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren stark korrelierter Kanten in den potentiellen Kantenpixeln des Eingabebildes; Ableiten eines Zielausgabewerts basierend auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels anleiten.
  • Beispiel 22 umfasst das computerlesbare Medium nach Beispiel 21, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 23 umfasst das computerlesbare Medium nach einem der Beispiele 21 bis 22, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 24 umfasst das computerlesbare Medium nach einem der Beispiele 21 bis 23, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel als ein absteigendes Kantenpixel klassifiziert wird, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Beispiel 25 umfasst das computerlesbare Medium nach einem der Beispiele 21 bis 24, einschließlich oder ohne optionale Merkmale. In diesem Beispiel wird in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet.
  • Nicht alle Komponenten, Merkmale, Strukturen, Charakteristiken usw., die hierin beschrieben und veranschaulicht sind, müssen in einem speziellen Aspekt oder speziellen Aspekten beinhaltet sein. Wenn in der Spezifikation zum Beispiel angegeben ist, dass eine Komponente, ein Merkmal, eine Struktur oder eine Charakteristik beinhaltet sein „kann“ oder „könnte“, muss diese spezielle Komponente, das spezielle Merkmal, die spezielle Struktur oder die spezielle Charakteristik nicht notwendigerweise beinhaltet sein. Wenn in der Spezifikation oder einem Anspruch auf „ein“ Element Bezug genommen wird, bedeutet dies nicht, dass nur eines von dem Element vorhanden ist. Wenn in der Spezifikation oder den Ansprüchen auf „ein zusätzliches“ Element Bezug genommen wird, schließt dies nicht aus, dass mehr als eines von dem zusätzlichen Element vorhanden ist.
  • Es ist anzumerken, dass, auch wenn einige Aspekte in Bezug auf spezielle Implementierungen beschrieben sind, andere Implementierungen gemäß einigen Aspekten möglich sind. Zudem müssen die Anordnung und/oder Reihenfolge von Schaltungselementen oder anderen Merkmalen, die in den Zeichnungen dargestellt und/oder hierin beschrieben sind, nicht notwendigerweise in der speziellen dargestellten und beschriebenen Weise angeordnet sein. Zahlreiche andere Anordnungen sind gemäß einigen Aspekten möglich.
  • In jedem in einer Figur gezeigten System können die Elemente in einigen Fällen jeweils ein gleiches Bezugszeichen oder ein unterschiedliches Bezugszeichen aufweisen, um anzudeuten, dass die dargestellten Elemente unterschiedlich und/oder gleich sein könnten. Jedoch kann ein Element hinreichend flexibel sein, um unterschiedliche Implementierungen aufzuweisen und mit einigen oder allen der hierin gezeigten oder beschriebenen System zu funktionieren. Die verschiedenen in den Figuren gezeigten Elemente können gleich oder unterschiedlich sein. Welches als ein erstes Element bezeichnet wird und welches ein zweites Element genannt wird, ist willkürlich.
  • Es versteht sich, dass Einzelheiten in den zuvor genannten Beispielen an beliebiger Stelle in einem oder mehreren Aspekten verwendet werden können. Zum Beispiel können alle optionalen Merkmale der oben beschriebenen Rechenvorrichtung auch in Bezug auf ein beliebiges der Verfahren oder des computerlesbaren Mediums, die hierin beschrieben sind, implementiert werden. Ferner sind, auch wenn Ablaufdiagramme und/oder Zustandsdiagramme zur Beschreibung von Aspekten hierin verwendet sein können, die Techniken nicht auf diese Diagramme oder auf entsprechende Beschreibungen hierin beschränkt. Zum Beispiel muss der Ablauf nicht durch jedes dargestellte Feld oder jeden dargestellten Zustand oder in genau derselben Reihenfolge wie dargestellt oder hierin beschrieben erfolgen.
  • Die vorliegenden Techniken sind nicht auf die hierin aufgeführten spezifischen Details beschränkt. Tatsächlich werden Fachleute auf dem Gebiet, die sich diese Offenbarung zunutze machen, verstehen, dass zahlreiche andere Varianten aus der vorhergehenden Beschreibung und den Zeichnungen innerhalb des Schutzumfangs der vorliegenden Techniken erstellt werden können. Dementsprechend wird der Schutzumfang der vorliegenden Techniken durch die folgenden Ansprüche einschließlich jeglicher Änderungen daran definiert.

Claims (25)

  1. Einrichtung für eine kantenbewusste Aufwärtsskalierung, umfassend: einen Potentielle-Kantendetektor zum Identifizieren potentieller Kantenpixel in einem Eingabebild; einen Dünne-Kantendetektor zum Detektieren dünner Kanten in den potentiellen Kantenpixeln des Eingabebildes; einen Eindirektionale-Kantendetektor zum Detektieren eindirektionaler Kanten in den potentiellen Kantenpixeln des Eingabebildes; einen Korrelationsdetektor zum Detektieren stark korrelierter Kanten in den potentiellen Kantenpixeln des Eingabebildes; eine Korrektureinrichtung zum Ableiten eines Zielausgabewerts, wobei der Zielausgabewert auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels basiert.
  2. Einrichtung nach Anspruch 1, wobei in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  3. Einrichtung nach einem oder mehreren der Ansprüche 1-2, wobei in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  4. Einrichtung nach einem oder mehreren der Ansprüche 1-3, wobei in Reaktion darauf, dass das Zielausgabepixel als ein absteigendes Kantenpixel klassifiziert wird, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  5. Einrichtung nach einem oder mehreren der Ansprüche 1-4, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  6. Einrichtung nach einem oder mehreren der Ansprüche 1-5, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird und ein nächstes Pixel ein aufsteigendes Kantenpixel ist, eine bilineare Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  7. Einrichtung nach einem oder mehreren der Ansprüche 1-6, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein vorausgehendes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  8. Einrichtung nach einem oder mehreren der Ansprüche 1-7, wobei isolierte Detektionen/Falsch-Positive aus den potentiellen Kanten entfernt werden.
  9. Einrichtung nach einem oder mehreren der Ansprüche 1-8, wobei die potentiellen Kantenpixel über eine Inhaltsanalyse identifiziert werden.
  10. Einrichtung nach einem oder mehreren der Ansprüche 1-9, wobei der Zielausgabewert einen generischen Abtastratenkonvertierungsausgabewert überschreibt.
  11. Verfahren für eine kantenbewusste Aufwärtsskalierung, umfassend: Identifizieren potentieller Kantenpixel in einem Eingabebild; Detektieren dünner Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren eindirektionaler Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren stark korrelierter Kanten in den potentiellen Kantenpixeln des Eingabebildes; Ableiten eines Zielausgabewerts basierend auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels.
  12. Verfahren nach Anspruch 11, wobei in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  13. Verfahren nach einem oder mehreren der Ansprüche 11-12, wobei in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  14. Verfahren nach einem oder mehreren der Ansprüche 11-13, wobei in Reaktion darauf, dass das Zielausgabepixel als ein absteigendes Kantenpixel klassifiziert wird, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  15. Verfahren nach einem oder mehreren der Ansprüche 11-14, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  16. Verfahren nach einem oder mehreren der Ansprüche 11-15, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird und ein nächstes Pixel ein aufsteigendes Kantenpixel ist, eine bilineare Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  17. Verfahren nach einem oder mehreren der Ansprüche 11-16, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein vorausgehendes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  18. Verfahren nach einem oder mehreren der Ansprüche 11-17, wobei isolierte Detektionen/Falsch-Positive aus den potentiellen Kanten entfernt werden.
  19. Verfahren nach einem oder mehreren der Ansprüche 11-18, wobei die potentiellen Kantenpixel über eine Inhaltsanalyse identifiziert werden.
  20. Verfahren nach einem oder mehreren der Ansprüche 11-19, wobei der Zielausgabewert einen generischen Abtastratenkonvertierungsausgabewert überschreibt.
  21. Mindestens ein computerlesbares Medium für eine inhaltsbasierte Kantenglättung, auf dem Anweisungen gespeichert sind, die, in Reaktion darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung zu Folgendem veranlassen: Identifizieren potentieller Kantenpixel in einem Eingabebild; Detektieren dünner Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren eindirektionaler Kanten in den potentiellen Kantenpixeln des Eingabebildes; Detektieren stark korrelierter Kanten in den potentiellen Kantenpixeln des Eingabebildes; Ableiten eines Zielausgabewerts basierend auf einem Kantentyp und einer Klassifikation eines entsprechenden durch einen Quellenkartenpunkt identifizierten Eingabepixels.
  22. Mindestens ein computerlesbares Medium nach Anspruch 21, wobei in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts kleiner als 0,5 ist, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  23. Mindestens ein computerlesbares Medium nach einem oder mehreren der Ansprüche 21-22, wobei in Reaktion darauf, dass das Zielausgabepixel als ein aufsteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  24. Mindestens ein computerlesbares Medium nach einem oder mehreren der Ansprüche 21-23, wobei in Reaktion darauf, dass das Zielausgabepixel als ein absteigendes Kantenpixel klassifiziert wird, eine bilineare Minus-Ausgabe als der Zielausgabepixelwert verwendet wird.
  25. Mindestens ein computerlesbares Medium nach einem oder mehreren der Ansprüche 21-24, wobei in Reaktion darauf, dass das Zielausgabepixel weder als ein aufsteigendes Kantenpixel noch als ein absteigendes Kantenpixel klassifiziert wird, ein nächstes Pixel ein absteigendes Kantenpixel ist und eine Bruchteilkomponente des Quellenkartenpunkts größer als 0,5 ist, eine bilineare Plus-Plus-Ausgabe als der Zielausgabepixelwert verwendet wird.
DE102020133244.0A 2020-03-18 2020-12-12 Kantenbewusste Aufwärtsskalierung für verbesserte Bildschirminhaltsqualität Pending DE102020133244A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/822,686 US11854157B2 (en) 2020-03-18 2020-03-18 Edge-aware upscaling for improved screen content quality
US16/822,686 2020-03-18

Publications (1)

Publication Number Publication Date
DE102020133244A1 true DE102020133244A1 (de) 2021-09-23

Family

ID=71403937

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020133244.0A Pending DE102020133244A1 (de) 2020-03-18 2020-12-12 Kantenbewusste Aufwärtsskalierung für verbesserte Bildschirminhaltsqualität

Country Status (2)

Country Link
US (1) US11854157B2 (de)
DE (1) DE102020133244A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11935185B2 (en) * 2020-03-18 2024-03-19 Intel Corporation Content based anti-aliasing for image downscale
US20210304357A1 (en) * 2020-03-27 2021-09-30 Alibaba Group Holding Limited Method and system for video processing based on spatial or temporal importance
CN112184744B (zh) * 2020-11-29 2021-03-30 惠州高视科技有限公司 显示屏边缘缺陷检测方法和装置
CN112526606A (zh) * 2021-02-08 2021-03-19 南京云创大数据科技股份有限公司 一种基于异构多分类模型的震源类型预测方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8300987B2 (en) * 2007-09-28 2012-10-30 Ati Technologies Ulc Apparatus and method for generating a detail-enhanced upscaled image
CN103093418B (zh) * 2013-02-21 2015-08-26 深圳市晶日盛科技有限公司 一种改进的数字图像缩放方法

Also Published As

Publication number Publication date
US11854157B2 (en) 2023-12-26
US20200219229A1 (en) 2020-07-09

Similar Documents

Publication Publication Date Title
DE102020133244A1 (de) Kantenbewusste Aufwärtsskalierung für verbesserte Bildschirminhaltsqualität
US8675999B1 (en) Apparatus, system, and method for multi-patch based super-resolution from an image
US8867858B2 (en) Method and system for generating an output image of increased pixel resolution from an input image
CN103034973B (zh) 基于双三次插值的自适应图像缩放方法
DE69822545T2 (de) Bildverbesserung unter Benutzung einer Flächeninterpolation
US8335394B2 (en) Image processing method for boundary resolution enhancement
JP6443050B2 (ja) 画像処理装置、及び、画像処理方法
CN106934766A (zh) 一种基于稀疏表示的红外图像超分辨率重建方法
DE60127016T2 (de) Verfahren und Gerät zur Durchführung einer lokalen Farbkorrektur
DE60302924T2 (de) Anpassungsfähige nichtlineare Bildvergrösserung mittels Wavelet-Transformkoeffizienten
DE102010046259A1 (de) Bildrequenzumwandlung unter Verwendung von Bewegungseinschätzung und -kompensation
JP2012521708A (ja) 色周波数に基づく顕著性マップを用いて画像を修正する方法及び装置
DE102011078662A1 (de) Erfassen und Erzeugen von Bildern mit hohem Dynamikbereich
JP2011216083A (ja) デジタル画像を処理する方法、デジタル入力画像を拡大する方法およびデジタル入力画像を平滑化する方法
CN108109109B (zh) 一种超分辨率图像重构方法、装置、介质及计算设备
US7679620B2 (en) Image processing using saltating samples
DE102017102952A1 (de) Eine Vorrichtung zum Erzeugen eines dreidimensionalen Farbbildes und ein Verfahren zum Produzieren eines dreidimensionalen Farbbildes
DE112011101632T5 (de) Zweidimensionale Superresolutions-Skalierung
WO2008019867A2 (de) Bildverarbeitungsvorrichtung für farb-bilddaten und verfahren zur bildverarbeitung von farb-bilddaten
Sajjad et al. Multi-kernel based adaptive interpolation for image super-resolution
DE112015003626T5 (de) System und verfahren zum erhöhen der bittiefe von bildern
DE112021006769T5 (de) Schaltung zur kombinierten heruntertaktung und korrektur von bilddaten
US8873884B2 (en) Method and system for resizing an image
DE102018008064A1 (de) Herunterskalieren von Bildern mit Pixelsätzen, die durch eine für blaues Rauschen gegebene Abtastung ausgewählt werden
DE112011101938T5 (de) Bildinterpolationsverfahren mit Entscheidungsmix