-
HINTERGRUND DER ERFINDUNG
-
Rechensysteme, Anzeigen und andere ähnliche Elektronikgeräte haben wesentliche Beiträge zur Entwicklung der modernen Gesellschaft beigetragen und werden in einer Reihe von Anwendungen eingesetzt, um vorteilhafte Wirkungen zu erreichen. Zahlreiche Geräte, etwa Tisch-Personalcomputer (PC), tragbare PCs, Tablett-PCs, Netzbuch-Computer, intelligente Telefone, Dienstleister-Rechner bzw. Server, Fernsehgeräte und dergleichen haben erhöhte Produktivität und reduzierte Kosten bei der Kommunikation und Analyse von Daten in den meisten Gebieten der Unterhaltung, Erziehung, Geschäftswelt und Wissenschaft ermöglicht. Ein gemeinsamer Aspekt von Rechensystemen ist die Anzeige von Bildern und die Fähigkeit, darauf Bilder zu skalieren (beispielsweise vergrößern).
-
Es gibt zahlreiche Techniken zur Aufwärtsskalierung von Bildern auf elektronischen Einrichtungen. Jedoch findet sich im aktuellen Stand der Technik ein Mangel hinsichtlich der Geschwindigkeit der Techniken zur Skalierung der Bilder und/oder der resultierenden Qualität der skalierten Bilder. Daher gibt es ein ständiges Streben nach Bildskalierungstechniken, die eine Bildskalierung mit sehr guter Qualität und schnellerer Geschwindigkeit bieten. Die
US 7236 191 B2 beschreibt ein Verfahren zur Bildverarbeitung, bei dem eine Interpolation zwischen 2 Farbkomponenten verwendet wird zur Erstellung eines neuen Bildes.
-
ÜBERBLICK ÜBER DIE ERFINDUNG
-
Die vorliegende Technik kann am besten verstanden werden, indem auf die folgende Beschreibung und die begleitenden Zeichnungen Bezug genommen wird, die verwendet werden, um Ausführungsformen der vorliegenden Technik zu veranschaulichen, die sich an Bildskalierungstechniken richten.
-
In einer Ausführungsform wird ein Verfahren gemäß Anspruch 1 zur Bildskalierung bereitgestellt mit richtungsabhängigem Interpolieren mehrerer Blöcke an Pixeldaten eines empfangenen Bildes. Die richtungsabhängigen interpolierten Blöcke an Pixeldaten werden farbverstärkt bzw. farb-geschärft. Die farbverstärkten richtungsabhängigen interpolierten Blöcke an Pixeldaten werden auf eine Leuchtstärke festgelegt, um ein skaliertes Bild zu erzeugen.
-
In einer weiteren Ausführungsform wird ein Verfahren zur Bildskalierung gemäß Anspruch 9 bereitgestellt mit richtungsabhängigem Interpolieren mehrerer Blöcke an Pixeldaten eines empfangenen Bildes. Die richtungsabhängigen interpolierten Blöcke an Pixeldaten werden farbverstärkt, um ein skaliertes Bild zu erzeugen.
-
Dieser Überblick wird bereitgestellt, um eine Auswahl von Konzepten in vereinfachter Form einzuführen, die nachfolgend in der detaillierten Beschreibung weitergehend beschrieben sind. Dieser Überblick beabsichtigt nicht, Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstands anzugeben, und es ist auch nicht beabsichtigt, dass der Überblick zur Beschränkung des Schutzbereichs des beanspruchten Gegenstands verwendet wird.
-
Figurenliste
-
Ausführungsformen der vorliegenden Technik sind beispielhaft und nicht einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, in denen gleiche Bezugszeichen ähnliche Elemente bezeichnen, und in denen:
- 1 ein Flussdiagramm eines Verfahrens zur Bildskalierung gemäß einer Ausführungsform der vorliegenden Technik zeigt.
- 2A, 2B, 2C, 2D, 2E und 2F Ansichten von Pixelblöcken zeigen, die Aspekte einer richtungsabhängigen Interpolation gemäß Ausführungsformen der vorliegenden Technik darstellen.
- 3A und 3B Ansichten von Pixelblöcken zeigen, die Aspekte einer richtungsabhängigen Interpolation gemäß Ausführungsformen der vorliegenden Technik darstellen.
- 4A und 4B Ansichten zeigen, die Aspekte möglicher Interpolationsrichtungen gemäß Ausführungsformen der vorliegenden Technik darstellen.
- 5A, 5B und 5C Ansichten von Pixelblöcken zeigen, die Aspekte einer richtungsabhängigen Interpolation gemäß Ausführungsformen der vorliegenden Technik darstellen.
- 6 ein Flussdiagramm eines Verfahrens zur Bildskalierung gemäß einer weiteren Ausführungsform der vorliegenden Technik zeigt.
- 7A, 7B, 7C und 7D ein Flussdiagramm eines Verfahrens zur Bildskalierung gemäß einer weiteren Ausführungsform der vorliegenden Technik zeigen.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Es sei nun detailliert auf die Ausführungsformen der vorliegenden Technik verwiesen, wovon Beispiele in den begleitenden Zeichnungen dargestellt sind. Obwohl die vorliegende Technik in Verbindung mit diesen Ausführungsformen beschrieben ist, ist zu beachten, dass sie nicht beabsichtigen, die Erfindung auf diese Ausführungsformen einzuschränken. Vielmehr beabsichtigt die Erfindung, Alternativen, Modifizierungen und Äquivalente abzudecken, die innerhalb des Schutzbereichs der Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert ist. Des Weiteren sind in der folgenden detaillierten Beschreibung der vorliegenden Technik zahlreiche spezielle Details angegeben, um ein gründlicheres Verständnis der vorliegenden Technik zu ermöglichen. Jedoch ist zu beachten, dass die vorliegende Technik auch ohne diese speziellen Details praktiziert werden kann. In anderen Fällen sind gut bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht detailliert beschrieben, um nicht in unnötiger Weise Aspekte der vorliegenden Technik zu verdunkeln.
-
Einige der folgenden Ausführungsformen der vorliegenden Technik sind anhand von Routinen, Modulen, Logikblöcken und anderen symbolischen Darstellungen von Operationen an Daten innerhalb einer oder mehrere elektronischer Einrichtungen präsentiert. Die Beschreibungen und Darstellungen sind diejenigen Mittel, die von dem Fachmann verwendet werden, um in höchst effizienter Weise seiner Arbeit anderen Fachleuten zu vermitteln. Eine Routine, ein Modul, ein Logikblock und/oder dergleichen ist hierin und auch allgemein als eine selbstkonsistente Abfolge von Prozessen oder Befehlen zu verstehen, die zu einem gewünschten Ergebnis führt. Die Prozesse sind solche, die physikalische Manipulationen von physikalischen Größen umfassen. Für gewöhnlich, ohne dass dies jedoch erforderlich ist, nehmen diese physikalischen Manipulationen die Form elektrischer oder magnetischer Signale an, die in einer elektronischen Einrichtung gespeichert, übertragen, verglichen oder anderweitig verarbeitet werden können. Aus Gründen der Bequemlichkeit im Hinblick auf die üblichen Verwendung werden diese Signale als Daten, Bits, Werte, Elemente, Symbole, Zeichen, Terme, Zahlen, Zeichenfolgen und/oder dergleichen mit Bezug zu Ausführungsformen der vorliegenden Technik bezeichnet.
-
Es sollte jedoch bedacht werden, dass alle diese Begriffe so zu verstehen sind, dass sie sich auf physikalische Manipulationen und Größen beziehen und lediglich bequeme Namen sind, die weiterhin im Hinblick auf Terme zu interpretieren sind, die üblicherweise in diesem Bereich verwendet werden. Sofern dies nicht anders aus der folgenden Diskussion zu entnehmen ist, ist zu beachten, dass in den Erläuterungen der vorliegenden Technik, Erläuterungen, die Begriffe verwenden, etwa „empfangen“ und/oder dergleichen, Aktionen und Prozesse einer elektronischen Einrichtung bezeichnen, etwa einer elektronischen Recheneinrichtung, die Daten manipuliert und transformiert. Die Daten sind als physikalische (beispielsweise elektronische) Größen innerhalb der Logikschaltungen, Register, Speicher und/oder dergleichen der elektronischen Einrichtung dargestellt und werden in andere Daten umgewandelt, die in ähnlicher Weise als physikalische Größen in der elektronischen Einrichtung repräsentiert sind.
-
In dieser Anmeldung soll die Verwendung einer disjunkten Verknüpfung auch die verbindende Verknüpfung umfassen. Die Verwendung eines bestimmten oder unbestimmten Artikels soll nicht eine Reihenfolge angeben. Insbesondere soll ein Verweis auf „das“ Objekt oder „ein“ Objekt auch eines von möglichen mehreren derartigen Objekten bezeichnen. Ferner ist zu beachten, dass die Begriffe und Terminologie, wie sie hierin verwendet sind, dem Zwecke der Beschreibung dienen und nicht als Einschränkung betrachtet werden sollen.
-
Gemäß 1 ist ein Verfahren zur Bildskalierung gemäß einer Ausführungsform der vorliegenden Technik gezeigt. Das Verfahren kann als von einer Recheneinrichtung ausführbare Befehle (beispielsweise Computerprogramm) implementiert werden, die in einem oder mehreren von einer Recheneinrichtung lesbaren Medien (beispielsweise Computerspeicher) gespeichert sind und von einer oder mehreren Recheneinrichtungen (beispielsweise Graphikverarbeitungseinheit) ausgeführt werden.
-
Das Verfahren beginnt bei 110 mit Empfang mehrerer Blöcke an Pixeldaten eines Bildes. Die Blöcke an Pixeldaten beinhalten eine gegebene Anzahl an Pixelwerten pro Block. In einer Implementierung beinhalten die Blöcke an Pixeldaten Werte eines 4x 4-Array an Pixel. Bei 120 wird eine richtungsabhängige Interpolation an jedem Block an Pixeldaten ausgeführt. Die Richtungsinterpolation umfasst in einer Implementierung das Anwenden eines richtungsabhängigen nicht-linearen Filters D(Bild, m), der um einen Faktor 2 aufwärts skaliert, auf den Block an Pixelwerten.
-
Für jeden ursprünglichen 4x 4-Block an Pixelwerten werden Werte aus dem 4x 4-Gitter interpoliert, wie in 2A und 2B gezeigt ist. Der gleiche Algorithmus wird auch angewendet, um Werte zu interpolieren, nachdem das Gitter um 45 Grad nach links gedreht ist, wie in 2C und 2D gezeigt ist. Der gleiche Algorithmus wird auch angewendet, um Werte zu interpolieren, nachdem das Gitter um 45 Grad nach rechts gedreht ist, wie in 2B und 2F gezeigt ist. Die Quadrate repräsentieren die ursprünglichen Pixelwerte, die Kreise repräsentieren interpolierte Werte auf dem ursprünglichen Gitter, das Dreieck repräsentiert den interpolierten Wert für das Gitter, das um 45 Grad nach links gedreht ist, uns das Achteck repräsentiert den interpolierten Wert für das Gitter, das um 45 Grad nach rechts gedreht ist. Wenn Daten von außerhalb des ursprünglichen Bildes benötigt werden, kann eine beliebige standardmäßige Textur-Funktion (beispielsweise, Klemmen, Spiegeln, Umschließen, Begrenzen, usw.) verwendet werden. Jedes ursprüngliche Pixel (beispielsweise Quadrat) erzeugt drei weitere Pixel (einen Kreis, ein Dreieck und ein Achteck).
-
Für jede Interpolation wird die Summe der absoluten Differenz der Pixel-Leuchtstärken von ursprünglichen Pixelwerten links und rechts neben der Diagonale gemäß den Metrikgleichungen 1 und 2 berechnet, wie dies in
3A und
3B dargestellt ist.
Die Metriken bzw. Maßzahlen sind die Summe von sieben Absolutdifferenzen der Pixel-Leuchtstärken der ursprünglichen Pixelwerte, die benachbart zur Diagonalen liegen.
-
In einer Implementierung können die Metrik-Gleichungen 1 und 2 auch durch Faltung des Bildes mit den Kernen gemäß 3 und 4 berechnet werden,
und durch Anwenden eines Schachtel- bzw. Würfel-Filters nach 5.
Der Schachtelfilter 5 wird verwendet, um die Antwort der Kerne 3 und 4 zu glätten.
-
Wenn beispielsweise ein 4x 4-Block an Pixelwerten durch
angegeben wird,
kann die Faltung berechnet werden als 102 - 131 + 101 - 121 + 112 - 231 + 100 - 11| + |11 - 221 + |22 - 33| + |10 - 21| + |21 - 32| + |20 - 31| für die linken Diagonalen, und als |01 - 10| + |20 - 11| + |11 - 02| + |30 - 21| + |21 - 12| + |12 - 03| + |31 - 22| + |22 - 13| + |32 - 23|. Die Summe der Absolutdifferenzen kann größer gemacht werden als 4x4. Unterschiedliche Gewichtungen für jede Differenz, etwa
können anstelle des Schachtelfilters 5 verwendet werden.
-
Eine weitere Vorgehensweise besteht darin, die Metrik für das gesamte Bild (beispielsweise M45 und M135, berechnet für das gesamte Bild) zu berechnen, und anschließend einen Max-, Mittel- oder Min-Filter über jeweils ein 3×3-, 5×5-oder dergleichen Array an Pixelwerten anzuwenden und die ursprünglichen Werte durch das Ergebnis zu ersetzen. Es kann dann eine Kategorisierung und Auswahl der Interpolationsrichtung angewendet werden.
-
Wenn eine gegebene Metrik klein ist, ist das Bild in dieser entsprechenden Richtung isophotisch. Der gegebene Block an Pixel wird in der Richtung seiner dominierenden Isophote interpoliert. Wenn keine Richtung dominiert, wird ein standardmäßiger linearer Filter verwendet, um den gegebenen Block an Pixel richtungsabhängig zu interpolieren. Somit kann, wenn die zwei Metriken den Bereich [0,9] gegeben sind, der Graf aus
4A verwendet werden, um die Metrik in drei mögliche Interpolationsrichtungen 8, 9 und 10 einzustufen,
und wie dies entsprechend in
5A,
5B und
5C gezeigt ist. Die Interpolationsrichtung kann Lanczos-fensterunterteilte sinc-Gewichtungen [-199 - 1]/16 verwenden. Für das 4x4-Array kann die gleiche Gewichtung wie für den separaten Filter verwendet werden. Die Konstanten a, b und c können aus den Parametern tx und ty entsprechend den Gleichungen 11, 12 und 13 berechnet werden.
-
Die Parameter tx und ty, beide in [0,9], sind einstellbare Parameter. Vernünftige Werte sind tx = 8,1 und ty = 0,1.
-
In einer zweiten Implementierung können die Metrik-Gleichungen 1 und 2 auch berechnet werden, indem das Bild mit den Kernen entsprechend zu 3 und 4 gefaltet wird, und indem danach ein Mittelwertfilter 14
auf die Ergebnisse angewendet wird.
-
Es gilt wiederum, wenn eine gegebene Metrik klein ist, dann ist das Bild in dieser entsprechenden Richtung isophotisch. Der gegebene Block an Pixel kann in der Richtung der dominierenden Isophote interpoliert werden. Wenn keine Richtung dominiert, kann ein standardmäßiger linearer Filter zur richtungsabhängigen Interpolation des gegebenen Blocks an Pixel verwendet werden. Die dominierende Richtung kann bestimmt werden, indem relative Größen der Metrik verglichen werden. Somit kann bei den zwei gegebene Metriken der Graf aus
4B verwendet werden, um die Metrik in drei mögliche Interpolationsrichtungen 15, 16 und 17 einzuteilen,
und wie dies auch in den
5A,
5B und
5C entsprechend dargestellt ist. Die Gewichtungen für die F
45-und F
135-Interpolation können sein
Für F4X4 können die gleichen Gewichtungen wie für die separaten horizontalen und vertikalen Gewichtungen verwendet werden. Andere Gewichtungen, die verwendbar sind, sind dem ungefähren Bereich
-
Wenn YUV (Luminanz/Leuchtstärke + Chrominanz) Bilder bearbeitet werden, kann man den Maßstab des Y-Kanals gemäß dem zuvor beschriebenen Verfahren auswählen und kann eine beliebige geeignete lineare Skalierung für die UV-Kanäle verwenden. Im Allgemeinen kann dies vorgenommen werden, wenn dies aus Leistungsgründen erforderlich ist, da Detail hinsichtlich der Farbe verloren geht. D(I, m) für einen einzigen Kanal I ist gleich wie oben mit Ausnahme, dass der Kanalwert direkt als Leuchtstärke verwendet wird.
-
Bei
130 wird eine Farb-Verstärkung bzw. Farb-Schärfung an jedem Block aus richtungsabhängig interpolierten Pixelwerten ausgeführt. Der Verstärkungsfilter kann
p' = p +2 (p -blur(p)) sein, wobei der blur-Filter bzw. Verschwommenheits-Filter in beliebiger Tiefpassfilter sein kann. Die Farb-Verstärkung umfasst in einer Implementierung die Anwendung eines nicht-linearen verstärkenden bzw. schärfenden Filters. In einer Implementierung kann der verstärkende Filter
18
sein. In einer Implementierung wird der YPbPr-Farbraum verwendet. In einer Implementierung scheint der Verstärkungsfilter im Bereich 0,10 bis 0,16 am besten zu sein. Zu beachten ist, dass der Verstärkungsfilter als ein separater Filter berechnet werden kann, gefolgt von einer Multiplizier-Addition.
-
In einer zweiten Implementierung wird der Verstärkungsfilter
auf alle Kanäle des Pixels p angewendet, s kann variieren, wenn der Interpolationsschritt iterativ ausgeführt wird. Der blur-Filter bzw. Verschwommenheits-Filter wird auf die NxN-Nachbarschaft um p herum angewendet, wobei N ungerade ist. Ein brauchbarer Filter für die Anwendung ist
aber es kann nahezu alles verwendet werden, was wie ein Tiefpassfilter wirkt. Es ist herausgefunden worden, dass m ∈ {~1,1 , ~1,9} und s ≈2,0 mit dem vorhergehenden Filter für Bilder gut funktionieren.
-
Bei 140 wird eine Leuchtstärkefestlegung an jedem Block aus farbverstärkten richtungsabhängig interpolierten Pixelwerten ausgeführt. In einer Implementierung kann die Leuchtstärke auf den Lautstärkebereich der ursprünglichen 3x3-Nachbarschaft festgelegt werden. In einer zweiten Implementierung
-
Bei 150 werden mehrere Blöcke an auf eine Leuchtstärke festgelegten (wenn möglich), farbverstärkten, richtungsabhängig interpolierten Pixelwerten als ein vergrößertes Bild ausgegeben. In einer Implementierung werden die mehreren Blöcke an auf eine Leuchtstärke festgelegten, farbverstärkten, richtungsabhängig interpolierten Werten auf eine Anzeige für eine visuelle Darstellung für einen Anwender ausgegeben. Beispielsweise können Ausführungsformen vorteilhaft eingesetzt werden, um Rück-Puffer zu vergrößern, um damit Leistung von GPUs während der Ausführung von Echtzeit-Spielen oder einer Video-Skalierung zu verbessern, die auf 4K oder größeren Anzeigen laufen. In einer weiteren Implementierung werden die mehreren Blöcke an auf eine Leuchtstärke festgelegten, farbverstärkten, richtungsabhängig interpolierten Werten in von einer Recheneinheit lesbaren Medien (beispielsweise Computerspeicher) gespeichert.
-
Es sei nun auf 6 verwiesen, in der ein Verfahren zur Bildskalierung gemäß einer weiteren Ausführungsform der vorliegenden Technik gezeigt ist. Das Verfahren beginnt mit dem Empfang mehrere Blöcke an Pixeldaten eines Bildes bei 610. Bei 620 wird eine richtungsabhängige Interpolation an jedem Block an Pixeldaten ausgeführt. Die Pixel-Blöcke können richtungsabhängig interpoliert werden, wie dies zuvor mit Bezug zu dem Prozess 120 beschrieben ist. Bei 630 wird eine Schärfung bzw. Verstärkung an jedem Block an richtungsabhängig interpolierten Pixelwerten ausgeführt. Eine lineare Verstärkung bzw. Schärfung kann ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 130 beschrieben ist. Bei 640 wird ermittelt, ob eine vorbestimmte Skalierung erreicht ist. Wenn die vorbestimmte Skalierung nicht erreicht ist, kann der Prozess aus 620 und 630 iterativ wiederholt werden. Sobald die gewünschte Skalierung erreicht ist, werden die linear geschärften bzw. verstärkten, richtungsabhängig interpolierten Pixeldaten für die mehreren Blöcke an Pixeldaten als das skalierte Bild ausgegeben.
-
Das Verfahren zur Bildskalierung unter Verwendung einer richtungsabhängigen Interpolation und der Verstärkung ohne Leuchtstärkefestsetzung erzeugt vorteilhafterweise ein skaliertes Bild, das bei vierfacher (4x) und höherer Skalierung besser aussieht im Vergleich zu dem Fall, wenn eine Festlegung auf eine Leuchtstärke verwendet wird.
-
Andere Maßstäbe können mittels eines linearen Filterschritts erreicht werden. Beispielsweise kann eine bi-lineare Abwärtsskalierung für verbesserte Details eingesetzt werden, oder es kann eine tri-lineare Skalierung verwendet werden, wenn Kontinuität zwischen Vergrößerungen wichtig ist. Für einen Vergrößerungsvorgang von Z wird in der tri-linearen Interpolation log2(Z) = int.fac berechnet. Das Verfahren zur richtungsabhängigen Interpolation und Verstärkung ohne Festlegung auf eine Leuchtstärke wird verwendet, um zwei Bilder als Vergrößerungs-Bilder A = 2int und B = 2(int+1) zu erhalten, diese werden linear miteinander gemischt mittels A*(1-frac) + B*frac..
-
Es sei nun auf 7A - 7D verwiesen, in denen ein Verfahren zur Bildskalierung gemäß einer noch weiteren Ausführungsform der vorliegenden Technik gezeigt ist. Das Verfahren beginnt mit Empfangen mehrerer Blöcke an Pixeldaten eines Bildes bei 702. Bei 704 wird ein Bildskalierungsfaktor ebenfalls empfangen. In einer Implementierung sei Z = max (xscale, yscale) der Bildskalierungsfaktor.
-
Wenn der Bilder Skalierungsfaktor Z bei 706 kleiner als 1,0 ist, werden die mehreren Blöcke an Pixeldaten bei
708 abwärts-abgetastet. In einer Implementierung kann eine bi-lineare Abtastung angewendet werden. In einer weiteren Implementierung wird eine Gauß' sche-Abwärtsabtastung als ein 6x6-Filter mit dem Kern
angewendet
Dabei ist
wobei
und
die gewünschte Ausgangsverschwommenheit und die abgeschätzte Eingangsverschwommenheit sind. Generell
und
Die abwärts abgetasteten mehreren Blöcke an Pixeldaten werden bei
756 als das skalierte Bild ausgegeben.
-
Wenn der Bildskalierungsfaktor Z größer als 1,0 und kleiner als 2,0 bei 710 ist, werden die mehreren Blöcke an Pixel bei 712 richtungsabhängig interpoliert. Die Pixel-Blöcke können richtungsabhängig interpoliert werden in der Weise, wie dies zuvor mit Bezug zu dem Prozess 120 beschrieben ist. Bei 714 werden die richtungsabhängig interpolierten Blöcke an Pixel abwärts-abgetastet. In einer Implementierung erfolgt die Abwärts-Abtastung in der zuvor mit Bezug zu dem Prozess 708 beschriebenen Weise. Bei 716 werden die abwärts-abgetasteten richtungsabhängig interpolierten Pixel-Blöcke in der Farbe verstärkt bzw. geschärft. Farb-Verstärkung kann ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 130 beschrieben ist. Bei 718 werden die farbverstärkten, abwärts-abgetasteten, richtungsabhängig interpolierten Blöcke an Pixeldaten auf eine Leuchtstärke festgelegt. Die Festlegung auf eine Leuchtstärke kann ausgeführt werden, wie dies zuvor mit Bezug zu den Prozessen 140 beschrieben ist. Die in der Leuchtstärke festgelegten, farbverstärkten, abwärts-abgetasteten, richtungsabhängig interpolierten mehreren Blöcke an Pixeldaten werden bei 756 als das skalierte Bild ausgegeben.
-
Wenn der Bildskalierungsfaktor Z bei 720 gleich 2,0 ist, werden bei 722 die mehreren Blöcke an Pixel richtungsabhängig interpoliert. Wiederum können die Pixel-Blöcke richtungsabhängig interpoliert werden, wie dies zuvor mit Bezug zu dem Prozess 120 beschrieben ist. Bei 724 werden die richtungsabhängig interpolierten Pixel-Blöcke farbverstärkt. Wiederum kann die Farb-Verstärkung ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 130 beschrieben ist. Bei 726 werden die farbverstärkten, richtungsabhängig interpolierten Blöcke an Pixeldaten auf eine Leuchtstärke festgelegt. Wiederum kann die Festlegung auf eine Leuchtstärke ausgeführt werden, wie dies zuvor mit Bezug zu den Prozessen 140 beschrieben ist. Die auf eine Leuchtstärke festgelegten, farbverstärkten, richtungsabhängig interpolierten mehreren Blöcke an Pixeldaten werden bei 756 als das skalierte Bild ausgegeben.
-
Wenn der Bildskalierungsfaktor Z bei 728 größer ist als 2,0, werden bei 730 die mehreren Blöcke an Pixel richtungsabhängig interpoliert. Wiederum können die Pixel-Blöcke richtungsabhängig interpoliert werden, wie dies zuvor mit Bezug zu dem Prozess 120 beschrieben ist. Bei 732 werden die richtungsabhängig interpolierten Pixel-Blöcke farbverstärkt. Wiederum kann die Farb-Verstärkung so ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 130 beschrieben ist. Bei 734 werden die farbverstärkten, richtungsabhängig interpolierten Blöcke an Pixeldaten auf eine Leuchtstärke festgelegt. Wiederum kann eine Festlegung auf eine Leuchtstärke so ausgeführt werden, wie dies zuvor mit Bezug zu den Prozessen 140 beschrieben ist. Bei 736 wird ermittelt, ob die zwischenstufliche Bildskalierung, die gemäß den Prozessen 730-734 ausgeführt ist, innerhalb eines Faktors von 2,0 oder kleiner des Bildskalierungsfaktors liegt. Wenn eine zwischenstufliche Bildskalierung nicht innerhalb eines Faktors von 2,0 oder kleiner des Bildskalierungsfaktors liegt, dann werden die Prozesse 730-734 iterativ wiederholt, bis die zwischenstufliche Bildskalierung innerhalb eines Faktors von 2,0 oder kleiner des Bildskalierungsfaktors liegt.
-
Wenn die zwischenstufliche Bildskalierung größer als 1,0 und kleiner als 2,0 des Bildskalierungsfaktors bei 738 ist, wird der zwischenstufliche skalierte Block aus Pixel bei 740 richtungsabhängig interpoliert. Die Pixel-Blöcke können richtungsabhängig interpoliert werden, wie dies zuvor mit Bezug zu dem Prozess 120 beschrieben ist. Bei 742 werden die richtungsabhängig interpolierten Blöcke an Pixel abwärtsabgetastet. Die Abwärts-Abtastung kann ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 708 beschrieben ist. Bei 744 werden die abwärts-abgetasteten, richtungsabhängig interpolierten Pixel-Blöcke farbverstärkt. Die Farb-Verstärkung kann ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 130 beschrieben ist. Bei 746 werden die farbverstärkten, abwärts-abgetasteten, richtungsabhängig interpolierten Blöcke an Pixeldaten auf eine Leuchtstärke festgelegt. Die Festlegung auf eine Leuchtstärke kann ausgeführt werden, wie dies zuvor mit Bezug zu den Prozessen 140 beschrieben ist. Die auf eine Leuchtstärke festgelegten, farbverstärkten, abwärts-abgetasteten, richtungsabhängig interpolierten mehreren Blöcke an Pixeldaten werden bei 756 als das skalierte Bild ausgegeben.
-
Wenn die zwischenstufliche Bildskalierung gleich 2,0 des Bildskalierungsfaktors bei 748 ist, werden die zwischenstuflichen skalierten Blöcke an Pixel bei 750 richtungsabhängig interpoliert. Die Pixel-Blöcke können richtungsabhängig interpoliert werden, wie dies zuvor mit Bezug zu dem Prozess 120 beschrieben ist. Bei 752 werden die richtungsabhängig interpolierten Pixel-Blöcke farbverstärkt. Die Farb-Verstärkung kann ausgeführt werden, wie dies zuvor mit Bezug zu dem Prozess 130 beschrieben ist. Bei 754 werden die farbverstärkten, richtungsabhängig interpolierten Blöcke an Pixeldaten auf eine Leuchtstärke festgelegt. Die Festlegung auf eine Leuchtstärke kann ausgeführt werden, wie dies zuvor mit Bezug zu den Prozessen 140 beschrieben ist. Die auf eine Leuchtstärke festgelegten, farbverstärkten, richtungsabhängig interpolierten mehreren Blöcke an Pixeldaten werden bei 756 als das skalierte Bild ausgegeben.
-
Operationen in den zuvor beschriebenen Skalierungstechniken werden im linearen Farbraum ausgeführt. Das Koordinatensystem der zuvor beschriebenen Skalierungstechniken ist nicht ganz gleich wie bei linear-skalierten Bildern. Wenn daher mit YUV-Bildern gearbeitet wird, wobei die zuvor beschriebenen Verfahren den Y-Kanal skalieren und ein beliebiger geeigneter linearer Filter die UV-Kanäle skaliert, muss die inverse Abbildung in den linearen Filter zwei unterschiedliche Abbildungen für den Vergrößerungsfaktor Z = 2
n-δ (wobei 0 ≤ δ < 1 und n eine Ganzzahl ist) ermöglichen, um sicherzustellen, dass die UV-Kanäle in korrekter Weise zu dem Y-Kanal ausgerichtet sind:
wobei u
0 die Abtastposition in dem ursprünglichen Bild ist, die der Abtastposition u
Z in dem Ausgangsbild entspricht. Die gleiche Gleichung gilt für die v -Koordinate.
-
Ausführungsformen der vorliegenden Technik können vorteilhafterweise die Geschwindigkeit für die Skalierung von Bildern in einer vorgegebenen Bilderzeugungsqualität im Vergleich zu konventionellen Techniken erhöhen. Des Weiteren können durch verstärken der Farbe vor der Festlegung auf eine Leuchtstärke Ausführungsformen der vorliegenden Technik vorteilhaft kantenbezogene Bildfehler in dem vergrößerten Bild reduzieren. Ausführungsformen der vorliegenden Technik erreichen typischerweise eine Leistung im Bereich von Giga-Pixel pro Sekunde und bieten eine Qualität, die sichtbar besser ist im Vergleich zu einer rein linearen Skalierung in konventionellen Verarbeitungseinheiten. Ausführungsformen der vorliegenden Technik können vorteilhafterweise fortgesetzt interessierende Details auf einer beliebigen Stufe der Vergrößerung erzeugen.