-
Diese PCT-Anmeldung beansprucht die Priorität der am 24. Juli 2014 eingereichten nicht-vorläufigen US-Anmeldung Nr. 14/339,754 mit dem Titel „Invisible Optical Label for Transmitting Information Between Computing Devices”, mittlerweile
US-Patent Nr. 9,022,291 , erteilt am 5. Mai 2015, der am 28. August 2014 eingereichten nicht-vorläufigen US-Anmeldung Nr. 14/472,321 mit dem Titel „Invisible Optical Label for Transmitting Information Between Computing Devices”, mittlerweile
US-Patent Nr. 9,022,292 , erteilt am 5. Mai 2015, und der am 4. Mai 2015 eingereichten nichtvorläufigen US-Anmeldung Nr. 14/703,165 mit dem Titel „Invisible Optical Label for Transmitting Information Between Computing Devices”, deren Inhalte jeweils in ihrer Gänze durch Bezugnahme hierin aufgenommen werden.
-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung ist auf die Verwendung einer optischen Kennung, beispielsweise eines Quick Response(QR)-Codes zur Übermittlung von Informationen zwischen Rechenvorrichtungen gerichtet. Genauer ist die vorliegende Offenbarung auf die Erzeugung und Anzeige einer optischen Kennung auf einer Rechenvorrichtung gerichtet, die unsichtbar oder auf andere Weise für das menschliche Auge nicht wahrnehmbar ist, die aber für eine zweite Rechenvorrichtung sichtbar ist, die Informationen von der ersten Rechenvorrichtung empfangen soll.
-
HINTERGRUND
-
In der Regel ermöglichen DataMatrix-Codes, Quick Response(QR)-Codes, Strichcodes und dergleichen einer Rechenvorrichtung, verschiedene Arten von Informationen zu bestimmen. Wenn beispielsweise ein QR-Code auf einem Produkt vorhanden ist, kann der QR-Code von einem Strichcode-Leser gelesen werden und der Rechenvorrichtung Informationen über das jeweilige Produkt liefern. Auch wenn diese Code-Arten für die Bereitstellung von Informationen über ein bestimmtes Produkt oder eine bestimmte Vorrichtung, die bzw. das mit dem Code assoziiert ist, nützlich sind, kann es sein, dass der Code nicht ansprechend aussieht. Zum Beispiel ist ein QR-Code in der Regel ein quadratisches Symbol. Informationen sind in der Stärke bzw. Intensität von quadratischen Modulen, aus denen das Symbol besteht, codiert. Weil diese Codes möglicherweise optisch nicht ansprechend sind, kann die Verwendung solcher Codes auf Produkte beschränkt sein, bei denen Designmerkmale und das Aussehen zweitranging sind.
-
Wegen solcher und anderer allgemeiner Überlegungen wurden diese Ausführungsformen geschaffen. Auch wenn oben relativ spezifische Probleme erörtert wurden, sei klargestellt, dass die Ausführungsformen nicht auf die Lösung der mit Bezug auf den technischen Hintergrund genannten Probleme beschränkt sein sollen.
-
ZUSAMMENFASSUNG
-
Diese Kurzfassung wird bereitgestellt, um in vereinfachter Form eine Auswahl von Konzepten einzuführen, die nachstehend im Abschnitt der ausführlichen Beschreibung näher beschrieben werden. Diese Kurzfassung hat nicht die Aufgabe, Schlüsselmerkmale oder essentielle Merkmale des beanspruchten Gegenstands zu nennen, noch ist sie als Hilfsmittel gedacht, um den Bereich des beanspruchten Gegenstands zu bestimmen.
-
Ausführungsformen der vorliegenden Offenbarung geben ein Verfahren an zum Übertragen von Informationen zwischen einer ersten Rechenvorrichtung und einer zweiten Rechenvorrichtung. Das Verfahren beinhaltet die Erzeugung einer optischen Kennung auf der ersten Rechenvorrichtung In Ausführungsformen kann die optische Kennung ein maschinenlesbarer Code, ein ein- oder zweidimensionales Informationssymbol und dergleichen sein. Nichtbeschränkende Beispiele beinhalten einen DataMatrix-Code, einen Strichcode, einen QR-Code und dergleichen. In Ausführungsformen ist die optische Kennung farbcodiert und wird auf einer Anzeige der ersten Rechenvorrichtung auf solche Weise ausgegeben, dass die optische Kennung für einen Anwender nicht sichtbar ist, wenn sie ausgegeben werden. Genauer wird die optische Kennung farbcodiert und in einander abwechselnden Frames angezeigt, wenn die optische Kennung auf der Anzeige der ersten Rechenvorrichtung ausgegeben wird.
-
Zum Beispiel wird ein erster Frame der optischen Kennung unter Verwendung eines ersten Satzes von Farben codiert, und ein zweiter Frame der optischen Kennung wird unter Verwendung eines zweiten Satzes von Farben codiert. Genauer wird ein erster Abschnitt des ersten Frames der optischen Kennung in einer ersten Farbe codiert und ein zweiter Abschnitt des ersten Frames der optischen Kennung wird in einer zweiten Farbe codiert. Ferner wird ein erster Abschnitt des zweiten Frames der optischen Kennung in einer dritten Farbe codiert und ein zweiter Abschnitt des zweiten Frames der optischen Kennung wird in einer vierten Farbe codiert. Wie nachstehend erläutert wird, verschieben sich die erste Farbe und die dritte Farbe gegenseitig und verschieben sich die zweite Farbe und die vierte Farbe gegenseitig. Wenn die erste Rechenvorrichtung die einander abwechselnden Frames mit einer bestimmten Frequenz anzeigt, tilgen infolgedessen die Farben der codierten optischen Kennung einander und die optische Kennung ist für einen Anwender der ersten Rechenvorrichtung nicht wahrnehmbar.
-
Ebenso wird hierin ein Verfahren zum Koppeln einer ersten Vorrichtung mit einer zweiten Vorrichtung offenbart. Das Verfahren zum Koppeln der ersten Vorrichtung mit der zweiten Vorrichtung beinhaltet das Erfassen einander abwechselnder Frames einer optischen Kennung, die auf der ersten Vorrichtung angezeigt ist. In Ausführungsformen werden die einander abwechselnden Frames der optischen Kennung mit einer ersten Frequenz angezeigt. Ferner werden die einander abwechselnden Frames der optischen Kennung von der zweiten Vorrichtung mit einer zweiten Frequenz erfasst. In Ausführungsformen kann die zweite Frequenz niedriger sein als das Zweifache der Zyklusfrequenz. Sobald die optische Kennung von der zweiten Vorrichtung erfasst worden ist, verarbeitet die zweite Vorrichtung die erfassten, einander abwechselnden Frames, um die ursprünglich erzeugte optische Kennung zu bestimmen und nachzubilden. Die nachgebildete optische Kennung kann dann verwendet werden, um die zweite Vorrichtung mit der ersten Vorrichtung zu koppeln.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1A–1B zeigen Beispiele für Rechenvorrichtungen, die verwendet werden können, um Daten unter Verwendung der optischen Kennung zu übertragen, die in den Ausführungsformen der vorliegenden Offenbarung offenbart werden.
-
2A zeigt ein Beispiel für ein Hintergrundbild und eine optische Kennung, die auf einer Anzeige einer Rechenvorrichtung gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung ausgegeben werden.
-
2B–2E zeigen einander abwechselnde Frames einer optischen Kennung mit einander entgegengesetzten Farben gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung.
-
3 zeigt ein Verfahren zur Erzeugung, Codierung und Anzeige einer optischen Kennung auf einer Anzeige einer Rechenvorrichtung gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung;
-
4 zeigt ein Verfahren zur Decodierung erfasster Frames einer optischen Kennung gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung;
-
5 ist ein Blockdiagramm, das Beispiele für physische Komponenten einer Rechenvorrichtung zeigt, die mit einer oder mehreren Ausführungsformen der vorliegenden Offenbarung verwendet werden können; und
-
6 ist ein vereinfachtes Blockdiagramm einer Rechenvorrichtung, die mit einer oder mehreren Ausführungsformen der vorliegenden Offenbarung verwendet werden kann.
-
DETAILLIERTE BESCHREIBUNG
-
Verschiedene Ausführungsformen werden nachstehend unter Bezugnahme auf die begleitenden Zeichnungen, die einen Teil hiervon bilden und die konkrete Ausführungsbeispiele zeigen, näher beschrieben. Jedoch können Ausführungsformen in vielen verschiedenen Formen implementiert werden und sollten nicht als beschränkt auf die hierin angegebenen Ausführungsformen verstanden werden.
-
Es kommt häufig vor, dass eine erste Rechenvorrichtung Informationen mit einer zweiten Rechenvorrichtung teilen muss. In einem Beispiel kann es erforderlich sein, eine erste Rechenvorrichtung mit einer zweiten Rechenvorrichtung zu koppeln. Koppeln ist ein Prozess, bei dem zwei Rechenvorrichtungen einen gegenseitigen Kommunikationskanal einrichten. Sobald der Kommunikationskanal eingerichtet ist, können die einzelnen Rechenvorrichtungen Informationen miteinander teilen. Herkömmliche Beispiele für eine Kopplung zwischen Vorrichtungen beinhalten eine BLUETOOTH-Kopplung eines Mobiltelefons mit beispielsweise einem anderen Mobiltelefon, einer Autostereoanlage, mit Kopfhörern und dergleichen. In anderen Beispielen können mehrere Computer miteinander gekoppelt werden.
-
Wenn eine Vorrichtung mit einer anderen gekoppelt wird, geht in der Regel eine erste Vorrichtung in einen Suchmodus. Im Suchmodus sucht die Vorrichtung nach einer anderen Vorrichtung, mit der sie sich verbinden kann. Sobald die für die Kopplung in Frauge kommende Vorrichtung gefunden wurde und für die Kopplung ausgewählt wurde, kann eine Vorrichtung damit fortfahren, die andere Vorrichtung zu authentifizieren, beispielsweise durch Abfragen eines Passkey oder eines Passworts.
-
Wie weiter unten näher erklärt wird, sind Ausführungsformen der vorliegenden Erfindung auf die Verwendung einer optischen Kennung, beispielsweise eines maschinenlesbaren Codes, eines ein- oder zweidimensionalen Informationssymbols, eines Aztec-Codes, eines DataMatrix-Codes, eines QR-Codes, eines Strichcodes und so weiter gerichtet, um Informationen zwischen Rechenvorrichtungen zu übertragen. Wie weiter unten erläutert wird, können diese Informationen verwendet werden, um eine erste Rechenvorrichtung mit einer zweiten Rechenvorrichtung zu koppeln. Weil diese optischen Kennungen von den jeweiligen Anwendern jedoch nicht unbedingt als ansprechend empfunden werden, sind die hierin offenbarten optischen Kennungen für einen Anwender nicht wahrnehmbar oder anderweitig unsichtbar. Jedoch ist die optische Kennung für einen Sensor, der mit der Rechenvorrichtung assoziiert ist, die Informationen empfängt oder die mit der ersten Rechenvorrichtung gekoppelt werden soll, sichtbar oder anderweitig wahrnehmbar.
-
In Ausführungsformen wird die optische Kennung an einer ersten Rechenvorrichtung erzeugt. Die optische Kennung beinhaltet Informationen, die verwendet werden können, um die erste Rechenvorrichtung mit der zweiten Rechenvorrichtung zu koppeln. Sobald die optische Kennung von der ersten Rechenvorrichtung erzeugt worden ist, wird die optische Kennung auf einer Anzeige der ersten Rechenvorrichtung ausgegeben. Zum Beispiel kann die optische Kennung als Hintergrundbild oder als Teil eines Hintergrundbildes auf der Anzeige an der ersten Rechenvorrichtung ausgegeben werden. Wie weiter unten erläutert wird, kann die optische Kennung als zwei einander abwechselnde Frames, die mit einer hohen Rate, beispielsweise sechzig Frames pro Sekunde, angezeigt werden, an der Anzeige ausgegeben werden.
-
Genauer wird jeder Frame optisch in einem oder mehreren Bildern codiert, die auf der Anzeige der Rechenvorrichtung erscheinen, wenn die optische Kennung auf der Anzeige ausgegeben wird. Zum Beispiel wird jeder Frame unter Verwendung bestimmter Farben codiert, die sich, wenn sie gemittelt werden, den angezeigten Bildern angleichen. Wenn die Frames der optischen Kennung in raschem Wechsel angezeigt werden, tilgen die Farben der einzelnen Frames einander infolgedessen.
-
Wie weiter unten näher erläutert wird, werden die Muster der optischen Kennung in einem Chrominanzraum codiert, während die Luminanz jedes einzelnen Frames konstant bleibt. Da das menschliche Auge für Luminanz empfindlicher ist als für Chrominanz, wird die Änderung am Chrominanzraum von einem Anwender nicht oder nur schwerlich wahrgenommen.
-
Da die optische Kennung auf der Anzeige der ersten Rechenvorrichtung ausgegeben wird, ist ein Sensor, beispielsweise ein Bildsensor, an einer zweiten Rechenvorrichtung in der Lage, die optische Kennung zu lesen. Genauer erfasst der Sensor der zweiten Rechenvorrichtung die einander abwechselnden Frames der optischen Kennung. In Ausführungsformen ist die Erfassungsrate niedriger als die Signalfrequenz, mit der die optische Kennung auf der Anzeige der ersten Rechenvorrichtung ausgegeben wird. Wenn die Frames der optischen Kennung beispielsweise mit sechzig Frames pro Sekunde auf der Anzeige der ersten Rechenvorrichtung ausgegeben werden, kann die zweite Rechenvorrichtung beispielsweise die Frames der optischen Kennung mit einer Rate von fünfunddreißig Frames pro Sekunde erfassen. In anderen Ausführungsformen kann die Erfassungsrate höher sein als die Signalfrequenz, beispielsweise das Zweifache der Signalfrequenz oder höher.
-
Nachdem die Frames über einen vorgegebenen Zeitraum erfasst worden sind, verarbeitet die zweite Rechenvorrichtung die erfassten Bilder, um eine Darstellung der optischen Kennung zu erhalten, und kann die Wiedergabe der optischen Kennung verwenden, um die Informationen zu erhalten, die von der ersten Rechenvorrichtung übertragen wurden. Wenn die optische Kennung beispielsweise verwendet wird, um die Vorrichtungen zu koppeln, dann kann die Darstellung der optischen Kennung von einem Detektor und Decoder für optische Kennungen verarbeitet werden, und die Kopplung zwischen der ersten Rechenvorrichtung und der zweiten Rechenvorrichtung kann erfolgen.
-
1A und 1B zeigen Beispiele für Rechenvorrichtungen 100 bzw. 150, die unter Verwendung der hierin offenbarten optischen Kennung Informationen austauschen können und/oder miteinander gekoppelt werden können. In bestimmten Ausführungsformen kann jede der Rechenvorrichtungen 100 und 150 eine tragbare Rechenvorrichtung sein. Zum Beispiel können die Rechenvorrichtungen 100 und 150 Mobiltelefone sein. In einer anderen Ausführungsform können die Rechenvorrichtungen 100 und 150 am Körper tragbare Rechenvorrichtung sein. In noch anderen Ausführungsformen kann die Rechenvorrichtung 100 eine am Körper tragbare Rechenvorrichtung sein und die Rechenvorrichtung 150 kann ein Mobiltelefon sein. Auch wenn konkrete Beispiele angegeben wurden, können die Rechenvorrichtung 100 und die Rechenvorrichtung 150 unterschiedliche Arten von Rechenvorrichtungen sein. Zum Beispiel können die Rechenvorrichtungen der vorliegenden Offenbarung Tablet-Computer, Laptop-Computer, Zeitmessungsvorrichtungen, Computerbrillen, Navigationsvorrichtungen, Sportvorrichtungen, tragbare Musikabspielgeräte, gesundheitsunterstützende Vorrichtungen, medizinische Vorrichtungen und dergleichen sein.
-
Wie in 1A und 1B dargestellt ist, kann die Rechenvorrichtung 100 eine Anzeige 110 aufweisen. Die Anzeige 110 kann verwendet werden, um Informationen, die in einem Speicher der Rechenvorrichtung 100 gespeichert sind, bereitzustellen oder anderweitig auszugeben. Zum Beispiel kann die Anzeige 110 Informationen präsentieren, die einer oder mehreren Anwendungen entsprechen, die auf der Rechenvorrichtung 100 ausgeführt werden oder gespeichert sind. Solche Anwendungen können E-Mail-Anwendungen, Telefonanwendungen, Kalenderanwendungen, Spieleanwendungen, Zeitmessungsanwendungen und dergleichen beinhalten.
-
Außerdem kann die Anzeige 110 der Rechenvorrichtung 100 dafür ausgelegt sein, eine optische Kennung in einem oder mehreren Bildern auszugeben, die auf der Anzeige 110 präsentiert werden. Obwohl konkret eine Anzeige genannt ist, kann die optische Kennung der vorliegenden Offenbarung auf einem beliebigen Anzeigemechanismus ausgegeben werden. Die optische Kennung kann ein maschinenlesbarer Code, ein ein- oder zweidimensionales Symbol, ein Aztec-Code, ein DataMatrix-Code, ein binärer Code, ein n-Level-Code, ein QR-Code, ein Strichcode oder irgendeine andere optische Information, Art von Code oder digitale Darstellung von Informationen sein, welche die Form eines nicht-alphanumerischen Musters aufweist. In anderen Ausführungsformen kann die optische Kennung aus alphanumerischen Muster bestehen. Die optische Kennung kann verwendet werden, um die Rechenvorrichtung 100 in die Lage zu versetzen, Informationen mit der Rechenvorrichtung 150 zu teilen oder mit dieser gekoppelt zu werden, und umgekehrt. In anderen Ausführungsformen kann die optische Kennung zu Authentifizierungs- und Sicherungszwecken verwendet werden, um Käufe bestimmter Produkte zu verifizieren, zur Software- oder Medienverifikation und so weiter.
-
Die optische Kennung der vorliegenden Offenbarung kann von der Rechenvorrichtung 100 als Reaktion auf einen empfangenen Befehl erzeugt werden. In anderen Ausführungsformen kann die optische Kennung von der ersten Rechenvorrichtung 100 erzeugt werden, wenn die Rechenvorrichtung 100 nahe oder innerhalb eines bestimmten Abstands zu der Rechenvorrichtung 150 platziert wird. Die optische Kennung kann Informationen beinhalten, die erforderlich sind, um eine sichere Verbindung zwischen der Rechenvorrichtung 100 und der Rechenvorrichtung 150 einzurichten. Zum Beispiel kann die optische Kennung eine bestimmte Byte-Folge mit einer definierten Länge aufweisen, die verwendet wird, um einen sicheren Handshake zwischen der Rechenvorrichtung 100 und der Rechenvorrichtung 150 einzurichten.
-
Nachdem die optische Kennung erzeugt wurde, kann die Rechenvorrichtung 100 die optische Kennung auf der Anzeige 110 ausgeben. Zum Beispiel kann die optische Kennung, oder können Abschnitte der optischen Kennung, in verschiedenen Arten von Bildern auf der Anzeige 110 vorhanden oder eingebettet sein. Zum Beispiel kann die optische Kennung, oder können Abschnitte der optischen Kennung, in einem Icon, einem Wallpaper oder einem anderen Hintergrundbild, einem Sperrbildschirm oder irgendeinem anderen statischen oder dynamischen Bild, das auf der Anzeige 110 ausgegeben wird, enthalten oder eingebettet sein. Auch wenn die optische Kennung als Teil der Bilder enthalten sein kann, die auf der Anzeige 110 ausgegeben werden, kann die optische Kennung jedoch für einen Anwender unsichtbar oder anderweitig nicht wahrnehmbar sein, wie nachstehend beschrieben wird.
-
In Ausführungsformen wird die optische Kennung in einander abwechselnden Frames mit einer Frequenz angezeigt, die kein Flackern auf der Anzeige 110 bewirkt. Zum Beispiel können die Frames der optischen Kennung mit ungefähr sechzig Frames pro Sekunde auf der Anzeige ausgegeben werden, aber es können auch andere Frequenzen verwendet werden. Ferner kann jeder von den einander abwechselnden Frames mit einer bestimmten Farbe codiert sein. Wenn die Frames mit der vorgegebenen Frequenz ausgegeben werden, tilgen daher die Farben der einzelnen Frames einander oder bewirken anderweitig, dass die optische Kennung als Teil der Bilder erscheint, die gerade auf der Anzeige 110 ausgegeben werden. Genauer kann jeder Frame mit einem bestimmten Satz von Farben mit spezifischen Eigenschaften codiert werden, so dass die Farben aus dem ersten Frame und die entsprechenden Farben aus dem zweiten, mit diesem abwechselnden Frame, in der Wahrnehmung neutral sind, wenn sie vom menschlichen Auge gemittelt werden.
-
Sobald die optische Kennung auf der Anzeige 110 ausgegeben wurde, kann die Rechenvorrichtung 150 in Bezug auf die Anzeige 110 so positioniert werden, dass ein Sensor 160, der mit der Rechenvorrichtung 150 assoziiert ist, die einander abwechselnden Frames der optischen Kennung, die auf der Anzeige 110 ausgegeben werden, erfassen kann. In Ausführungsformen kann der Sensor 160 ein Bildsensor wie beispielsweise eine Kamera oder eine andere solche Vorrichtung sein, die es der Rechenvorrichtung 150 ermöglicht, die einander abwechselnden Frames der optischen Kennung zu erfassen.
-
Der Sensor 160 kann die einander abwechselnden Frames der optischen Kennung mit einer Frame-Rate erfassen, die niedriger ist als die Frequenz, mit der die Frames der optischen Kennung auf der Anzeige ausgegeben werden. Wenn die einander abwechselnden Frames der optischen Kennung beispielsweise mit sechzig Frames pro Sekunde auf der Anzeige ausgegeben werden, kann der Sensor 160 die Bilder mit zwischen ungefähr zwanzig Frames pro Sekunde und vierzig Frames pro Sekunde erfassen. In einer anderen Ausführungsform kann der Sensor 160 die einander abwechselnden Frames der optischen Kennung mit einer Frame-Rate erfassen, die der Frequenz entspricht oder im Wesentlichen entspricht, mit der die Frames der optischen Kennung ausgegeben werden.
-
In einer noch anderen Ausführungsform kann der Sensor 160 der Rechenvorrichtung 150 die einander abwechselnden Frames der optischen Kennung mit einer Frame-Rate erfassen, die höher ist als die Frequenz, mit der die Frames der optischen Kennung auf der Anzeige 110 der Rechenvorrichtung 100 ausgegeben werden. Wenn beispielsweise die Frames der optischen Kennung mit sechzig Frames pro Sekunde angezeigt werden, dann kann der Sensor 160 der Rechenvorrichtung 150 die Frames der optischen Kennung mit einer Frequenz von einundsechzig Frames pro Sekunde, zweiundsechzig Frames pro Sekunde oder sogar hundertzwanzig Frames pro Sekunde und dergleichen erfassen.
-
Nachdem die Frames der optischen Kennung vom Sensor 160 der Rechenvorrichtung 150 erfasst worden sind, wird die Folge der erfassten Bilder verarbeitet und decodiert. Genauer verarbeitet die Rechenvorrichtung die erfassten Bilder, um die optische Kennung zu rekonstruieren, die ursprünglich von der Rechenvorrichtung 100 erzeugt wurde. Wenn beispielsweise die ursprüngliche optische Kennung ein QR-Code wäre, der aus dunklen Quadraten auf einem hellen Hintergrund (oder hellen Quadraten auf einem dunklen Hintergrund) besteht, dann würde die Rechenvorrichtung 150 eine Kopie des ursprünglich erzeugten QR-Codes rekonstruieren. Nachdem die optische Kennung rekonstruiert worden ist, kann die rekonstruierte optische Kennung an einem Decodierer für optische Kennungen bereitgestellt werden und verwendet werden, um die Rechenvorrichtung 100 mit der Rechenvorrichtung 150 zu koppeln.
-
Auch wenn dies in 1A und 1B nicht dargestellt ist, können die Rechenvorrichtung 100 und die Rechenvorrichtung 150 zusätzliche Sensoren und andere Komponenten beinhalten. Zum Beispiel kann jede Rechenvorrichtung ein Mikrofon, einen Prozessor, einen Speicher, ein haptisches Stellglied, eine Lichtquelle und andere derartige Komponenten beinhalten. Diese konkreten Komponenten sowie andere Komponenten eines Beispiels für eine Rechenvorrichtung sind nachstehend unter Bezugnahme auf 5 und 6 gezeigt. In Ausführungsformen kann jede Rechenvorrichtung 100 und 150 mehrere Komponenten des gleichen oder eines ähnlichen Typs aufweisen. Zum Beispiel kann die Rechenvorrichtung 100 mehrere Sensoren, beispielsweise mehrere Kameras, mehrere Prozessoren und dergleichen aufweisen.
-
Ferner können die Rechenvorrichtung 100 und die Rechenvorrichtung 150 andere Komponenten aufweisen, die vorstehend nicht gezeigt oder beschrieben worden sind. Zum Beispiel kann die Rechenvorrichtung 100 eine Tastatur oder einen anderen Eingabemechanismus beinhalten. Außerdem kann die Rechenvorrichtung 100 eine oder mehrere Komponenten beinhalten, die es der Rechenvorrichtung 100 ermöglichen, sich mit dem Internet zu verbinden und/oder auf eine oder mehrere Remote-Datenbanken oder -Speichervorrichtungen zuzugreifen. Die Rechenvorrichtung 100 kann auch eine Kommunikation über drahtlose Medien, beispielsweise akustische, Hochfrequenz-(HF-), Infrarot- und andere Drahtlosmedien ermöglichen. Solche Kommunikationskanäle können die Rechenvorrichtung 100 und die Rechenvorrichtung 150 in die Lage versetzen, sich remote miteinander oder mit einer oder mehreren zusätzlichen Vorrichtungen, beispielsweise einem Laptop-Computer, einem Tablet-Computer, einem Personal Digital Assistant, einem tragbaren Musikabspielgerät, mit Lautsprechern und/oder Kopfhörern und dergleichen zu verbinden und zu kommunizieren.
-
Die Rechenvorrichtung 100 und die Rechenvorrichtung 150 können auch dafür ausgelegt sein, eine haptische Ausgabe bereitzustellen, um einen Anwender der einzelnen Rechenvorrichtungen auf einen bestimmten Zustand der Rechenvorrichtung aufmerksam zu machen. Zum Beispiel kann die Rechenvorrichtung 100 eine haptische Ausgabe, eine visuelle Meldung, eine akustische Meldung oder eine Kombination davon bereitstellen, um einen Anwender darauf aufmerksam zu machen, dass die Rechenvorrichtung eine optische Kennung erzeugt hat und anzeigt. Ebenso kann die Rechenvorrichtung 150 dafür ausgelegt sein, ähnliche Meldungen auszugeben, wenn die Kopplung zwischen den Vorrichtungen abgeschlossen worden ist.
-
1B zeigt eine alternative Ausführungsform, in der die Rechenvorrichtung 100 und die Rechenvorrichtung 150 unter Verwendung der optischen Kennung der vorliegenden Offenbarung miteinander gekoppelt werden können. Wie in 1B gezeigt ist, kann die Rechenvorrichtung 100 eine Anzeige 110, wie oben beschrieben, aufweisen. Ebenso kann die Rechenvorrichtung 150 eine Anzeige 180 aufweisen. Wie die Rechenvorrichtung 100 kann die Rechenvorrichtung 150 dafür ausgelegt sein, eine optische Kennung zu erzeugen und auf der Anzeige 180 auszugeben. In Ausführungsformen kann die optische Kennung wie hierin beschrieben erzeugt, codiert und auf der Anzeige 180 ausgegeben werden.
-
Nachdem die optische Kennung auf der Anzeige 180 ausgegeben wurde, kann ein Sensor 120, der mit der Rechenvorrichtung 100 assoziiert ist, die optische Kennung erfassen, die auf der Anzeige 180 ausgegeben wird. Ebenso kann ein Sensor 170, der mit der Rechenvorrichtung 150 assoziiert ist, die optische Kennung erfassen, die von der Rechenvorrichtung 100 erzeugt und auf der Anzeige 110 ausgegeben wird. In Ausführungsformen können der Sensor 120 und der Sensor 170 Bildsensoren sein, so wie beispielsweise eine Kamera oder eine andere Vorrichtung, die jede der Rechenvorrichtungen 100 und 150 in die Lage versetzt, eine optische Ausgabe zu erfassen.
-
Nachdem jeder der Sensoren 120 und 170 die Frames der optischen Kennung erfasst hat, die von der jeweils anderen Rechenvorrichtung bereitgestellt wird, verarbeiten die Rechenvorrichtungen 100 und 150 jeweils ihre entsprechenden erfassten Bilder. Wenn die erfassten Bilder verarbeitet worden sind und jede optische Kennung rekonstruiert worden ist, können die optischen Kennungen verwendet werden, um die Rechenvorrichtung 100 mit der Rechenvorrichtung 150 zu koppeln, und umgekehrt.
-
In Ausführungsformen kann jede der Rechenvorrichtungen 100 und 150 dafür ausgelegt sein, ihre entsprechenden optischen Kennungen nacheinander zu erzeugen und anzuzeigen. Zum Beispiel kann die Rechenvorrichtung 100 ihre optische Kennung zu einem ersten Zeitpunkt erzeugen und anzeigen. Wenn die optische Kennung auf der Anzeige 110 ausgegeben wird, kann der Sensor 170, der mit der Rechenvorrichtung 150 assoziiert ist, die Bildfolge erfassen und die von der Rechenvorrichtung 100 erzeugte optische Kennung rekonstruieren. In Ausführungsformen können das Anzeigen, das Erfassen und das Rekonstruieren der optischen Kennung in Echtzeit oder weitgehend in Echtzeit durchgeführt werden. Während beispielsweise die Rechenvorrichtung 100 die optische Kennung ausgibt, kann die Rechenvorrichtung 150 die empfangene optische Kennung lesen und an einen Prozessor weiterleiten, um die Informationen zu erhalten, die mit der optischen Kennung assoziiert sind. Die Rechenvorrichtung 150 kann dann zu einem zweiten Zeitpunkt eine optische Kennung erzeugen, codieren und auf ihrer Anzeige 180 ausgeben. Wenn die optische Kennung auf der Anzeige 180 ausgegeben wird, kann der Sensor 120 die angezeigte optische Kennung erfassen und die erfassten Bilder verarbeiten, wie hierin beschrieben, um die optische Kennung, die von der Rechenvorrichtung 150 erzeugt wird, zu rekonstruieren. In anderen Ausführungsformen kann die gegenseitige Kopplung der Rechenvorrichtungen 100 und 150 gleichzeitig oder im Wesentlichen gleichzeitig erfolgen.
-
2A zeigt ein Beispiel für ein Hintergrundbild 205, das auf einer Anzeige einer Rechenvorrichtung gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung ausgegeben wird. Genauer zeigt 2A verschiedene Frames einer optischen Kennung 200, die Chroma-codiert ist, in einem Hintergrundbild 205, das auf einer Anzeige einer Rechenvorrichtung ausgegeben wird. In Ausführungsformen kann die optische Kennung 200, wie sie in 2 gezeigt ist, die optische Kennung sein, die in Bezug auf 1A–1B und 3–6 beschrieben wird. Auch wenn hierin offenbarte Ausführungsformen den Chroma-Raum erörtern, können die hierin beschriebenen Prozesse auch mit Luminanz und/oder mit einer Kombination aus Chrominanz und Luminanz verwendet werden. Da das menschliche Auge empfindlicher ist für Luminanz, kann jedoch der Abstand von einem Zielwert, wenn die Farben verschoben werden (wie nachstehend beschrieben wird), kleiner sein und/oder die Anzeigefrequenz der optischen Kennung muss gegebenenfalls höher sein.
-
In Ausführungsformen kann die optische Kennung 200 ein DataMatrix-Code, ein QR-Code, ein Strichcode, ein ein- oder zweidimensionales Symbol, ein Aztec-Code und dergleichen sein. In anderen Ausführungsformen kann die optische Kennung 200 ein Binärcode, ein n-Level-Code oder irgendein anderer optischer Code sein, der von einer Rechenvorrichtung gelesen werden kann. Somit kann die optische Kennung 200 helle Abschnitte und dunkle Abschnitte aufweisen und kann in einem bestimmten Muster angeordnet sein. Wenn die optische Kennung 200 ein QR-Code ist, würde der QR-Code beispielsweise aus hellen Quadraten auf dunklem Hintergrund, dunklen Quadraten auf einem hellen Hintergrund oder anderen Farbkombinationen bestehen. In Ausführungsformen können das Muster der optischen Kennung 200 und die in der optischen Kennung verwendeten Formen variieren.
-
Außerdem kann die optische Kennung 200 statisch oder dynamisch sein in Bezug auf die Vorrichtung, welche die optische Kennung 200 erzeugt. Wenn beispielsweise eine Forderung nach Erzeugung der optischen Kennung 200 empfangen wird, so wie beispielsweise als Reaktion auf eine Forderung des Anwenders oder als Reaktion auf eine Forderung, die von einer anderen Vorrichtung empfangen wird, dann kann die Rechenvorrichtung eine optische Kennung 200 anzeigen, die zuvor erzeugt worden ist oder die in Bezug auf die Rechenvorrichtung konstant ist. In einer anderen Ausführungsform kann die Rechenvorrichtung jedes Mal, wenn eine Forderung empfangen wird, eine neue optische Kennung 200 erzeugen.
-
Sobald die optische Kennung 200 erzeugt worden ist, codiert die Rechenvorrichtung, welche die optische Kennung 200 erzeugt hat, temporär zwei unterschiedliche Frames der optischen Kennung 200 mit verschiedenen Farben in einem Chroma-Raum. Genauer wird ein erster Frame 210 der optischen Kennung 200 unter Verwendung von temporärer Chroma-Codierung codiert, so dass die dunklen Abschnitte der optischen Kennung 200 unter Verwendung einer ersten Farbe codiert werden und die hellen Abschnitte der optischen Kennung 200 unter Verwendung einer zweiten Farbe codiert werden. Ebenso wird ein zweiter Frame 220 der optischen Kennung 200 auf ähnliche Weise temporär Chroma-codiert. Zum Beispiel werden die dunklen Abschnitte des zweiten Frames 220 der optischen Kennung 200 unter Verwendung einer dritten Farbe Chroma-codiert und die hellen Abschnitte des zweiten Frames 220 der optischen Kennung werden unter Verwendung einer vierten Farbe temporär Chroma-codiert.
-
In Ausführungsformen sind die erste Farbe und die zweite Farbe der dritten Farbe bzw. der vierten Farbe entgegengesetzt. Zum Beispiel sind die Farben einander in jedem Farbraum, der in Bezug auf die Wahrnehmung von Bedeutung ist, entgegengesetzt, so dass ihr arithmetisches Mittel auf oder nahe an einem Zielwert liegt. Wenn der temporäre Mittelwert der einander entgegengesetzten Farben bestimmt wird, wäre der temporäre Mittelwert eine Chroma-freie Farbe (z. B. Grau). Zum Beispiel können die erste und die zweite Farbe Blau und Magenta sein, während die dritte und die vierte Farbe Orange und Grün sind. Da Blau und Orange einander entgegengesetzt sind und Magenta und Grün einander entgegengesetzt sind, ist der temporäre Mittelwert der Farben Grau.
-
Auch wenn konkrete Farben genannt werden, können beliebige Farben verwendet werden, um die einander abwechselnden Frames der optischen Kennung 200 zu codieren, solange die ausgewählten Farben gemäß einer gewünschten psychovisuellen Wahrnehmungsmetrik einander entgegengesetzt sind. Ferner entspricht der temporäre Mittelwert im obigen Beispiel zwar Grau, aber der temporäre Mittelwert der ausgewählten Farben kann einer beliebigen Bildfarbe entsprechen. Wenn das Hintergrundbild 205, auf dem die optische Kennung 200 platziert wird, blau ist, ist daher der temporäre Mittelwert der einander entgegengesetzten Farben des ersten Frames 210 und des zweiten Frames 220 ebenfalls Blau. Infolgedessen ist die optische Kennung 200 für einen Anwender nicht sichtbar, wenn die optische Kennung 200 auf dem Bild 205 vorhanden ist, wie im Frame 230 gezeigt. Wenn ein Abschnitt der optischen Kennung 200 auf einer ersten Farbe ist und ein anderer Abschnitt der optischen Kennung 200 auf einer zweiten Farbe ist, wird außerdem der temporäre Mittelwert jedes Abschnitts der optischen Kennung 200, der die verschiedenen Farben überlappt, dementsprechend berechnet. Somit kann die optische Kennung 200 in eine statische Grafik, ein statisches Bild oder einen statischen Hintergrund oder eine dynamische Grafik, ein dynamisches Bild oder einen dynamischen Hintergrund eingebettet werden.
-
Nachdem der erste Frame 210 und der zweite Frame 220 auf die oben beschriebene Weise codiert worden sind, werden die Frames abwechselnd auf einer Anzeige ausgegeben. In bestimmten Ausführungsformen werden der erste Frame 210 und der zweite Frame 220 mit einer Rate von ungefähr sechzig Frames pro Sekunde auf der Anzeige ausgegeben, aber es können auch andere Frequenzen verwendet werden. Das Anzeigen der einander abwechselnden Frames 210 und 220 bewirkt, dass sich die optische Kennung 200 dem Hintergrundbild 205 angleicht, das auf der Anzeige ausgegeben wird, oder bewirkt auf andere Weise, dass die optische Kennung 200 von einem Anwender nicht wahrnehmbar ist, wie im Frame 230 gezeigt ist.
-
2B–2E zeigen einander abwechselnde Frames einer optischen Kennung, so wie beispielsweise der optischen Kennung 200, mit einander entgegengesetzten Farben gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung. Genauer zeigt 2B einen ersten Frame 250 einer optischen Kennung mit zwei Farben 252 und 254 in einem Farbraum. Ebenso zeigt 2C einen zweiten Frame 260 einer optischen Kennung mit zwei Farben 262 und 264 in dem Farbraum. Da der erste Frame 250 und der zweite Frame 260 einander abwechseln, verschiebt die Farbe 252 die Farbe 262 in einem Chroma-Raum, wie in 2E gezeigt ist. Ebenso verschiebt die Farbe 254 die Farbe 264 in einem Chroma-Farbraum, wie ebenfalls in 2E gezeigt ist. Das resultierende Bild 270 der einander abwechselnden Frames 250 und 260, wie in 2D gezeigt, ist eine Chroma-freie Farbe 272.
-
Zum Beispiel sind alle Farben in einem Farbraum entlang einer anderen Achse des Farbraums einander entgegengesetzt, wie in 2E gezeigt ist. Infolgedessen ergibt der temporäre Mittelwert der Farben 252, 254, 262 und 264 eine Chroma-freie Farbe 272. Auch wenn der oben erörterte temporäre Mittelwert eine Chroma-freie Farbe ist, kann der temporäre Mittelwert der vier Farben eine beliebige Farbe sein, die unterschiedliche Chrominanzwerte und/oder Luminanzwerte aufweist. Zum Beispiel kann der temporäre Mittelwert der vier Farben eine beliebige Farbe sein, die zu verschiedenen Farben von angezeigten Bildern passt, die auf der Anzeige einer Rechenvorrichtung ausgegeben werden.
-
3 zeigt ein Verfahren 300 zur Erzeugung, Codierung und Anzeige einer optischen Kennung gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung. In Ausführungsformen kann das Verfahren 300 zur Erzeugung, Codierung und Anzeige der oben unter Bezugnahme auf 1A–2E gezeigten und beschriebenen optischen Kennung verwendet werden.
-
Das Verfahren 300 beginnt, wenn eine optische Kennung 310 erzeugt wird. In Ausführungsformen kann die optische Kennung von einer ersten Rechenvorrichtung erzeugt werden, die Informationen auf eine zweite Rechenvorrichtung übertragen oder mit dieser gekoppelt werden soll. Zum Beispiel kann die optische Kennung verwendet werden, um Informationen auf für Menschen nicht wahrnehmbare, aber für Maschinen wahrnehmbare Weise weiterzugeben. Die optische Kennung kann als Reaktion auf einen empfangenen Befehl erzeugt werden. Der empfangene Befehl kann von einem Anwender, einer Anwendung oder von der zweiten Vorrichtung kommen. Wenn die erste Vorrichtung beispielsweise innerhalb eines bestimmten Abstands von der zweiten Vorrichtung angeordnet wird, kann die erste Vorrichtung eine Forderung zur Erzeugung einer optischen Kennung empfangen. In einer anderen Ausführungsform kann die erste Vorrichtung ein Befehlspaar von einem Anwender oder einer Anwendung empfangen. Wenn ein solcher Befehl empfangen wird, kann die optische Kennung erzeugt werden.
-
In bestimmten Ausführungsformen kann die optische Kennung ein maschinenlesbarer Code, ein ein- oder zweidimensionales Informationssymbol, ein DataMatrix-Code, ein Strichcode, ein QR-Code oder eine andere optische Darstellung von Daten sein, wie oben beschrieben. Die optische Kennung kann unter Verwendung einer Vielfalt unterschiedlicher Muster, Farben und so weiter erzeugt werden.
-
Sobald die optische Kennung erzeugt worden ist, geht der Ablauf zum Schritt 320 weiter, in dem zwei Frames der optischen Kennung temporär Chroma-codiert werden. Genauer wird die optische Kennung in zwei unterschiedliche Frames aufgeteilt. Jeder von den unterschiedlichen Frames der optischen Kennung wird einem temporären Codierungsprozess unterzogen. Zum Beispiel wird ein erster Frame der optischen Kennung unter Verwendung von temporärer Chroma-Codierung codiert, so dass ein erster Abschnitt des ersten Frames der optischen Kennung unter Verwendung einer ersten Farbe codiert wird. Ferner wird ein zweiter Abschnitt des ersten Frames der optischen Kennung unter Verwendung einer zweiten Farbe codiert. Ebenso wird ein zweiter Frame der optischen Kennung einem temporären Chroma-Codierungsprozess unterzogen, bei dem ein erster Abschnitt des zweiten Frames der optischen Kennung unter Verwendung einer dritten Farbe Chroma-codiert wird Außerdem wird ein zweiter Abschnitt des zweiten Frames des optischen Codierers unter Verwendung einer vierten Farbe codiert.
-
In Ausführungsformen sind die erste Farbe und die zweite Farbe der dritten Farbe bzw. der vierten Farbe entgegengesetzt. Wenn der temporäre Mittelwert der ersten Farbe und der dritten Farbe berechnet wird, wäre der temporäre Mittelwert eine Chroma-freie Farbe. Wenn der temporäre Mittelwert der zweiten Farbe und der vierten Farbe berechnet wird, ist der temporäre Mittelwert der zweiten Farbe und der vierten Farbe ebenfalls eine Chroma-freie Farbe (z. B. Grau).
-
Führt man das Beispiel weiter, so können die erste und die zweite Farbe Blau und Magenta sein, während die dritte und die vierte Farbe Orange und Grün sein können. Blau und Orange sind einander im Chroma-Raum entgegengesetzt und Magenta und Grün sind einander im Chroma-Raum ebenfalls entgegengesetzt. Somit ist der temporäre Mittelwert der Farben Grau.
-
Auch wenn der oben erörterte temporäre Mittelwert eine Chroma-freie Farbe ist, kann der temporäre Mittelwert von jeder der vier Farben eine beliebige Farbe sein. Genauer kann der temporäre Mittelwert der vier Farben eine beliebige Farbe sein, die zu verschiedenen Farben von angezeigten Bildern passt, die auf der Anzeige einer Rechenvorrichtung ausgegeben werden.
-
Wenn beispielsweise das Bild, auf dem die optische Kennung codiert werden soll, blau ist, dann kann der temporäre Mittelwert der einander entgegengesetzten Farben des ersten Frames und des zweiten Frames ebenfalls Blau sein. Wenn ein Abschnitt der optischen Kennung in einem Bild mit mehreren Farben codiert werden soll, weist außerdem jeder Abschnitt der optischen Kennung einen temporären Mittelwert auf, der zum überlappten Abschnitt des Bildes passt. Infolgedessen kann die optische Kennung in einer statischen Grafik, einem statischen Bild oder einem statischen Hintergrund oder in einer dynamischen Grafik, einem dynamischen Bild oder einem dynamischen Hintergrund, wie beispielsweise einer Animation, einer Bildschirmpräsentation, einem Streaming-Medium oder einem anderen ähnlichen Inhalt und dergleichen eingebettet sein.
-
Nachdem der erste Frame und der zweite Frame codiert worden sind, geht der Ablauf zu Schritt 330 weiter, in dem der erste Frame und der zweite Frame abwechselnd auf einer Anzeige der Rechenvorrichtung ausgegeben werden. In Ausführungsformen beträgt die Frequenz der angezeigten Frames ungefähr sechzig Frames pro Sekunde. Jedoch kann die Frequenz höher sein als sechzig Frames pro Sekunde oder niedriger sein als sechzig Frames pro Sekunde.
-
In Ausführungsformen kann die Frequenzrate eine beliebige Rate sein, welche die einander abwechselnden Frames der optischen Kennung in die Lage versetzt, sich den angezeigten Bildern anzugleichen, so dass sie von einem Anwender nicht wahrnehmbar sind. Ferner kann die Geschwindigkeit oder die Frequenz, mit der die Frames angezeigt werden, auf Basis einer Geschwindigkeit ausgewählt werden, mit der ein etwaiges Flackern, das durch das Wechseln der Frames bewirkt werden kann, reduziert oder ansonsten eliminiert werden kann.
-
4 zeigt ein Verfahren 400 zur Decodierung erfasster Frames einer optischen Kennung gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung. In Ausführungsformen kann das Verfahren 400 von einer elektronischen Vorrichtung 100 und/oder einer elektronischen Vorrichtung 150 verwendet werden, die in Bezug auf 1A und 1B gezeigt und beschrieben ist. Ferner kann das Verfahren 400 verwendet werden, um eine codierte optische Kennung, beispielsweise die oben mit Bezug auf 2 beschriebene optische Kennung 200, zu empfangen und zu decodieren. Ferner kann das Verfahren 400 verwendet werden, um eine optische Kennung, beispielsweise eine optische Kennung, die in Bezug auf ein Verfahren 300, das unter Bezugnahme auf 3 beschrieben wird, erzeugt, codiert und angezeigt wird, zu decodieren.
-
Das Verfahren 400 beginnt, wenn eine Rechenvorrichtung, die mit einer Quell-Rechenvorrichtung gekoppelt werden soll, eine Folge von Bildern von der Quell-Rechenvorrichtung empfängt 410 oder erfasst. Die Quell-Rechenvorrichtung kann eine Zeitmesservorrichtung, ein Mobiltelefon, ein Tablet-Computer, ein Personal Digital Assistant, eine gesundheitsunterstützende Vorrichtung und so weiter sein. Ferner kann die Quell-Rechenvorrichtung eine codierte optische Kennung anzeigen, die temporär Chroma-codiert worden ist, so dass die optische Kennung von einem Anwender nicht wahrnehmbar ist, aber von einem Bildsensor der Rechenvorrichtung wahrnehmbar ist.
-
Um das Bild zu empfangen, das von der Quellvorrichtung bereitgestellt wird, kann die Rechenvorrichtung, genauer der Bildsensor der Rechenvorrichtung, in einer Ausrichtung angeordnet werden, die den Bildschirm in die Lage versetzt, eine Anzeige der Quell-Rechenvorrichtung zu erfassen. Wie oben beschrieben, kann die Anzeige der Quell-Rechenvorrichtung die codierte optische Kennung ausgeben oder anderweitig anzeigen. In Ausführungsformen wird die codierte optische Kennung als einander abwechselnde Frames mit Versetzungsfarben angezeigt. Ferner wird die codierte optische Kennung mit einer bestimmten Frequenz angezeigt, beispielsweise mit sechzig Frames pro Sekunde.
-
In Ausführungsformen erfasst der Bildsensor, der auf die Anzeige der Quell-Rechenvorrichtung gerichtet ist, die angezeigte Bildfolge (z. B. die einander abwechselnden Frames der optischen Kennung) mit einer Frequenz, die niedriger ist als die Frequenz, mit der die einander abwechselnden Frames der optischen Kennung angezeigt werden.
-
Führt man das obige Beispiel weiter, so kann der Bildsensor, wenn die Frames der codierten optischen Kennung mit einer Frequenz von sechzig Frames pro Sekunde angezeigt werden, die Bildfolge mit einer Rate von fünfunddreißig Frames pro Sekunde erfassen. Auch wenn eine konkrete Erfassungsrate erörtert wird, kann die Erfassungsrate in manchen Ausführungsformen zwischen zwanzig und vierzig Frames pro Sekunde liegen, aber es kommen auch andere Erfassungsraten in Betracht. In Ausführungsformen wird die Bildfolge über eine Zeit t erfasst. Nachdem das Bild über die Zeit t erfasst worden ist, kann die optische Kennung von der Rechenvorrichtung verarbeitet und rekonstruiert werden.
-
In manchen Fällen kann das Bild, das vom Bildsensor der Rechenvorrichtung erfasst wird, wegen einer Reihe von Faktoren verzerrt sein. Zum Beispiel kann sich ein Abstand zwischen der Quell-Rechenvorrichtung und der erfassenden Rechenvorrichtung auf den Grad eines Rauschens, genauer eines Chroma-Rauschens, das während der Erfassung auftritt (z. B. auf induzierte Farben in dem erfassten Bild, die das Signal verfälschen können), auswirken. Moiré-Muster können ebenfalls eine Verfälschung des Signals bewirken. Andere Faktoren, die sich auf den Grad des Rauschens auswirken können, der in der erfassten Bildfolge vorhanden ist, beinhalten den Winkel zwischen der Quell-Rechenvorrichtung und der erfassenden Rechenvorrichtung, die Auflösung der Anzeige der Quell-Rechenvorrichtung, die Auflösung des Bildsensors der erfassenden Rechenvorrichtung und so weiter.
-
Um diesem zusätzlichen Rauschen Rechnung zu tragen, sehen bestimmte Ausführungsformen vor, dass ein Filterungsprozess für jede erfasste Frequenz erfolgt. Da die temporären Kennwerte eines Rauschens von den temporären Kennwerten der von der Rechenvorrichtung empfangenen optischen Kennung abweichen, kann ein Filterungsprozess verwendet werden, um zu bestimmen, welches von den Signalen Rauschen ist und welche Signale die optische Kennung darstellen. Genauer können die temporären Kennwerte jedes erfassten Bildes, genauer die temporären Kennwerte jedes Pixels in jedem erfassten Bild, mit einem erwarteten, vorhergesagten oder tatsächlichen temporären Kennwert des empfangenen Bildes verglichen werden. Wenn der festgestellte temporäre Kennwert eines Bildes oder der festgestellte temporäre Kennwert eines Pixels des Bildes nicht innerhalb eines bestimmten Schwellwerts liegt, kann dieses bestimmte Bild oder Pixel in dem Bild ignoriert werden. In anderen Ausführungsformen kann das bestimmte Bild oder Pixel modifiziert, weiterverarbeitet oder in eine Analyse künftiger erfasster Bilder oder Pixel einbezogen werden.
-
Nachdem das Bild über einen bestimmten Zeitraum t erfasst worden ist, geht der Ablauf des Verfahrens 400 zum Schritt 420 weiter, in dem der temporäre Mittelwert der Folge erfasster Bilder bestimmt wird. In Ausführungsformen liefert der berechnete temporäre Mittelwert der Bilderfolge eine Darstellung des Hintergrundbildes oder der Bilder, in das bzw. in die die optische Kennung eincodiert ist.
-
Dann geht der Ablauf zu Schritt 430 weiter, in dem der temporäre Mittelwert der Bilderfolge von der Folge erfasster Bilder subtrahiert wird. Eine solche Berechnung ergibt eine Darstellung der Änderungen in der erfassten Bilderfolge. Somit ist ein Ergebnis dieses Schrittes eine Darstellung der Chroma-codierten optischen Kennung, die im Hintergrundbild der Quell-Rechenvorrichtung codiert worden ist.
-
Der Schritt 440 sieht vor, dass dann eine Farbraumumwandlung an der Darstellung der optischen Kennung durchgeführt wird. Genauer kann der Bildsensor der Rechenvorrichtung dafür ausgelegt sein, die Bilderfolge von der Quell-Rechenvorrichtung unter Verwendung eines RGB-Formats zu erfassen. Um die ursprünglich erzeugte optische Kennung exakt zu rekonstruieren, müssen jedoch die Luminanz und die Chrominanz in der Darstellung der optischen Kennung, die in der Bilderfolge erfasst worden ist, voneinander getrennt werden. Jedoch kann es sein, dass eine solche Trennung in einem RGB-Format nicht erfolgt. Somit findet eine Farbraumumwandlung statt, bei der die RGB-Werte der Darstellung der optischen Kennung in ein YCbCr-Format oder ein anderes Format umgewandelt werden, in dem Luminanz und Chrominanz getrennt werden können.
-
Nachdem die Farbraumumwandlung stattgefunden hat, geht der Ablauf zu Schritt 450 wieter, und es wird bestimmt, welche Quadranten in einer zweidimensionalen Chroma-Ebene von den einzelnen Pixeln der Darstellung der optischen Kennung besetzt werden. Sobald die Anordnung jedes Pixels bestimmt worden ist, wird ferner bestimmt, ob die Farben der einzelnen Pixel weiter als ein Schwellwert-Abstand vom Farbmittelwert des empfangenen Bildes entfernt sind. Genauer wird der Farbvektor jedes Pixels analysiert, um zu bestimmen, wie weit die Pixel vom Ursprung des Chroma-Raums entfernt sind. Wenn die Anordnung der Pixel dem Schwellwert-Abstand vom Ursprung des Chroma-Raums entspricht oder diesen übertrifft und wenn das Pixel in dem Quadranten des Chroma-Raums liegt, in dem es codiert wurde, wird jedem Pixel ein codierter Wert zugewiesen. In manchen Fällen ist der codierte Wert entweder eine Null oder eine Eins. Als Ergebnis dieses Prozesses ist die Darstellung der optischen Kennung nunmehr eine verrauschte Darstellung der ursprünglich erzeugten optischen Kennung (z. B. ein verrauschter QR-Code, der aus schwarzen Quadraten auf einem weißen Hintergrund besteht).
-
Der Ablauf geht dann zu Schritt 460 weiter, in dem ein temporärer Integrationsprozess an der Darstellung der ursprünglich erzeugten optischen Kennung durchgeführt wird. In diesem Prozess wird das über die Zeit t gemittelte Signal jedes Pixels der verrauschten Darstellung der ursprünglich erzeugten optischen Kennung bestimmt.
-
Nachdem der Prozess abgeschlossen wurde, geht der Ablauf zu Schritt 470 weiter, in dem eine binäre Bestimmung in Bezug auf die endgültige Darstellung der optischen Kennung getroffen wird. Wenn beispielsweise die ursprüngliche optische Kennung ein QR-Code war, dann wird jedes Pixel in der Darstellung der optischen Kennung analysiert, und es wird bestimmt, ob das jeweilige Pixel ein weißer Abschnitt des QR-Codes oder ein schwarzer Abschnitt des QR-Codes ist.
-
Wenn die ursprüngliche optische Kennung rekonstruiert worden ist, wird die rekonstruierte optische Kennung an einem Detektor für optische Kennungen der Rechenvorrichtung bereitgestellt 480. Nachdem die optische Kennung am Detektor für optische Kennungen bereitgestellt und gelesen worden ist, kann die Rechenvorrichtung mit der Quell-Rechenvorrichtung gekoppelt werden.
-
5 ist ein Blockdiagramm, das Beispiele für Komponenten, beispielsweise für Hardware-Komponenten einer Rechenvorrichtung 500 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung zeigt. In bestimmten Ausführungsformen kann die Rechenvorrichtung 500 der Rechenvorrichtung 100 und der Rechenvorrichtung 150 ähneln, die oben unter Bezugnahme auf 1A und 1B beschrieben wurden. Auch wenn verschiedene Komponenten der Rechenvorrichtung 500 gezeigt sind, sind Verbindungen und Kommunikationskanäle zwischen den einzelnen Komponenten der Einfachheit halber weggelassen worden.
-
In einer Grundkonfiguration kann die Rechenvorrichtung 500 mindestens einen Prozessor 505 und einen zugehörigen Speicher 510 aufweisen. Der Speicher 510 kann unter anderem einen flüchtigen Speicher, beispielsweise einen Schreib-/Lese-Speicher, einen nichtflüchtigen Speicher, beispielsweise einen Nur-Lesespeicher, einen Flash-Speicher oder irgendeine Kombination davon beinhalten. Der Speicher 510 kann ein Betriebssystem 515 und ein oder mehrere Programmmodule 520, die sich zur Ausführung von Software-Anwendungen 555 eignen, speichern. Das Betriebssystem 515 kann dafür ausgelegt sein, die Rechenvorrichtung 500 und/oder eine oder mehrere Software-Anwendungen 555, die vom Betriebssystem 515 ausgeführt werden, zu steuern. Die Programmmodule 520 oder die Software-Anwendungen 555 können Module und Programme beinhalten, um die hierin offenbarten optischen Kennungen zu erzeugen, zu codieren und anzuzeigen. Ferner können die Programmmodule 520 und die Software-Anwendungen 555 die Rechenvorrichtung 500 in die Lage versetzen, eine codierte optische Kennung wie oben beschrieben zu lesen und zu verarbeiten.
-
Die Rechenvorrichtung 500 kann zusätzlich zu den hierin ausdrücklich beschriebenen noch weitere Merkmale oder Funktionen aufweisen. Zum Beispiel kann die Rechenvorrichtung 500 auch zusätzliche Datenspeichervorrichtungen aufweisen, die abnehmbar oder nicht abnehmbar sein können, so wie beispielsweise Magnetplatten, optische Platten oder Bandspeicher. Beispiele für Speichervorrichtungen sind in 5 anhand einer abnehmbaren Speichervorrichtung 525 und einer nichtabnehmbaren Speichervorrichtung 530 gezeigt.
-
In bestimmten Ausführungsformen können verschiedene Programmmodule und Datendateien im Systemspeicher 510 gespeichert werden. Die Programmmodule 520 und der Prozessor 505 können Prozesse durchführen, die einen oder mehrere der Schritte der Verfahren 300 und 400 beinhalten, die unter Bezugnahme auf 3 und 4 gezeigt und beschrieben worden sind.
-
Wie ebenfalls in 5 gezeigt ist, kann die Rechenvorrichtung 500 eine oder mehrere Eingabevorrichtungen 535 beinhalten. Die Eingabevorrichtungen 535 können eine Tastatur, eine Maus, einen Stift oder einen Tablettstift, eine Toneingabevorrichtung, eine Berührungseingabevorrichtung und dergleichen beinhalten. Die Rechenvorrichtung 500 kann auch eine oder mehrere Ausgabevorrichtungen 540 beinhalten. Die Ausgabevorrichtungen 540 können eine Anzeige, einen oder mehrere Lautsprecher, einen Drucker und dergleichen beinhalten. Die Rechenvorrichtung 500 kann auch ein oder mehrere haptische Stellglieder 560 beinhalten, die verwendet werden, um die haptische Rückmeldung bereitzustellen, wie hierin beschrieben. Wie oben erörtert wurde, kann die Rechenvorrichtung 500 auch einen oder mehrere Sensoren 565 beinhalten. Die Sensoren können unter anderem einen Bildsensor, einen Beschleunigungssensor, einen Umgebungslichtsensor, ein Gyroskop, ein Magnetometer und dergleichen beinhalten.
-
Die Rechenvorrichtung 500 beinhaltet außerdem Kommunikationsverbindungen 545, die die Kommunikation mit zusätzlichen Rechenvorrichtungen 550 erleichtern. Solche Kommunikationsverbindungen 545 können HF-Sender, einen Empfänger und/oder eine Transceiver-Schaltung, Universal Serial Bus(USB)-Kommunikation, parallele Ports und/oder serielle Ports beinhalten.
-
Wie hierin verwendet, kann der Begriff computerlesbare Medien Computerspeichermedien beinhalten. Computerspeichermedien können flüchtige und nichtflüchtige Medien und/oder abnehmbare und nichtabnehmbare Medien für die Speicherung von Informationen beinhalten. Beispiele beinhalten computerlesbare Befehle, Datenstrukturen und Programmmodule. Der Speicher 510, die abnehmbare Speichervorrichtung 525 und die nichtabnehmbare Speichervorrichtung 530 sind jeweils Beispiele für Computerspeichermedien. Computerspeichermedien können RAM, ROM, elektrisch löschbaren Nur-Lesespeicher (electrically erasable read-only memory, EEPROM), Flash-Speicher oder andere Speichertechnik, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Speicher, Magnetkassetten, Magnetband, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder irgendwelche anderen Erzeugnisse beinhalten, die verwendet werden können, um Informationen zu speichern, und auf die von der Rechenvorrichtung 500 zugegriffen werden kann. Jedes dieser Computerspeichermedien kann Teil der Rechenvorrichtung 500 sein.
-
6 zeigt ein anderes Beispiel für eine Rechenvorrichtung 600 gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung. 6 ist ein Blockdiagramm, das die Architektur einer Rechenvorrichtung wie der unter Bezugnahme auf 1A gezeigten und beschriebenen Rechenvorrichtung 100 oder der unter Bezugnahme auf 1B gezeigten und beschriebenen Rechenvorrichtung 150 zeigt. Auch wenn verschiedene Komponenten der Vorrichtung 600 gezeigt sind, sind Verbindungen und Kommunikationskanäle zwischen den einzelnen Komponenten der Einfachheit halber weggelassen worden.
-
In bestimmten Ausführungsformen kann das System 605 ein(e) oder mehrere Anwendungen oder Programme ausführen. Diese Anwendungen oder Programme beinhalten Erzeuger für optische Kennungen, Detektoren für optische Kennungen, Browser-Anwendungen, E-Mail-Anwendungen, Kalenderanwendungen, Adressverwaltungsanwendungen, Nachrichtenanwendungen, Spiele, Medienwiedergabeanwendungen und dergleichen.
-
Diese Programme sowie weitere Programme, die oben nicht eigens erörtert worden sind, können in einen Speicher 610 geladen werden. Ferner können diese Programme durch das Betriebssystem 615 oder in Verbindung mit diesem ausgeführt werden. Beispiele für zusätzliche Anwendungsprogramme können Telefonprogramme, E-Mail-Programme, Personal Information Management(PIM)-Programme, Textverarbeitungsprogramme, Tabellenkalkulationsprogramme, Internetbrowser-Programme, Messaging-Programme und dergleichen beinhalten. Das System 605 kann auch einen nichtflüchtigen Speicherbereich 620 innerhalb des Speichers 610 aufweisen. Der nichtflüchtige Speicherbereich 620 kann verwendet werden, um persistente Informationen zu speichern. In bestimmten Ausführungsformen können die Anwendungsprogramme Informationen im nichtflüchtigen Speicherbereich 620 verwenden und speichern. Eine Synchronisationsanwendung oder ein Synchronisationsmodul (nicht dargestellt) kann auch im System 605 enthalten sein, um Anwendungen oder Daten, die auf der Vorrichtung 600 liegen, mit einem anderen Computer oder einer anderen Vorrichtung zu synchronisieren. In Ausführungsformen beinhaltet die Vorrichtung 600 eine Stromquelle 625. Die Stromquelle 625 kann eine Batterie, eine Solarzelle und dergleichen sein, die die einzeln dargestellten Komponenten mit Strom versorgt. Die Stromquelle 625 kann auch eine externe Stromquelle, beispielsweise einen Wechselstromadapter oder einen anderen derartigen Verbinder beinhalten, der die Batterien ergänzt oder auflädt. Die Vorrichtung 600 kann auch eine Funkeinrichtung 630 beinhalten, welche die Funktion des Sendens und Empfangens von Hochfrequenzübertragungen erfüllt. Außerdem können Übertragungen, die von der Funkeinrichtung 630 empfangen werden, an die hierin offenbarten Anwendungsprogramme im Betriebssystem 615 weitergegeben werden. Ebenso können Übertragungen von den Anwendungsprogrammen an die Funkeinrichtung 630 weitergegeben werden, falls erforderlich.
-
Die Rechenvorrichtung 600 kann auch einen optischen Anzeiger 635, eine Tastatur 670 und eine Anzeige 675 beinhalten. In Ausführungsformen kann die Tastatur eine physische Tastatur oder eine virtuelle Tastatur sein, die auf einer Touchscreen-Anzeige 675 erzeugt wird.
-
Der optische Anzeiger 635 kann verwendet werden, um einem Anwender der Rechenvorrichtung 600 visuelle Meldungen bereitzustellen. Die Rechenvorrichtung 600 kann auch eine Audioschnittstelle 640 zur Erzeugung akustischer Meldungen und Warnungen beinhalten. In bestimmten Ausführungsformen ist der optische Anzeiger 635 eine Leuchtdiode (LED) oder eine andere derartige Lichtquelle, und die Audioschnittstelle 640 ist ein Lautsprecher. In bestimmten Ausführungsformen kann die Audioschnittstelle dafür ausgelegt sein, eine akustische Eingabe zu empfangen.
-
Die Audioschnittstelle 640 kann auch verwendet werden, um akustische Signale für einen Anwender der Rechenvorrichtung 600 bereitzustellen oder von diesem zu empfangen. Zum Beispiel kann ein Mikrofon verwendet werden, um eine akustische Eingabe zu empfangen. Das System 605 kann ferner eine Videoschnittstelle 650 aufweisen, die den Betrieb einer eingebauten Kamera 655 ermöglicht, um die codierte optische Kennung zu erfassen, aufzuzeichnen oder anderweitig zu empfangen. Die Kamera 655 kann auch Standbilder, Video und dergleichen erfassen.
-
In einer oder mehreren Ausführungsformen können Daten und Informationen, die von der Rechenvorrichtung 600 erzeugt oder erfasst werden, lokal gespeichert werden. Außerdem oder alternativ dazu können die Daten auf einer beliebigen Zahl von Speichermedien gespeichert werden, auf die von der Rechenvorrichtung 600 unter Verwendung der Funkeinrichtung 630, einer Kabelverbindung oder einer kabellosen Verbindung zwischen der Rechenvorrichtung 600 und einer anderen Rechenvorrichtung remote zugegriffen werden kann. Außerdem können Daten und Informationen ohne Weiteres zwischen Rechenvorrichtungen übertragen werden.
-
Ausführungsformen der vorliegenden Offenbarung werden oben unter Bezugnahme auf Blockdiagramme und Darstellungen von Verfahrensschritten und dergleichen beschrieben. Die beschriebenen Schritte können in einer anderen Reihenfolge erfolgen als in den Figuren gezeigt. Außerdem kann einer oder können mehrere von den Schritten weggelassen oder im Wesentlichen gleichzeitig durchgeführt werden. Zum Beispiel können zwei hintereinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden. Außerdem können die Blöcke in der umgekehrten Reihenfolge ausgeführt werden.
-
Die Beschreibung und Darstellung einer oder mehrerer der in dieser Offenbarung angegebenen Ausführungsformen soll den beanspruchten Bereich der vorliegenden Offenbarung nicht beschränken oder begrenzen. Die Ausführungsformen, Beispiele und Einzelheiten, die in dieser Offenbarung angegeben sind, werden als ausreichend erachtet, um andere in die Lage zu versetzen und zu befähigen, die beste Art und Weise der beanspruchten Ausführungsformen herzustellen und zu nutzen. Außerdem sollten die beanspruchten Ausführungsformen nicht als beschränkt auf irgendwelche der oben angegebenen Ausführungsformen, Beispiele oder Einzelheiten betrachtet werden. Unabhängig davon, ob die verschiedenen Merkmale, einschließlich von strukturellen Merkmalen und methodologischen Merkmalen, in Kombination oder einzeln gezeigt und beschrieben wurden, sollen sie selektiv einbezogen oder weggelassen werden können, um eine Ausführungsform mit einem bestimmten Satz von Funktionen hervorzubringen. Ein Fachmann, der im Besitz der Beschreibung und der Darstellung der vorliegenden Anmeldung ist, wird Varianten, Modifikationen und alternative Ausführungsformen naheliegend finden, die im Bereich der breiteren Aspekte der hierin beschriebenen Ausführungsformen liegen und die vom breiteren Bereich der beanspruchten Ausführungsform nicht abweichen.