-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung ist eine internationale Anmeldung auf der Basis der endgültigen US-Anmeldung 13/220,812, eingereicht am 30. August 2011, dessen Offenbarung hiermit ausdrücklich in ihrer Gesamtheit durch Bezugnahme hierin eingeschlossen ist.
-
HINTERGRUND
-
1. Gebiet der Offenbarung
-
Die vorliegende Offenbarung betrifft das Gebiet der Videokompression. Insbesondere betrifft die vorliegende Offenbarung das Isolieren und Erfassen von Videodaten zur Videokompression.
-
2. Hintergrundinformationen
-
Da Videodaten zunehmend in Computersystemen in Anwendungen wie Videokonferenzen und Videoaufnahme verwendet werden, können Computersysteme oft nicht mit den rechnerischen Anforderungen von Videodaten Schritt halten. Videodatenströme haben in der Regel extrem große Bandbreitenanforderungen, die die Fähigkeiten sogar des schnellsten Prozessors zum Komprimieren der Videodaten zur Speicherung oder zur Übertragung in einem Computernetzwerk oder einem Telefonsystem belasten können. Diese Kompression wird in der Regel von einer zentralen Recheneinheit (CPU) in einem Computersystem durchgeführt, wobei ein Verlust in der Bildklarheit entsteht, da die CPU nicht mit den Videodaten Schritt halten kann. Komplexe Szenen, die viele Elemente aufweisen, die in Bewegung sind, stellen die größte Herausforderung dar, da sie die CPU während des Kompressions- und Datenübertragungsvorgangs enorm belasten.
-
Echtzeit-Videoübertragung zu ermöglichen, erfordert somit ein großes Ausmaß an Datenkompression. Datenkompression kann jedoch die Bildqualität beeinflussen. Deshalb wurden große Anstrengungen unternommen, Kompressionsverfahren zu entwickeln, die Echtzeitübertragung von qualitativ hochwertigen Videos über Datenverbindungen mit eingeschränkter Bandbreite zulassen. In Videokompressionssystemen ist das Hauptziel das Darstellen der Videoinformationen mit so wenig Kapazität wie möglich. Das gebräuchlichste Videokodierungsverfahren ist in den MPEG- und H.26-Standards beschrieben.
-
Ein zeitaufwändiger Schritt bei der Kompression von Videodaten ist das Berechnen von Differenzen zwischen aufeinander folgenden Videobildern. Eine CPU berechnet in der Regel eine Bilddifferenz durch Einlesen eines Videobilds in den Speicher und Berechnen der Differenz zwischen dem aktuellen Videobild und einem vorherigen Videobild, das zuvor in einem Speicher in dem Computersystem gespeichert wurde. Das Berechnen der Differenz umfasst in der Regel das Durchführen eines Exklusiv-ODER-Vorgangs zwischen dem aktuellen Videobild und dem vorherigen Videobild. Im Allgemeinen kann jede Funktion, die effektiv die Differenz zwischen zwei aufeinander folgenden Videobildern mit lediglich geringen Modifikationen des jeweiligen Kompressionsalgorithmus darstellt, verwendet werden. Somit kann eine große Anzahl möglicher Funktionen zum Berechnen der Differenz zwischen aufeinander folgenden Videobildern verwendet werden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Erfindung betrifft das Gebiet der Videokompression zum Isolieren und Erfassen von Videodaten zur Videokompression.
-
In einer Ausführungsform gibt es ein Verfahren zum Komprimieren von Videodaten in einem Netzwerksystem, das das Empfangen eines aktuellen Videobilds von einem Videoeingang; das Berechnen von Differenzen zwischen dem aktuellen Videobild und einem vorherigen Videobild; und das Verarbeitung der berechneten Differenzen, um Cluster von Bilddaten für die Kompression zu bestimmen, umfasst.
-
Unter einem Gesichtspunkt umfasst das Verfahren das Scannen der Cluster von Bilddaten, um Knoten am äußeren Kranz, der das Cluster von Bilddaten umgibt, zu lokalisieren; und Bestimmen von Punkten nicht verarbeiteter Differenzen in den Bilddaten; und wenn die Punkte nicht verarbeiteter Differenzen gefunden sind, Markieren der Punkte als Knoten am äußeren Kranz, der das Cluster von Bilddaten umgibt, und wenn alle Punkte nicht verarbeiteter Differenzen gefunden wurden, Komprimieren der Daten des äußeren Kranzes, die die Knoten am äußeren Kranz darstellen.
-
Unter einem anderen Gesichtspunkt umfasst das Verfahren das Beseitigen redundanter Kranzknoten; Scannen entlang dem Inneren der Knoten am äußeren Kranz, um angrenzende innere Kränze zu erkennen; Scannen der Knoten am äußeren Kranz und der Knoten am angrenzenden Kranz, um nicht gefüllte innere Punkte zu lokalisieren; rekursives Füllen nicht gefüllter innerer Punkte und Farberfassung; und Lokalisieren bindungsloser innerer Kränze anhand der rekursiven Füllung.
-
Unter einem anderen Gesichtspunkt umfasst das Verfahren das Ablegen einer Summe der erfassten Farben des aktuellen Videobild und eines künftigen Videobilds in Blöcken; Ablegen einer Differenz der erfassten Farben des aktuellen Videobilds und des künftigen Videobilds in Blöcken; und Komprimieren der Blöcke.
-
In einer anderen Ausführungsform der Erfindung gibt es ein nichttransitorisches computerlesbares Medium, das ein Programm zum Komprimieren von Videodaten in einem Netzwerksystem speichert, wobei das Netzwerksystem einen Computer aufweist, der ein aktuelles Videobild empfängt, wobei das Programm vom Computer ausgeführt werden kann und das Berechnen von Differenzen zwischen dem aktuellen Videobild und einem vorherigen Videobild umfasst; und Verarbeiten der berechneten Differenzen, um Cluster von Bilddaten zur Kompression zu bestimmen.
-
In noch einer anderen Ausführungsform gibt es ein Netzwerksystem zum Komprimieren von Videodaten in einem Netzwerksystem, das einen Sender, der ein aktuelles Videobild sendet; einen Empfänger, der ein aktuelles Videobild vom Sender empfangt; und einen Prozessor, der Differenzen zwischen dem aktuellen Videobild und einem vorherigen Videobild berechnet und die berechneten Differenzen verarbeitet, um Cluster von Bilddaten zur Kompression zu bestimmen, aufweist.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt ein beispielhaftes System gemäß einer Ausführungsform der vorliegenden Erfindung.
-
2 zeigt ein anderes beispielhaftes System gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
-
3 zeigt ein beispielhaftes Diagramm der Verarbeitung von Differenzen gemäß der vorliegenden Erfindung.
-
4 zeigt einen beispielhaften Kompass, der gemäß der vorliegenden Erfindung verwendet wird.
-
5A–5E zeigen einen beispielhaften Scan von Bilddaten gemäß der vorliegenden Erfindung.
-
6A–6D zeigen einen anderen beispielhaften Scan von Bilddaten gemäß der vorliegenden Erfindung.
-
7A und 7B zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung.
-
8A–8C zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung.
-
9A–9C zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung.
-
10A und 10B zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung.
-
11A und 11B zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung.
-
12A–12C zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung.
-
13 zeigt ein beispielhaftes Diagramm der Gruppierung und Speicherung von Bilddaten gemäß der vorliegenden Erfindung.
-
14A und 14B zeigen ein beispielhaftes Verfahren zum Mischen von Bilddaten gemäß der vorliegenden Erfindung.
-
15A–15I zeigen eine beispielhafte Ausführungsform zum Korrigieren eines unklaren Bilds gemäß der vorliegenden Erfindung.
-
16A und 16B zeigen eine beispielhafte Ausführungsform zum Korrigieren eines unklaren Bilds gemäß der vorliegenden Erfindung.
-
17 zeigt ein beispielhaftes Verfahren zum Überprüfen von Bilddaten gemäß der vorliegenden Erfindung.
-
18A–18F zeigt ein beispielhaftes Diagramm zum Zusammenfassen oder Zusammenführen von Differenzen gemäß der vorliegenden Erfindung.
-
19 zeigt ein beispielhaftes Fließschema gemäß der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
Angesichts des Vorstehenden soll die vorliegende Offenbarung durch einen oder mehrere ihrer verschiedenen Gesichtspunkte, Ausführungsformen und/oder speziellen Merkmale oder Unterkomponenten einen oder mehrere der Vorteile, wie nachstehend konkret dargelegt, erzielen.
-
Die vorliegende Offenbarung betrifft das Gebiet der Videokompression. Insbesondere betrifft die vorliegende Offenbarung das Isolieren und Erfassen von Videodaten zur Videokompression.
-
Dementsprechend stellt die vorliegende Erfindung ein Videokompressionsverfahren bereit, das das Abspielen von bewegtem Video durch Erfassen von Differenzen zwischen Videobildern ermöglicht. Das Verfahren nutzt die Tatsache, dass Hauptdifferenzen zwischen Bildern in Cluster auftreten.
-
1 zeigt ein beispielhaftes System gemäß einer Ausführungsform der vorliegenden Erfindung. System 1 weist zum Beispiel ein Netzwerk N auf, an das periphere Geräte bzw. Vorrichtungen, wie Computer-SC und -RC, angeschlossen werden können. Zu den peripheren Vorrichtungen gehören ein Prozessor und ein Satz an Anleitungen, wie ein Algorithmus, der ausgeführt werden kann, damit die periphere Vorrichtung eines oder mehrere der hierin offenbarten Verfahren oder computerbasierten Funktionen ausführen kann, sowie ein Videoeingang, der Stand- und Videobilddaten erfasst. Der Videoeingang kann als Teil der peripheren Vorrichtung integriert sein oder eine eigenständige Vorrichtung sein. Obwohl die peripheren Vorrichtungen in den beispielhaften Ausführungsformen Computer sind, versteht es sich, dass sie nicht auf eine solche Ausführungsform beschränkt sind. Zum Beispiel kann die periphere Vorrichtung jede mobile Vorrichtung sein, wie ein Smartphone, ein Mobiltelefon, ein Tablet, ein Laptop, ein PDA usw. Die periphere Vorrichtung kann als eigenständige Vorrichtung dienen oder kann zum Beispiel mit einem Netzwerk (es kann jedes Netzwerk verwendet werden, wie der Fachmann problemlos versteht), anderen Computersystemen oder peripheren Vorrichtungen verbunden werden. Außerdem ist das System nicht auf die dargestellte Ausführungsform beschränkt und kann jene Anzahl oder Variation von Netzwerken und/oder peripheren Vorrichtungen einschließen.
-
2 zeigt ein anderes beispielhaftes System gemäß einer anderen Ausführungsform der vorliegenden Erfindung. Die hierin beschriebene Systemanwendung nutzt eine webdienstbasierte Schnittstelle, um Benutzer zu bestätigen und mit ihren Ressourcen zu verbinden. Diese Ressourcen bestehen aus Informationen, die aus verschiedenen Informationsrepositorys extrahiert werden, die sich in der Regel in mehreren Abteilungen und Bereichen in einem Unternehmen befinden. Diese Repositorys können sich in Sammlungen von Textverarbeitungsdokumenten (z. B. Word), komplexen relationalen Datenbanken (d. h. ORACLE, MySQL, SQL Server), Dokumentenverwaltungssystemen (z. B. Documentum), Flat-File-Datenbanken und sogar Informationen, die vom Bildschirm „gelesen” werden, indem die Anwendung als normaler Benutzer mit dem System interagiert, befinden.
-
3 zeigt ein beispielhaftes Diagramm der Verarbeitung von Differenzen gemäß der vorliegenden Erfindung. Die Verarbeitung von Videodaten, die beim Clienten, Benutzer, Server oder an einer Remote-Stelle (oder einer Kombination davon) erfolgt, wird anhand des folgenden Systems und Verfahrens durchgeführt. Differenzierung 30 bestimmt Pixel in den Videodaten, die eine Veränderung zum Beispiel auf der Basis verschiedener Schwellenwerte erfordern. Zum Durchführen der Bestimmung wird ein Kompass 32, um die Richtung und die Koordinaten beim Scannen der Daten darzustellen. Das Scannen des Hauptkranzes 40 dient zum Umgeben von Differenzclustern mit Kranzknoten und beseitigt redundante Kranzknoten mittels Halbinsel-Isthmus-Hopping 42 und Hauptkranz-Südwest-Handling 44, wie nachstehend ausführlicher beschrieben. Sobald dies abgeschlossen ist, bestimmt das Scannen des angrenzenden Kranzes 48 innere Kränze, die unmittelbar an den Hauptkranz angrenzen, und das Füllstartpunkte 50 legen fest, wo der Füllvorgang begonnen werden soll, der innere Pixel und bindungslose Kränze bestimmt. Die Anzahl an Innenrändern wird mit Unmarkierungsfüllung 34 reduziert, Hauptkränze mit geringer Wichtigkeit werden mit Hauptkranz-Zurückstellung 36 entfernt, und innere Ränder und Halbinsel-Isthmus-Hopping werden mit Markierungserweiterungen 38 reduziert. Um die Kompression von Daten weiter zu unterstützen, enthalten Farbbehälter 46 Farbspektruminformationen, wie interne YBCBR- oder RGB-Farbinformationen, und haben variable Größen, die durch Aufteilen von Blöcken in kleinere Blöcke bestimmt werden, um Kompressionspartitionen festzulegen. Mischen 52 reduziert dann das Auftreten unerwünschter scharfer Ränder, und das Verhindern von Verschwommenheit 54 reduziert das Ausmaß an Verzerrung (d. h. „Fuzz”), das durch Kompression durch Trennung überlappender und nichtüberlappender Bereiche zwischen den aktuellen und künftigen Kränzen hervorgerufen wird. Außerdem reduzieren die Merkmale der Kranzscharfstellung 56 weiter das Ausmaß der Verzerrung, die durch Kompression hervorgerufen wird, indem die Farben in der Nähe der Kränze geglättet werden, um das Auftreten quadratischer Pixel zu reduzieren. Andere Verfahren, wie Umgehung von Grenzüberprüfung 58 und Differenzsammlung 60, können ebenfalls verwendet werden, um die Notwendigkeit des Überprüfens von Grenzen zu beseitigen bzw. Differenzen zusammenzuführen, um die Bandbreite zu reduzieren. Jedes der vorstehend genannten Verfahren ist nachstehend ausführlicher erläutert.
-
Wie vorstehend erörtert, wird zum Füllen eines zweidimensionalen Differenzarrays jedes Pixel in dem aktuellen Bild mit den Pixeln in dem vorherigen Bild verglichen. Wenn eine Farbänderung eines Pixels einen spezifizierten Schwellenwert übersteigt, wird das Pixel als eine Differenz aufweisend markiert. Zum Bestimmen der Position oder des Ortes eines Pixels innerhalb eines Bilds wird ein Kompass 32 verwendet. 4 zeigt einen beispielhaften Kompass, der gemäß der vorliegenden Erfindung verwendet wird. Mit dem Kompass sind nur drei Bits erforderlich, um eine einzelne Richtung anzugeben. Da es acht Richtungen gibt und es nicht notwendig ist, zu einem unmittelbar vorherigen Pixel oder Ort zurückzukehren, sind für jede direktionale Bewegung innerhalb des Bildes sieben Richtungen möglich. Wenn sich zum Beispiel ein vorheriger Kranzknoten nach Osten bewegt hat, um zu dem aktuellen Pixel zu werden, dann ist die Richtung des nächsten Pixels nicht nach Westen (was das vorherige Pixel wäre). Dementsprechend können drei Bits verwendet werden, um acht Richtungen (Nord, Nordost, Ost, Südost, Süd, Südwest, West und Nordwest) auf dem Kompass darzustellen. Da ein Bit nicht für Richtungszwecke verwendet wird (es werden 7 Bits verwendet, nicht 8), kann es als Flag verwendet werden, um spezielle Knoten anzugeben, einschließlich zusätzlicher Daten (z. B. wird das Flag zum Markieren von Ursprüngen angrenzender Kränze, des Endes angrenzender Kränze und von Landepunkten von Halbinsel-Isthmus-Hopping verwendet). Es versteht sich, dass die beschriebene Erfindung nur eine Ausführungsform ist und den Umfang der Patentschrift und der Zeichnungen nicht einschränkt. Zum Beispiel können mehr oder weniger Richtungen, Bits usw. verwendet werden.
-
5A–5E zeigen einen beispielhaften Scan von Bilddaten gemäß der vorliegenden Erfindung. Um den äußeren (Haupt-)Kranz eines Bildes zu finden, wird ein anfänglicher Scan eines Differenzarrays durchgeführt, wie in 5a dargestellt. Es wird ein Datenscan anhand eines Beispiels beschrieben, wobei das Beispiel den Umfang der Erfindung nicht einschränken soll. In einer Ausführungsform beginnt der anfängliche Scan oben links im Bild und bewegt sich für jede Reihe in dem Array von links nach rechts. Es versteht sich jedoch, dass der Scan auf jede dem Fachmann bekannte Weise durchgeführt werden kann. Wenn eine erste Differenz in den Daten erkannt wird, versteht es sich, dass die nächste Differenz keine Daten (d. h. Pixel) in westlicher, nordwestlicher, nördlicher oder nordöstlicher Richtung sein können. Anderenfalls wären diese Pixel während des Scans bereits erkannt worden. Deshalb wird der Scan nach Osten und dann im Uhrzeigersinn durch alle Kompasskoordinaten fortgesetzt, bis die nächste Differenz bestimmt wird (5B). Sobald die nächste Differenz bestimmt wird, folgt das Scannen mit einer Startrichtung im Bezug auf die vorherige Richtung, wie in 5C und 5D dargestellt. Wenn zum Beispiel die vorherige Richtung Süd war, ist die Startrichtung in den Koordinaten nordöstlich (5C). Wenn zum Beispiel die vorherige Richtung Südost war, ist die Startrichtung in den Koordinaten nordöstlich (5D). Im Bezug auf 5E wird der Scan fortgesetzt, bis er zum Ursprung des Hauptkranzes zurückkehrt, sofern kein Sonderfall vorliegt (nachstehend im Bezug auf Halbinsel-Isthmus-Hopping und Hauptkranz-Südwest-Handling erörtert). Nach Abschluss des Scans kann der Hauptkranz als x-, y-Koordinaten (Ursprung) und einer Sequenz von drei Bit großen Richtungsknoten dargestellt werden. Sobald Punkte in dem neuen Differenzclusterkranz (Kranz und innere Punkte) bestimmt wurden, wird der anfängliche Scan ohne Scannen zuvor erfasster Punkte fortgesetzt.
-
6A–6D zeigen einen anderen beispielhaften Scan von Bilddaten gemäß der vorliegenden Erfindung. 6A zeigt Daten in der Form einer Halbinsel, wobei Pixel der Daten vom Datenhauptkörper aus nach außen verlaufen. 6B zeigt Daten in der Form eines Isthmus, wobei Pixel der Daten einen schmalen Streifen bilden, der zwei größere Datenkörper verbindet. Sowohl Halbinsel- als auch Isthmusformationen von Pixeln in den Daten bereiten Schwierigkeiten beim Scannen. Um das Verarbeiten bereits verarbeiteter Kranzknoten zu vermeiden, wird ein spezielles Halbinsel-Isthmus-Hopping verwendet, wie in 6C und 6D dargestellt. Das Halbinsel-Isthmus-Hopping beginnt an dem Kranzknoten, an dem die Halbinsel oder der Isthmus zuerst erkannt wird (dem „Hopping-Punkt”) HP und „hüpft” zum „Landepunkt” LP. Wie in den Figuren dargestellt, ist der Hopping-Punkt mit HP gekennzeichnet, und der Landepunkt ist mit LP gekennzeichnet. Halbinsel-Isthmus-Hoppings werden aufgrund der Verarbeitung und der Speichergröße von Informationen der Landepunkte primär für den Hauptkranz verwendet. Jedoch könnten bindungslose Kränze (nachstehend beschrieben) ebenfalls Halbinsel-Isthmus-Hopping verwenden, um ähnliche Vorteile zu erzielen.
-
7A und 7B zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung. Wenn ein Ursprung eines Hauptkranzes auf einem Isthmus liegt, wird die gesamte „Südwestseite” SWS übersprungen, wie in 7A dargestellt. Um dieses Problem zu beheben, wird Folgendes durchgeführt, wenn ein Landepunkt während einer Halbinsel-Isthmus-Verarbeitung gesucht wird und der Ursprung des Hauptkranzes erkannt wird. Es wird ein Scan um den Ursprung herum durchgeführt, und alle Differenzpunkte, die noch nicht als Kranzknoten verarbeitet wurden, werden als Landepunkt LP festgelegt. Dies ermöglicht, dass die Hopping-Funktion den Ursprung des Hauptkranzes überspringt, wie durch Pfeil SKP gekennzeichnet. Nachfolgend wird das Scannen um die „Südwestseite” des Hauptkranzes fortgesetzt, wie in 7B dargestellt.
-
8A–8C zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung. Sobald der Hauptkranz gescannt wurde, werden die Daten für angrenzende Kränze gescannt (verarbeitet). Das Scannen des angrenzenden Kranzes erfolgt durch Scannen entlang des Inneren des Hauptkranzes auf der Suche nach Differenzen, die keine Differenzen nach Norden, Osten, Süden und Westen aufweisen (ausschließlich bereits erkannter angrenzender Kranzknoten). Die erkannten Kränze werden Ursprünge angrenzender Kränze. Nichtdifferenzen nach Nordosten, Südosten, Südwesten und Nordwesten werden durch andere angrenzende Kranzursprünge erkannt oder in bindungslose Kränze umgewandelt (nachstehend beschrieben). Alternativ kann der Scan alle Richtungen auf Nichtdifferenzen überprüfen und an einem einzelnen Punkt („Ecke”) angrenzende Kränze ignorieren. Angrenzende Kränze haben eine Seite im Uhrzeigersinn und eine Seite entgegen dem Uhrzeigersinn (d. h. der Scan wird in den Richtungen im Uhrzeigersinn und entgegen dem Uhrzeigersinn durchgeführt). In der Richtung Uhrzeigersinn wird der Scan auf Differenzen beginnend in einer Richtung im Uhrzeigersinn von der Nichtdifferenzrichtung durchgeführt. In der Richtung entgegen dem Uhrzeigersinn wird der Scan auf Differenzen beginnend in einer Richtung entgegen dem Uhrzeigersinn von der Nichtdifferenzrichtung durchgeführt, wie in 8B und 8C dargestellt. Wenn zum Beispiel in der Richtung entgegen dem Uhrzeigersinn die vorherige Richtung Norden war, ist die Startrichtung Nordosten, wenn sie vorherige Richtung Nordosten war, ist die Startrichtung Südosten usw. Die Verarbeitung wird auf jeder Seite fortgesetzt, bis ein bereits verarbeiteter Kranzknoten gefunden wird. Insbesondere können angrenzende Kränze auch andere angrenzende Kränze aufweisen, die rekursiv durch Scannen des angrenzenden Kranzes auf Ursprünge anderer angrenzender Kränze verarbeitet werden können (und an Endpunkten wird ein vollständig umgebender Scan durchgeführt).
-
9A–9C zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung. Innere, nicht gefüllte Punkte (d. h. Füllstartpunkte) werden durch Scannen des Hauptkranzes und angrenzender Kränze geortet. Wenn ein Füllstartpunkt gefunden wird, wird rekursiv ein Füllgvorgang durchgeführt, um jeden nicht gefüllten Punkt nach Norden, Osten, Süden und Westen zu füllen, der kein Kranzknoten ist (9A). Bei einem Füllvorgang wird ein Punkt, der einen Nichtdifferenzpunkt nach Norden, Osten, Süden oder Westen aufweist, als bindungsloser Kranz gekennzeichnet (9B). Bindungslose Kränze verwenden x, y-Koordinaten als Ursprung, werden ansonsten jedoch ähnlich wie angrenzende Kränze mit Richtungen im Uhrzeigersinn und entgegen dem Uhrzeigersinn und ohne Halbinsel-Isthmus-Hopping verarbeitet. Neben bindungslosen Kränzen können sich auch angrenzende Kränze befinden. Alternativ können bindungslose Kränze Halbinsel-Isthmus-Hopping verwenden und die Richtung entgegen dem Uhrzeigersinn verwerfen. Wie in 9C dargestellt, sind einige Punkte mit einem einzelnen Füllstartpunkt nicht zu erreichen. Deshalb kann es notwendig sein, mehr als einen Füllstartpunkt bereitzustellen.
-
10A und 10B zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung. Um die Anzahl innerer Ränder zu reduzieren, werden Bereiche mit spezifizierter Differenz (d. h. unmarkierte Bereiche) gemäß dem folgenden Verfahren gefüllt. Ein Schwellenwert für Unmarkierung wird als die minimale Pixelanzahl ausgewählt, die ein unmarkierter Bereich aufweist, um nicht gefüllt zu werden. Vor dem Erstellen eines angrenzenden oder bindungslosen Kranzes wird der unmarkierte Bereich, für den ein angrenzender oder bindungsloser Kranz erforderlich ist, gefüllt. Die erfolgt mit einem temporären zweidimensionalen Füllarray durch rekursives Füllen von Nichtdifferenzpunkten nach Norden, Osten, Süden und Westen. Wenn der Schwellenwert nicht erreicht wird, werden unmarkierte Punkte als Differenzpunkte mit einem Flag gekennzeichnet, so dass TGB in den Farbbehältern (nachstehend beschrieben) enthalten sind und kein angrenzender oder bindungsloser Kranz erstellt wird. Zum Beispiel würde, wie in 10A und 10B dargestellt, mit einem unmarkierten Schwellenwert von mehr als drei und weniger als oder gleich sieben der angrenzende Kranz erstellt werden, aber es würde ein bindungsloser Kranz gefüllt werden.
-
11A und 11B zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung. In diesem Beispiel werden kleine Gruppen von Differenzen erkannt und mit einem Flag gekennzeichnet, damit sie ignoriert werden. Diese kleineren Gruppen werden in der Regel zum Beispiel durch Kameravibration und Verlauf hervorgerufen. Eine Hauptkranz-Zurückstellung wird durchgeführt, wenn die Gesamtanzahl an Punkten (Pixeln) in dem Hauptkranz zu klein ist (wie durch einen Schwellenwert bestimmt). Bei Bildern, die zu einem späteren Zeitpunkt in dem Verfahren auftreten, können die zurückgestellten Differenzen schließlich zusammengetragen und erfasst werden. Zunächst wird ein Schwellenwert für die Zurückstellung bestimmt. Wenn die Gesamtanzahl an Kranzknoten und inneren Pixeln unter dem Schwellenwert liegt, werden alle Pixel (der Pixelgruppe) zurückgestellt (d. h. Differenzen werden als Nichtdifferenzen markiert und während des anfänglichen Scans ignoriert).
-
12A–12C zeigen einen anderen beispielhaften Bildscan von Daten gemäß der vorliegenden Erfindung. Um die Anzahl an Hauptkränzen, Halbinsel-Isthmus-Hoppings und inneren Rändern zu reduzieren, wird ein Markierungserweiterungsvorgang durchgeführt (12A). Das Durchführen eines Markierungserweiterungsvorgangs hilft, wenn es mit dem Füllen eines unmarkierten Bereichs kombiniert wird, die Anzahl an Bytes zu reduzieren, die zum Darstellen der Kränze erforderlich sind. Jedoch wird der Markierungserweiterungsvorgang nicht bei Kränzen durchgeführt, die zurückgestellt wurden. Bei dem Markierungserweiterungsvorgang wird über jeden (Haupt- und Innen-)Kranz navigiert, und es wird ein Pixel aus dem Kranz als Differenz in Nord-, Ost-, Süd- und Westrichtung markiert. Die nächste Kompassposition im Uhrzeigersinn (N/O/S/W) wird umgekehrt als bei der vorherigen Richtung gestartet und im Uhrzeigersinn bis zur vorherigen Position der nächsten Richtung fortgesetzt (z. B. für die Seite entgegen dem Uhrzeigersinn von inneren Kränzen bewegt man eine N/O/S/W-Position in der Richtung entgegen dem Uhrzeigersinn umgekehrt als bei der vorherigen Richtung und fährt entgegen dem Uhrzeigersinn fort, bis die vorherige Position entgegen dem Uhrzeigersinn der nächsten Richtung erreicht ist). An Isthmus-Punkten, Halbinselspitzen und Start- und Endpunkten innerer Kränze wird in jeder Richtung ein Punkt markiert, wie in 12B dargestellt. Als Folge verschmelzen nahegelegene Kränze, und Halbinseln verschwinden. Beim Erweitern von Markierungen an inneren Kränzen wird der unmarkierte Bereich kleiner, was die Wahrscheinlichkeit erhöht, dass er durch den Füllvorgang unmarkierter Bereiche gefüllt wird. Das Kranzverfahren wird anhand der neuen markierten Differenzpunkte erneut verarbeitet, und neue angrenzende und bindungslose Kränze können durch den Füllvorgang unmarkierter Bereiche entfernt werden (12C). Innere YBCBR oder RGB werden in den Farbbehältern (nachstehend beschrieben) abgelegt. Die resultierenden erweiterten Kränze haben eine glattere Form, die eine leichtere Kompression ermöglicht.
-
13 zeigt ein beispielhaftes Diagramm der Gruppierung und Speicherung von Bilddaten gemäß der vorliegenden Erfindung. Farbbehälter werden verwendet, um Farbinformationen für intern gefüllte Bereiche zu gruppieren und zu speichern und Farbinformationen im Zusammenhang mit Kranzpunkten zu speichern. Zum Beispiel speichern die Farbbehälter YBCBR- oder RGB-Daten in Speicher in 8×8-, 4×4- und 2×2-Blöcken, um die Kompression zu erleichtern. Es wird angenommen, dass die Blockabmessungen um die Kranzränder herum variabel sind und dass eine derartige Segregation der Pixelfarben das Ausmaß der Farbausblutung, die durch Kompression hervorgerufen wird, reduziert. Es versteht sich, dass jedes Kompressionsverfahren, wie diskrete Kosinustransformation (DCT) oder Wavelet-Transformation, verwendet werden kann. Zum Füllen der Farbbehälter wird in einer Ausführungsform das folgende Verfahren durchgeführt. Bilddaten werden für jede Reihe von der oberen linken Ecke zur oberen rechten Ecke gescannt. Wenn ein Pixel, das Farberfassung benötigt, gefunden wird, sucht man den 8×8-Behälter mithilfe von x- und y-Koordinaten und teilt durch 8, streicht den Rest und verwendet das Verbleibende zum Bestimmen der Koordinaten innerhalb eines 8×8-Behälters. Es wird ein weiterer Scan für jede Reihe von links nach rechts durchgeführt. Mit einem Zähler wird nachverfolgt, wie viele Pixel-YBCBR oder -RGB in dem 8×8-Farbbehälter erfasst wurden. Das Scannen wird fortgesetzt, wobei über ein Verfahren von 8×8-Behältern gesprungen wird. 8×8-Behälter mit einer kleineren Anzahl an YBCBR als einer vorbestimmten Anzahl werden dann in 4×4-Blöcke aufgeteilt. 8×8-Behälter mit einer Anzahl an YBCBR, die gleich oder größer als die vorbestimmte Anzahl ist, weisen Spalte auf, die mit einer Durchschnittsmethode für die Kompression gefüllt werden. 4×4-Behälter mit einer kleineren Anzahl an YBCBR als einer vorbestimmten Anzahl werden dann in 2×2-Blöcke aufgeteilt. -Behälter mit einer Anzahl an YBCBR, die gleich oder größer als die vorbestimmte Anzahl ist, weisen Spalte auf, die mit einer Durchschnittsmethode für die Kompression gefüllt werden. Ähnlich werden 2×2-Behälter mit allen vorhandenen YBCBR entsprechend komprimiert. Bei 2×2-Behältern, die weniger als alle der vorhandenen YBCBR aufweisen, werden sie für die Kompression um 8 deskaliert.
-
14A und 14B zeigen ein beispielhaftes Verfahren zum Mischen von Bilddaten gemäß der vorliegenden Erfindung. Mischen wird durchgeführt, um Farbränder (in den Figuren durch Grautöne dargestellt) zu reduzieren, wo sich ähnliche Farben oft abwechseln. Vor dem Mischen werden eine Mischtiefe, eine Ähnlichkeitsschwelle und ein Diagonalgewicht erstellt. Die Mischtiefe ist als die Anzahl an Pixeln im Nichtdifferenzbereich definiert (wobei die Anzahl vorher definiert oder automatisch bestimmt werden kann). Bei nicht erweiterten Kränzen und einer Mischtiefe von eins werden zum Beispiel Nichtdifferenzpixel neben den Kranzknoten gemischt. Andererseits würde zum Beispiel bei aktiven Markierungserweiterungen bei einer Mischtiefe von eins alle Pixel an dem Kranz gemischt werden. Eine Mischtiefe von zwei würde zum Beispiel die Kranzpixel und ein Pixel außerhalb der Kränze mischen, und eine Mischtiefe von drei würde ein Pixel aus der zweiten Tiefe beimischen. Die Ähnlichkeitsschwelle ist so definiert, wie ähnlich ein nahegelegenes beeinflussendes Pixel dem aktuellen oder Zielpixel ist, um ein Mischen auszulösen. Die Ähnlichkeitsschwelle dient dazu, zu verhindern, dass Bereiche mit akkuraten Farbrändern beigemischt werden. Letztlich definieren flache und diagonale Gewichte, wie stark nahegelegene Pixel einander beeinflussen. Die Farbe eines Pixels, für das ein Mischen angestrebt wird, (Zielpixel) wird durch nahegelegene Mischeinflüsse verändert. Wenn zum Beispiel der Mischeinfluss diagonal zum Ziel ist (in einer Richtung nach NO/SO/SW/NW), ist der Einfluss auf die Farbänderung geringer als ein Mischeinfluss in einer Richtung nach N/O/S/W. Es versteht sich, dass jedes Verfahren zur Bestimmung des Einflusses verwendet werden kann, wie in der Technik bekannt ist, und die Erfindung ist nicht auf die beschriebene Ausführungsform beschränkt.
-
15A–15I zeigen eine beispielhafte Ausführungsform zum Korrigieren eines unklaren Bilds gemäß der vorliegenden Erfindung. In dieser Ausführungsform wird eine Grundfarbkorrektur durchgeführt. Aufgrund der Farbkompression werden Ränder von Objekten in dem Bild oftmals unklar oder verschwommen. Da Kränze durch Differenzierung unkomprimierter Originalbilder erstellt werden, treten Situationen auf, in denen „nachlaufende Verschwommenheit” infolge eines bewegten Bilds entsteht. Wenn zum Beispiel im Bezug auf 15A und 15B ein ursprünglicher 8×8-Block von Daten keine Kränze aufweist, die durch den Block verlaufen, sind nach der Kompression alle Farbränder unklar. Wenn sich das Objekt, das den Farbrand hervorruft, bewegt, wird die Klarheit (Verschwommenheit) nachlaufen, da sie außerhalb des differenzierten Bereichs auftritt. Um das Auftreten von nachlaufender Verschwommenheit zu verhindern, werden die Kränze dazu verwendet, zu bestimmen, wo sich ein nachlaufender Rand befindet, und dann wird eine Farbe um den Rand in separaten Farbbehältern abgelegt. Dies erfolgt zum Beispiel durch Verwendung eines Einzelbildpuffers, um auf einen Kranz in einem künftigen Bild „vorauszuschauen”, da der künftige Kranz den nachlaufenden Rand des aktuellen bewegten Objekts enthält. 15C, 15D und 15E zeigen ein vorheriges Bild, ein aktuelles Bild bzw. ein künftiges Bild eines bewegten Objekts. 15F, 15G, 15H und 15I zeigen einen aktuellen Kranz, einen künftigen Kranz, aktuell minus künftig bzw. aktuell plus künftig des bewegten Objekts. Mithilfe eines gefüllten Bereichs des künftigen Kranzes werden Punkte, die sowohl im aktuellen als auch im künftigen Kranz existieren, in einem Farbbehälter abgelegt. Punkte, die im aktuellen Kranz, aber nicht im künftigen Kranz vorhanden sind, werden in einem anderen Farbbehälter abgelegt. Die Farben von dem aktuellen Differenzcluster werden in diesen zwei Farbbehälter abgelegt. Zum Beseitigen redundanter Verarbeitung wird der künftige Kranz als der aktuelle Kranz für das nächste Bild verwendet.
-
16A und 16B zeigen eine beispielhafte Ausführungsform zum Korrigieren eines unklaren Bilds gemäß der vorliegenden Erfindung. Unter Verwendung randfokussierter Differenzierung mit Erkennung nachlaufender Ränder (nachstehend und vorstehend im Bezug auf 15A–15I beschrieben) werden die meisten sichtbaren Ränder von Objekten in Bewegung erfasst. Mit den Kranzkoordinaten, die vom Kranzscannen bekannt sind, wird ein Scharfstellen der Ränder vereinfacht. Auf diese Weise können beim Vergrößern eines Videos (wobei einzelne Pixel gedehnt werden können, um mehrere Pixel abzudecken) jegliche gedehnten Pixel in der Nähe der Kränze, die sich neben kontrastierenden Farben befinden, weniger quadratisch aussehend gemacht werden, wobei die gesamte Bildqualität stark verbessert wird. Zum Beispiel zeigt 16A Pixel eines vergrößerten Bilds ohne Kranzscharfstellung, und 16B zeigt Pixel eines vergrößerten Bilds, für das eine Kranzscharfstellung verarbeitet wurde. Außerdem kann randfokussierte Differenzierung in Kombination mit globaler Bewegungskompensation (die die Kamerabewegung ausgleicht) verwendet werden und kann noch zwischen den global verschobenen Bildern von Bilddaten angewendet werden.
-
17 zeigt ein beispielhaftes Diagramm zum Überprüfen von Bilddaten gemäß der vorliegenden Erfindung. Damit die Notwendigkeit um Überprüfen von Bildgrenzen entfällt, wird eine 8 Pixel breite Grenze um jedes der Datenarrays gezogen. Bei der Randverarbeitung werden keine Koordinaten jenseits der Grenze verwendet. Stattdessen werden alle x- und y-Koordinaten um 8 Pixel verschoben, um in und aus den tatsächlichen Koordinaten zu übersetzen.
-
18A–18F zeigt ein beispielhaftes Diagramm zum Zusammenfassen oder Zusammenführen von Differenzen gemäß der vorliegenden Erfindung. Mittels Differenzierungsverfahren wird jede Differenz an einen Clienten übertragen, um die Gesamtbildqualität zu vermeiden. Bei der Differenzierung ist es wichtig, dass jede Differenz an den Clienten übertragen wird. Alle ausgelassenen Differenzen beeinträchtigen das Gesamtbild. Wenn es eine Übertragungsverzögerung gibt und die Übertragung einiger Differenzen an den Clienten noch aussteht, kann „Differenzsammlung” angewendet werden, um die Differenzen in einer einzelnen Differenz zusammenzufassen oder zusammenzuführen, um die Bandbreite zu reduzieren. Der Scan von links nach rechts zum Herausfinden der Ursprünge der äußeren Kränze für die neuen zusammengefassten Cluster kann übersprungen werden. Der zusammengefasste äußere Ursprung ist der höchste ganz linke äußere Ursprung von den Kränzen, die zusammengefasst wurden. Die neuesten Farben der „zusammengefassten Differenz” werden erfasst, und es treten keine Markierungserweiterungen oder Unmarkierungsfüllungen auf. Als weitere Leistungsverbesserung können komprimierte Farbblöcke, die unabhängig voneinander dekodiert werden können komprimiert bleiben, bis das Zusammenfassen abgeschlossen ist. Alle diese Blöcke, die von neueren Blöcken vollständig überschrieben wurden, können ignoriert werden, wobei die Anzahl an Blöcken, die dekomprimiert werden, reduziert wird.
-
19 zeigt ein beispielhaftes Fließschema gemäß der vorliegenden Erfindung. Der Verfahrensablauf gemäß einer Ausführungsform der Erfindung ist nachstehend beschrieben. Die Verarbeitung wird in der Regel an einem der peripheren Vorrichtungen des Clienten durchgeführt, obwohl dies nicht auf eine solche Ausführungsform beschränkt ist. Das Verfahren beginnt bei S10, wo Differenzen zwischen einem ersten Bild (z. B. einem aktuellen Bild) und einem zweiten Bild (z. B. einem vorherigen Bild) berechnet werden. Die Differenzen werden geclustert und gescannt, um Kranzknoten zu bilden, die die geclusterten Daten bei S15 umgeben. In S15 können redundante Kranzknoten auch mit Halbinsel-Isthmus-Hopping und Hauptkranz-Südwest-Handling beseitigt werden. Beim Scannen (S20) wird das Verfahren, wenn Punkte nicht verarbeiteter Differenzen gefunden werden, bis S25 fortgesetzt. Bei S25 befindet sich der äußere Kranz. Die Anzahl an Innenrändern wird mit Unmarkierungsfüllung reduziert, und äußere Kränze mit geringer Wichtigkeit werden mit Hauptkranz-Zurückstellung entfernt, und innere Ränder und Halbinsel-Isthmus-Hopping werden mit Markierungserweiterungen bei S30 reduziert. Durch Scannen angrenzender innerer Kränze werden innere Kränze erkannt, die bei S35 unmittelbar an den äußeren Kranz angrenzen, und Füllstartpunkte legen fest, wo der Füllvorgang bei S40 begonnen werden soll, der interne Pixel und bindungslose Kränze bei S45 bestimmt. Wenn keine Punkte nicht verarbeiteter Differenzen bei S20 gefunden werden, dann werden die Kränze bei S50 komprimiert, die aktuellen plus künftigen Farben werden bei S52 in den Blöcken abgelegt und komprimiert, und Farbspektruminformationen (wie YBCBR oder RGB) werden in Blöcken abgelegt, Mischen reduziert das Auftreten unerwünschter scharfer Ränder, und die resultierenden Daten werden bei S54 komprimiert.
-
Es ist auch zu beachten, dass Kranzkompression auf der allgemeinen Tendenz beruhen kann, dass Kränze für längere Zeiträume in eine allgemeine Richtung laufen (was oftmals entlang glatter Ränder um bewegte Objekte herum auftritt). Um Vorteile zu erzielen, kann ein Kranzscan durchgeführt werden, um Strecken herauszufinden, bei denen die gleichen drei Richtungen in einer großen Häufigkeit vorliegen. Statt des Darstellens der Richtungen mit Kompasskoordinaten, wie vorstehend beschrieben, kann Huffman-Codierung zum Komprimieren verwendet werden.
-
Obwohl die Erfindung im Bezug auf mehrere beispielhafte Ausführungsformen beschrieben wurde, versteht es sich, dass der Wortlaut beschreibend und erläuternd und nicht einschränkend sein soll. Innerhalb des Geltungsbereichs der beiliegenden Ansprüche können Änderungen vorgenommen werden, wie vorliegend angegeben und wie geändert, ohne vom Umfang und Geist der Erfindung in ihren Gesichtspunkten abzuweichen. Obwohl die Erfindung im Bezug auf spezielle Mittel, Materialien und Ausführungsformen beschrieben wurde, soll die Erfindung nicht durch die offenbarten Einzelheiten eingeschränkt werden; vielmehr erstreckt sich die Erfindung auf alle funktionell äquivalenten Strukturen, Verfahren und Verwendungen, wie sie innerhalb des Umfangs der beiliegenden Ansprüche liegen.
-
Die Darstellungen der hierin beschriebenen Ausführungsformen sollen für ein allgemeines Verständnis der Struktur der verschiedenen Ausführungsformen sorgen. Die Darstellungen sollen nicht als vollständige Beschreibung aller Elemente und Merkmale von Vorrichtungen und Systemen dienen, die die Strukturen oder Verfahren, die hierin beschrieben sind, nutzen. Viele andere Ausführungsformen können dem Fachmann beim Lesen der Offenbarung offensichtlich sein. Andere Ausführungsformen können von der Offenbarung abgeleitet werden, so dass strukturelle und logische Substitutionen und Änderungen vorgenommen werden können, ohne vom Umfang der Offenbarung abzuweichen. Außerdem dienen die Darstellungen lediglich der Veranschaulichung und können nicht maßstabsgerecht herangezogen werden. Bestimmte Anteile innerhalb der Darstellungen können vergrößert sein, während andere Anteile verkleinert sein können. Dementsprechend sind die Offenbarung und die Figuren als veranschaulichend und nicht einschränkend anzusehen.
-
Eine oder mehrere Ausführungsformen der Offenbarung können hierin, einzeln und/oder zusammen, lediglich aus praktischen Gründen als „Erfindung” bezeichnet werden, ohne dass der Umfang dieser Anmeldung auf eine spezielle Erfindung oder ein spezielles erfindungsgemäßes Konzept beschränkt werden soll. Obwohl konkrete Ausführungsformen hierin dargestellt und beschrieben sind, sollte es sich zudem verstehen, dass eine darauf folgende Anordnung, die dazu gedacht ist, den gleichen oder einen ähnlichen Zweck zu erfüllen, anstelle der konkreten dargestellten Ausführungsformen eingesetzt werden kann. Diese Offenbarung soll jegliche nachfolgenden Adaptationen oder Variationen verschiedener Ausführungsformen abdecken. Kombinationen der vorstehenden Ausführungsformen und anderer Ausführungsformen, die hierin nicht konkret beschrieben sind, werden dem Fachmann beim Lesen der Beschreibung offensichtlich.
-
Die Zusammenfassung der Offenbarung ist mit 37 C. F. R. §1.72(b) konform, und es versteht sich, dass sie nicht zum Deuten oder Einschränken des Umfangs oder der Bedeutung der Ansprüche verwendet wird. Außerdem können in der vorangehenden detaillierten Beschreibung verschiedene Merkmale zusammengefasst oder in einer einzelnen Ausführungsform für den Zweck der Rationalisierung der Offenbarung beschrieben sein. Diese Offenbarung ist nicht so zu deuten, dass sie die Absicht widerspiegelt, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch genannt sind. Wie die folgenden Ansprüche widerspiegeln, kann sich der Gegenstand der Erfindung stattdessen auf weniger als alle der Merkmale jeglicher der offenbarten Ausführungsformen beziehen. Somit werden die folgenden Ansprüche in die detaillierte Beschreibung einbezogen, wobei jeder Anspruch eigenständig einen separat beanspruchten zugrundeliegenden Gegenstand definiert.
-
Der vorstehend offenbarte zugrundeliegende Gegenstand soll der Veranschaulichung dienen und nicht einschränkend sein, und die beiliegenden Ansprüche sollen alle derartigen Modifikationen, Verbesserungen und anderen Ausführungsformen abdecken, die innerhalb des tatsächlichen Geists und Umfangs der vorliegenden Offenbarung liegen. Somit soll im maximalen rechtlich zulässigen Ausmaß der Umfang der vorliegenden Offenbarung durch die breiteste zulässige Interpretation der folgenden Ansprüche und deren Äquivalenten bestimmt werden und soll nicht durch die vorstehende detaillierte Beschreibung eingeschränkt oder begrenzt werden.