-
Hintergrund
-
Dies bezieht sich allgemein auf die Verarbeitung von Videoinformation.
-
Ein Video kann mit einer gegebenen Bildfrequenz bereitgestellt werden. Das Video ist aus einer Sequenz von Standbildern zusammengesetzt. Die Bildfrequenz entspricht der Anzahl an Frames pro Sekunde.
-
Einige Anzeigen verwenden Bildfrequenzen, die sich von den Bildfrequenzen des Eingangsvideos unterscheiden. Somit wandelt die Bildfrequenzumwandlung die Bildfrequenz nach unten oder oben um, sodass die Eingangsbildfrequenz mit der Bildfrequenz der Anzeige übereinstimmt.
-
Kurze Beschreibung der Zeichnungen
-
1 ist eine schematische Abbildung einer Ausführungsform der vorliegenden Erfindung;
-
2 ist ein Hinweis darauf, wie Bewegungseinschätzungs-Suchstellengewichtungen einem Block von Pixeln gemäß einer Ausführungsform zugeordnet werden können;
-
3 ist ein Ablaufdiagramm für die hierarchische Bewegungseinschätzung gemäß einer Ausführungsform der vorliegenden Erfindung;
-
4 ist ein Ablaufdiagramm für die Frameinterpolation gemäß einer Ausführungsform der vorliegenden Erfindung; und
-
5 ist ein Ablaufdiagramm für die endgültige Pixelinterpolation gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Ausführliche Beschreibung
-
Bildfrequenzumwandlung wird verwendet, um die Bildfrequenz einer Videosequenz zu ändern. Eine typische Anwendung des Bildfrequenzumwandlungsalgorithmus ist die Umwandlung von Filminhalt von 24 Frames pro Sekunde auf 60 Frames pro Sekunde für das National-Television-Systems-Committee-(NTSC)-System oder von 25 Frames pro Sekunde auf 50 Frames pro Sekunde für das Phase-Alternating-Line-(PAL)-System. Die Unterstützung des hochauflösenden Fernsehens, eine Anzeige mit 120 oder 240 Frames pro Sekunde, welche ebenfalls Bildfrequenzumwandlung nach oben erfordert. Gemäß einigen Ausführungsformen kann der Bildfrequenzumwandlungsalgorithmus die in der Videosequenz abgebildete Bewegung kompensieren.
-
Bei einer Ausführungsform werden bidirektionale hierarchische Bewegungseinschätzung und Bewegungskompensation verwendet. „Bidirektional” bedeutet, dass die Bewegung zwischen denselben zwei Ankerframes (hier vorheriger und darauffolgender Frame genannt) in den Vorwärts- und Rückwärtsrichtungen bewertet wird. Hierarchische Bewegungseinschätzung bezieht sich auf die Tatsache, dass die Bewegungseinschätzung mit zunehmender Auflösung der bereitgestellten Videoinformation verfeinert wird. Der bidirektionalen hierarchischen Bewegungseinschätzung und -kompensation kann ein endgültiger Interpolationsabschnitt folgen, der sich um die verschiedenen Probleme kümmert, die sich aus dem Bewegungseinschätzungs- und Bewegungskompensationsabschnitt ergeben, um die Qualität des interpolierten Bildes zu verbessern.
-
Mit Bezug auf 1 umfasst der Bildfrequenzumwandlungsalgorithmus 10 einen Bewegungseinschätzungsblock 12 und einen Frameinterpolationsblock 14. Somit kann ein vorheriger Eingangsframe wie auch ein darauffolgender Eingangsframe zu den Blocks 12 und 14 gehen. Die Interpolation an der Ausgangsbildfrequenz 14 empfängt die Eingangsbildfrequenz und die Ausgangsbildfrequenz. Sie empfangt ebenfalls die Bewegungsvektoren. Basierend auf all diesen Informationen stellt sie wie angezeigt einen bildfrequenzkorrigierten Ausgang bereit.
-
Die Bewegungseinschätzung wird zwischen zwei oder mehr benachbarten Frames ausgeführt, indem Regionen von einem Frame zu einem anderen angeglichen werden. Diese angeglichenen Regionen sind gewöhnlich kleinere rechteckige Blocks von Pixeln innerhalb des Frames. Eine bidirektionale Bewegungseinschätzung wird ausgeführt, um zwei Sätze von Bewegungsvektoren zu erhalten (einer vom Basisframe zum darauffolgenden Frame und einer vom Basisframe zum vorherigen Frame). Die Verwendung der bidirektionalen Bewegungseinschätzung kann bei einigen Ausführungsformen in zuverlässigeren Bewegungsvektoren resultieren. Der endgültige Satz von Bewegungsvektoren wird dann verwendet, um Frames beim korrekten Zeitstempel zu interpolieren. Der Zeitstempel basiert auf der Bildfrequenz.
-
Die Bewegungseinschätzung berechnet Bewegungsvektoren, welche die Translations- und Rotationsbewegung von abgebildeten Bildobjekten innerhalb einer Sequenz von Videoframes repräsentieren. Unter Verwendung einer Blockabgleichstechnik erhält man einen einzelnen Bewegungsvektor für einen mXn-Block. Ein typisches Ähnlichkeitsmaß ist die Summe von absoluten Differenzen (SAD) zwischen Blocks, aber andere Ähnlichkeitsmaße können ebenfalls verwendet werden. Alle Pixel innerhalb des rechteckigen Blocks sind demselben Bewegungsvektor zugeordnet.
-
Bei einigen Ausführungsformen verwendet die hierarchische Bewegungseinschätzungsengine Energieminimierung basierend auf absoluten Differenzen, Auflösungsniveau und Distanz zum Suchblock. Die hierarchische Bewegungseinschätzung kann die Erhöhung des Bewegungsbereichs zulassen, indem man bei einigen Ausführungsformen unabhängig bei niedrigen Auflösungsversionen der Original-Videoframes arbeitet und schrittweise die Auflösung in der Position der Bewegungsvektoren erhöht und gleichzeitig ein Vertrauen in deren Werte erhöht.
-
Schnelle oder intensive Bewegungsframes können zum Beispiel erkannt werden, wenn die Bewegungseinschätzung einen Schwellenwert überschreitet. Schnelle Bewegung kann bei einigen Ausführungsformen als Sonderfälle für die Interpolation behandelt werden. Der Anwender kann den Bewegungsvektorvertrauens-Schwellenwert für die Bewegungsvektoren festlegen. Während die Bewegung zunimmt, nimmt das Vertrauen generell ab.
-
Die Bewegungseinschätzungsengine berechnet Bewegungsvektoren für Blocks der Größe mXn bei unterschiedlichen Auflösungsniveaus. Bei jedem Auflösungsniveau werden die Bewegungsvektoren von einem unteren Auflösungsniveau aus innerhalb eines Suchfensters verfeinert. Eine Kostenfunktion kann basierend auf einer abstandsgewichteten Summe von absoluten Differenzen entwickelt werden. Die Kostenfunktion kann man verwenden, um die Mindestkostenfunktion zu berechnen. Die Bevorzugung kann man Bewegungsvektoren geben, die einem Basisbewegungsvektor näher sind als entferntere Bewegungsvektoren, welche dieselben Kosten aufweisen. Bei einigen Ausführungsformen kann dies eine Vektordivergenz vermeiden. Pixel mit ähnlicher Farbe werden bei einer Ausführungsform dieselbe Gewichtung gegeben. Den Zentrumspixeln nähere Pixel können bevorzugt werden, was bedeutet, dass sie bei einigen Ausführungsformen eine geringere Gewichtung haben können. Allgemein sind die näheren Bewegungsvektoren zuverlässiger.
-
Somit wird in 2 als Beispiel das Grundpixel als einen Gewichtsfaktor von (wt_factor) = 1,0 aufweisend angezeigt, wobei m und n 5 ist. Die nächsten umgebenden Pixel weisen in diesem Beispiel einen Gewichtsfaktor von 1,05 auf und der endgültige Satz von umgebenden Pixeln einen Gewichtsfaktor von 1,1025. Natürlich ist das nur ein Beispiel und die unterschiedlichen Arten der Zuordnung von Gewichten und die verwendeten spezifischen Gewichte können sich alle unterscheiden.
-
Die Bewegungsvektoren kann man berechnen, indem eine Kostenfunktion, die für Distanz von einem Zentrumspixel verantwortlich ist, sowie die Summe von absoluten Differenzen über den Suchbereich minimiert. Die Summe der absoluten Differenzkostenfunktion kann für eine Fenstergröße von pXq wie folgt berechnet werden:
MV (dx, dy) = arg min (SAD_COST) wobei AD die absolute Differenz zwischen entsprechenden Pixelpositionen der Summe des Fensters der absoluten Differenz ist. Wt_factor ist der Gewichtsfaktor und step_cnt ist die Trennung zwischen den Auflösungsniveaus. Zum Beispiel entspricht ein Niveau 5 einer 1/32-Auflösung des Originals.
-
Mit Bezug auf 3 kann eine Sequenz gemäß einer Ausführungsform der vorliegenden Erfindung in Hardware, Software oder Firmware implementiert werden. Bei Software oder Firmware implementierten Ausführungsformen kann sie aus Anweisungen zusammengesetzt sein, die von einem Computer ausgeführt werden. Die Anweisungen können in einem konkreten computerlesbaren Medium wie beispielsweise einem optischen, magnetischen oder Halbleiterspeicher gespeichert sein.
-
Anfänglich werden der vorherige Frame und der darauffolgende Frame verwendet, um hierarchische Bilder wie in Block 28 angezeigt zu generieren. Die hierarchischen Bilder umfassen in diesem Vierpassbeispiel ein gesamtes Auflösungsbild, ein halbes Auflösungsbild, ein Viertelauflösungsbild und ein Achtelauflösungsbild wie angezeigt bei 26. Das System beginnt bei Block 24 mit dem Achtelauflösungsbild.
-
Bei Niveau 3 in diesem Beispiel ist die Blockgröße 8 × 8, was bedeutet, dass es einen Bewegungsvektor für jeden 8 × 8-Satz von Pixeln gibt. Das SAD-Fenster ist ein 12 × 12-Fenster, das den 8 × 8-Block umgibt. Somit ist der Suchbereich ±4 Pixel und an jeder Stelle wird ein SAD von einem 12 × 12-Fenster berechnet. Die Bewegungsvektoren vom Niveau 3 werden dann dem Bewegungseinschätzungsniveau 2 Block 22 bereitgestellt, der das Viertelauflösungsbild aufnimmt. In diesem Fall kann der Suchbereich ±10 Pixel betragen, beispielweise kann die Blockgröße 16 × 16 sein und das Suchfenster 16 × 16.
-
Der Ausgang vom Bewegungseinschätzungsniveau 2 Block 22 wird dem Bewegungseinschätzungsniveau 1 Block 20 bereitgestellt, der ein halbes Auflösungsbild sowie die Bewegungsvektoren vom Niveau 2 empfängt. Die Blockgröße ist 16 × 16 und das SAD-Fenster ist 16 × 16, aber der Suchbereich ist ±21 Pixel.
-
Die Bewegungseinschätzung von Niveau 1 gibt Bewegungsvektoren an ein Bewegungseinschätzungsniveau 0 Block 18 aus, das ebenfalls die gesamte Auflösungsabbildung empfängt. Die Blockgröße ist 16 × 16 und das SAD-Fenster ist 16 × 16, aber der Suchbereich ist ±43 Pixel. Wie angezeigt bei 26 umfasst die gesamte Auflösungsabbildung 75 Prozent mehr als die halbe Auflösung, die nur ein Viertel der Originalauflösung umfasst. Ähnlich empfängt die Viertelauflösung nur ein Viertel von der Auflösung der halben Auflösung und die Achtelauflösung empfängt nur ein Viertel davon.
-
Die Ausgabe von Block 18 erfolgt dann in der Form von Bewegungsvektoren, die an Block 16 bereitgestellt werden, wobei die Bewegungsvektoren für eine Blockgröße 8 × 8 und ein SAD-Fenster 12 × 12 verfeinert sind, um Bewegungsvektoren der Größe 8 × 8 zu erzeugen.
-
In der hierarchischen Bewegungseinschätzung kann man r Bewegungseinschätzungspässe verwenden, wobei jeder eine variierende (z. B. zunehmende) Auflösung aufweist. Beispielsweise kann man eine hierarchische 4-Pass-Bewegungseinschätzung verwenden. Die Bewegungseinschätzung beginnt mit dem gröbsten Niveau, das in diesem Beispiel als ein Niveau 3 benannt ist und in jedem nachfolgenden Schritt verfeinert wird. Das Niveau 3 kann einer 1/8-Auflösung der Originalauflösung entsprechen. Beim gröbsten Niveau, dem Niveau r, wird die Summe der absoluten Differenzkosten an jeder Stelle innerhalb des Suchbereichs von Pixeln berechnet. Bei diesem Auflösungsniveau können bei einer Ausführungsform der Mindestbetrag der absoluten Differenzkosten und der darauffolgende Mindestbetrag der absoluten Differenzkosten erhalten werden.
-
Wenn die Differenz zwischen diesen zwei Kosten zu klein ist, dann können bei einigen Ausführungsformen die besten Bewegungsvektoren von den benachbarten Blocks auf demselben Niveau für den gegenwärtigen Block verwendet werden. Die Differenz ist zu klein, wenn sie sich bei einer Ausführungsform innerhalb eines gegebenen Prozentsatzes des Mindestbetrags der absoluten Differenz befindet.
-
Als ein Beispiel kann man bei einer Ausführungsform die besten Bewegungsvektoren von benachbarten oberen und linken Blocks finden, die zuvor analysiert wurden. Ein oberer Block ist ein Block direkt über dem Gegenstandsblock und der linke Block ist der Block direkt links vom Gegenstandsblock. Wenn die Bewegungsvektoren von einem vorherigen Frame zu Bewegungsfeldern umgewandelt wurden, können sie als Kandidaten dafür betrachtet werden, den besten Bewegungsvektor als eine Extraprüfung für die Konsistenz zu finden. Sie können zu Bewegungsfeldern umgewandelt worden sein, indem man bei einer Ausführungsform die vier oder fünf allgemeinsten und zuverlässigsten Bewegungsvektoren nachverfolgt hat.
-
Dieser Ansatz kann wirksamer sein als rekursive Verfahren, die Fehler propagieren oder in einigen Fällen unter langsamen Umwandlungsübergängen leiden können.
-
Beim nächsthöheren Auflösungsniveau r – 1 werden die Bewegungsvektoren des niedrigeren Niveaus innerhalb des Suchbereichs von Pixeln verfeinert. Die Schritte der Verfeinerung vom Niveau r – 2 an vorwärts verwenden die besten Bewegungsvektoren von den benachbarten vier unteren Auflösungsblocks. Somit kann eine Gruppe von Blocks (der obere links, der obere rechts auf einer Reihe und der untere links und der untere rechts direkt darunter auf der darauffolgenden Reihe) die vier Blocks repräsentieren, die nicht denselben Bewegungsvektor von einem Bild mit niedriger Auflösung teilen.
-
Der obere linke Block wählt die Besten unter den benachbarten vier Blocks mit demselben Muster wie der Basisbewegungsvektor aus. Der Basisbewegungsvektor wird dann innerhalb des Suchbereichs von Pixeln verfeinert. Diesen rekursiven Schritten wird vom Niveau r – 2 zum Niveau 0 gefolgt. Nach der Bewegungseinschätzung von Niveau 0 kann ein Schritt der Verfeinerung angewandt werden, um den besten Bewegungsvektor aus den benachbarten vier Bewegungsvektoren auszuwählen. Dieser Bewegungseinschätzungsschritt kann sowohl bei den Vorwärts- als auch den Rückwärtsrichtungen angewandt werden, um die gesamte Konsistenz und Robustheit der Bewegungsvektoren bei einigen Ausführungsformen zu verbessern. Diese bidirektionalen Bewegungsvektoren kann man während des Interpolationsschritts verwenden.
-
Der Frameinterpolationsschritt umfasst das Interpolieren der Frames beim korrekten Zeitstempel, gewöhnlich um die benötigten Extraframes einzufüllen, um die höhere Bildfrequenz aufzuholen. Der Zeitstempel basiert wiederum auf der Bildfrequenz. Der Frameinterpolationsschritt weist bei einer Ausführungsform drei Blocks auf, eine bidirektionale Bewegungskompensation, Lochfüllung und Interpolation. Im Bewegungskompensationsschritt werden die von der Bewegungseinschätzungsengine erhaltenen Bewegungsvektoren vor der Anwendung von Bewegungskompensation zu dem korrekten Zeitstempel skaliert.
-
Beim Bewegungskompensationsschritt werden drei unterschiedliche Kategorien von Pixeln identifiziert und den identifizierten Pixeln wird eine von drei Bezeichnungen gegeben. Pixel ohne bewegungskompensierten Wert werden als Lochpixel bezeichnet. Ein Lochpixel kann für ein Pixel nahe der Grenze auftreten, sodass kein Pixel mit dem Lochpixel im darauffolgenden Frame übereinstimmt. Das Lochpixel hat das niedrigste Vertrauensniveau. Pixel können ebenfalls mit mehren Bewegungsvektoren verbunden sein und sie sind mit Many-To-One oder M2O bezeichnet. Sie haben das Zwischenvertrauensniveau. One-to-One-Pixel (o2o) sind Pixel, die mit einem anderen Pixel in den Vorwärts- oder Rückwärtsrichtungen übereinstimmen. Diese sind die Pixel mit dem höchsten Vertrauenswert.
-
Im Fall von Many-To-One-Zuordnungspixeln können die Bewegungsvektoren basierend auf den benachbarten Pixeln verfeinert werden. Die vorwärts- und rückwärtsbewegungskompensierten Bilder werden berechnet und ein entsprechender Bewegungseinschätzungsfehler wird bei jedem Pixel zum Beispiel als die Summe von absoluten Differenzen aller drei Farbkomponenten in einem Fenster der Größe pXq berechnet. Beispielsweise kann man eine 3 × 3-Fehlerberechnung durchführen, wo eine Reihe von neun Pixeln in einem vorherigen Frame und von neun Pixeln im darauffolgenden Frame verwendet wird, um ein Zwischenpixel zu interpolieren.
-
Pixel, die nach dem Bewegungskompensationsschritt als Löcher bezeichnet werden, kann man bei einer Ausführungsform unter Verwendung von Nachbarpixelinformation interpolieren. Bei der Lochfüllung kann man die Löcher von benachbarten Bewegungsvektoren rekursiv füllen. Der Bewegungsvektor mit dem Mindestbetrag der absoluten Differenzkosten kann für das gegenwärtige Pixel verwendet werden.
-
Mit Bezug auf 4 werden die Vorwärtsbewegungsvektoren vom Bewegungseinschätzungsschritt an Block 30 bereitgestellt, wo die Vorwärtsbewegungsvektoren skaliert sind. Das heißt, die Vorwärtsbewegungsvektoren können mit einem Skalenfaktor t multipliziert sein und die Rückwärtsbewegungsvektoren sind anhand 1 – t im Block 36 skaliert. Der Skalierungsfaktor t skaliert zu dem korrekten Zeitstempel. Als Nächstes wird dann das vorwärtsbewegungskompensierte Bild im Block 32 erzeugt, wo ein Bewegungskompensationsfehler pro Pixel berechnet wird. Auf gleiche Weise wird dann das rückwärtsbewegungskompensierte Bild im Block 38 erzeugt, während ein Bewegungskompensationsfehler pro Pixel berechnet wird. Dann wird der Lochfüllschritt 34 durchgeführt. Zuletzt wird der endgültige interpolierte Frame wie angezeigt im Block 40 und im Folgenden beschrieben erzeugt.
-
Mit Bezug auf 5 beginnt die endgültige Interpolation des Pixels bei Block 42, wo die Anzahl (CNT) von One-to-One-(020)-Pixeln in der Nachbarschaft des gegenwärtigen Pixels sowohl für die Vorwärts-(CntF020) als auch die Rückwärts-(CntB020)Interpolationsframes berechnet wird. Wenn die Absolutbeträge der Vorwärts-(Fwd Mvs) und Rückwärts-(Bwd Mvs)Bewegungsvektoren unter einem Schwellenwert sind (MV_FWD_TH oder MV_BWD_TH) und die Pixelbezeichnungen nicht Lochpixeln entsprechen, dann werden die Pixel vom vorwärts- und rückwärtsinterpolierten Pixel wie angezeigt in Diamant 44 interpoliert.
-
Wenn die Vorwärtsbewegungsvektoren (Fwd Mvs) größer sind, als ein Schwellenwert (MV_FWD_TH), wie bestimmt im Block 44, und die Rückwärtsbewegungsvektoren (Bwd Mvs) kleiner sind als ein Schwellenwert (MV_BWD_TH), dann bestimmt eine Prüfung bei Diamant 46, ob die Vorwärtspixelbezeichnungen und die Rückwärtspixelbezeichnungen dieselben sind. Zum Beispiel können sie beide One-to-One-Pixel sein. Eine Prüfung bei Diamant 46 bestimmt ebenfalls, ob die Vorwärtszählung von One-to-One-Pixeln größer ist als der Schwellenwert und die Rückwärtszählung von One-to-One-Pixeln größer ist als der Schwellenwert. Wenn dem so ist, dann wird das Ausgangspixel gleich dem Durchschnitt des vorwärtsbewegungskompensierten Pixels und des rückwärtsbewegungskompensierten Pixels im Block 48 gesetzt. One-to-One-Pixeln kann gegenüber Many-to-One-Pixeln Vorrang gegeben werden, wenn die Pixel entweder für One-to-One oder Many-to-One für sowohl die vorwärts- als auch rückwärtsinterpolierten Pixel dieselben sind, und dann kann ein durchschnittlicher Pixelwert als endgültiger Ausgang verwendet werden.
-
Andernfalls bestimmt eine Prüfung bei Diamant 50, ob die Vorwärtspixelbezeichnung One-to-One ist und die Zählung der Rückwärtspixel größer ist als der One-to-One-Schwellenwert. Wenn dem so ist, wird das Ausgangspixel gleich dem vorwärtsbewegungskompensierten Pixel in Block 52 gesetzt. Andernfalls bestimmt eine Prüfung bei Diamant 54, ob die Rückwärtspixelbezeichnung One-to-One ist und die Zählung der One-to-One-Rückwärtspixel größer ist als der Schwellenwert. Wenn dem so ist, wird das Ausgangspixel gleich dem rückwärtsbewegungskompensierten Pixel in Block 62 gesetzt.
-
Andernfalls bestimmt eine Prüfung bei Diamant 56, ob die Vorwärtspixelbezeichnung Many-to-One (M20) ist und die Zählung der One-to-One-Rückwärtspixel größer ist als der Schwellenwert. Wenn dem so ist, wird das Ausgangspixel gleich dem vorwärtsbewegungskompensierten Pixel in Block 62 gesetzt.
-
Andernfalls bestimmt eine Prüfung bei Diamant 58, ob die Rückwärtspixelbezeichnung Many-to-One ist und die Zählung der One-to-One-Rückwärtspixel größer ist als der Schwellenwert. Wenn dem so ist, wird das Ausgangspixel gleich dem rückwärtsbewegungskompensierten Pixel in Block 62 gesetzt. Andernfalls wird das Ausgangspixel gleich dem Medianwert des vorwärtsbewegungskompensierten Pixels, rückwärtsbewegungskompensierten Pixels und eines Alphamischungspixels in Block 60 gesetzt. Das ist ebenfalls das Ergebnis, wenn die Vorwärtsbewegungsvektoren nicht kleiner sind als der Vorwärtsbewegungsvektor-Schwellenwert und die Rückwärtsbewegungsvektoren nicht kleiner sind als der Rückwärtsbewegungsvektor-Schwellenwert.
-
Das Alphamischungspixel ist eine harmonische Zusammenstellung von den Pixeln der benachbarten Frames bei Nullbewegung, gewichtet anhand der Nähe zum Zeitstempel. Die Mischung wird basierend darauf, wo sich der Zeitstempel befindet, durchgeführt. Basierend auf der Distanz vom interpolierten Frame zum vorherigen Frame und der Distanz vom darauffolgenden Frame zum interpolierten Frame wird die Mischung entsprechend vorgenommen. Wenn die vorwärts- und rückwärtsbewegungskompensierten Pixel dieselben sind, dann nimmt der Medianwert diesen Wert und andernfalls nimmt der Medianwert den Alphamischungswert. In jedem Fall wird ein Tiefpassfilter in Block 64 angewandt.
-
Bei einigen Ausführungsformen resultiert eine Kombination von bidirektionalen und hierarchischen Mehrauflösungsverfahren von Bewegungskompensation mit einwandfreier Handhabung von Sonderfällen in der Erkennung von bidirektional kompensierten Versionen des endgültigen Frames und erlaubt die Erzeugung von interpolierten Frames mit relativ hoher Qualität und der Abwesenheit von typischen Artefakten, die sich aus schwacher Bewegungseinschätzung oder Interpolation ergeben.
-
Die hierin beschriebenen Grafikverarbeitungs-Techniken können in verschiedenen Hardware-Architekturen implementiert werden. Beispielsweise kann Grafikfunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein getrennter Grafikprozessor verwendet werden. Als noch weitere Ausführungsform können die Grafikfunktionen durch einen Universalprozessor, einschließlich eines Mehrkernprozessors, implementiert werden.
-
Verweise in dieser Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, mindestens in einer innerhalb der vorliegenden Erfindung eingeschlossenen Implementierung enthalten ist. Somit beziehen sich Verwendungen des Ausdrucks „bei einer Ausführungsform” nicht notwendigerweise auf die gleiche Ausführungsform. Außerdem können die bestimmten Merkmale, Strukturen oder Charakteristika in anderen geeigneten Formen eingeführt werden, die sich von der bestimmten veranschaulichten Ausführungsform unterscheiden, und alle solchen Formen können innerhalb der Ansprüche der vorliegenden Anmeldung eingeschlossen sein.
-
Obwohl die vorliegende Erfindung im Hinblick auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, sind sich Fachleute bewusst, dass viele weitere Modifikationen und Varianten davon möglich sind. Die beigefügten Ansprüche sollen alle solchen Modifikationen und Varianten abdecken, die dem Sinn und Schutzbereich der vorliegenden Erfindung entsprechen.