DE102019110886A1 - Bandbreitenoptimierung zum Streamen von Beleuchtungseffekten - Google Patents

Bandbreitenoptimierung zum Streamen von Beleuchtungseffekten Download PDF

Info

Publication number
DE102019110886A1
DE102019110886A1 DE102019110886.1A DE102019110886A DE102019110886A1 DE 102019110886 A1 DE102019110886 A1 DE 102019110886A1 DE 102019110886 A DE102019110886 A DE 102019110886A DE 102019110886 A1 DE102019110886 A1 DE 102019110886A1
Authority
DE
Germany
Prior art keywords
array
light emitter
input device
light
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102019110886.1A
Other languages
English (en)
Inventor
Laurent Plancherel
David Tarongi Vanrell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Logitech Europe SA
Original Assignee
Logitech Europe SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Logitech Europe SA filed Critical Logitech Europe SA
Publication of DE102019110886A1 publication Critical patent/DE102019110886A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01HELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
    • H01H13/00Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch
    • H01H13/70Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch having a plurality of operating members associated with different sets of contacts, e.g. keyboard
    • H01H13/83Switches having rectilinearly-movable operating part or parts adapted for pushing or pulling in one direction only, e.g. push-button switch having a plurality of operating members associated with different sets of contacts, e.g. keyboard characterised by legends, e.g. Braille, liquid crystal displays, light emitting or optical elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B45/00Circuit arrangements for operating light-emitting diodes [LED]
    • H05B45/20Controlling the colour of the light
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/155Coordinated control of two or more light sources
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05BELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
    • H05B47/00Circuit arrangements for operating light sources in general, i.e. where the type of light source is not relevant
    • H05B47/10Controlling the light source
    • H05B47/175Controlling the light source by remote control
    • H05B47/19Controlling the light source by remote control via wireless transmission
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01HELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
    • H01H2219/00Legends
    • H01H2219/002Legends replaceable; adaptable
    • H01H2219/014LED
    • H01H2219/016LED programmable
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01HELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
    • H01H2219/00Legends
    • H01H2219/036Light emitting elements
    • H01H2219/039Selective or different modes of illumination

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Circuit Arrangement For Electric Light Sources In General (AREA)

Abstract

Gemäß einiger Ausführungsformen werden ein Verfahren und ein System zum drahtlosen Streamen von Beleuchtungseffektdaten an ein peripheres Eingabegerät in Beleuchtungseffektarrays bereitgestellt. Ein aktuelles Beleuchtungseffektarray wird mit einem vorherigen Beleuchtungseffektarray verglichen und der Vergleich wird auf einen oder mehr Bereiche von Lichtemittern in dem Beleuchtungseffektarray angewendet.

Description

  • Hintergrund
  • Die vorliegende Erfindung betrifft das Streamen von Effekten (z. B. Beleuchtung) an ein peripheres Gerät (z. B. Tastatur).
  • In drahtgebundenen peripheren Geräten, wie beispielsweise Tastaturen, ist eine Vollduplexkommunikation möglich, was es erlaubt, Konfigurationsdaten von dem Host zu dem peripheren Gerät zu senden, während gleichzeitig Berichtdaten von den Geräten zu dem Host zurückgesendet werden können. Eine solche Kommunikationsanordnung ist in Hochleistungsanwendungen, beispielsweise beim Gaming, bevorzugt, weil die Übertragung von Konfigurationsdaten das Zurücksenden der Berichtdaten von dem peripheren Gerät nicht stören oder diesem zuvorkommen darf. Wenn dies nicht der Fall wäre, könnten von dem Gerät kommende Daten (z. B. Tastenbetätigungen) während einer Konfiguration des Geräts (z. B. das Einstellen einer Hintergrundbeleuchtung) verzögert werden oder sogar verloren gehen, was zu einem verschlechterten Nutzererlebnis führt.
  • Einige drahtgebundene Gaming-Tastaturen von Logitech geben dem Nutzer die Möglichkeit, animierte Beleuchtungseffekte zu verwalten und anzupassen oder aus 16 voreingestellten Beleuchtungseffekten auszuwählen. Die Effekte können mit einem Beleuchtungseffektarray angewendet werden, welches für eine Zeitdauer die Farbe für jede Taste spezifiziert.
  • Bei drahtlosen Geräten ist dies komplexer. In einigen Fällen wird eine Zweiwegkommunikation mit dem peripheren Gerät über einen einzigen Funkkanal bewerkstelligt. In solchen Fällen müssen zu dem Gerät gesendete Konfigurationsdaten mit von dem Gerät gesendeten Berichtdaten zeitlich gemultiplext werden. Wenn die Konfigurationsdaten zu groß sind, kann dies zu einem hohen Verbrauch der Bandbreite des Kanals führen, wodurch weniger Zeitschlitze für das Senden von Berichtdaten verfügbar sind. Bei bestehenden Beleuchtungsschemen, bei denen Tastaturtasten erleuchten, ist es üblicherweise erforderlich, für jeden Lichtemitter einen Befehl zu senden. Außerdem können andere Funkgeräte eine Störung auf dem Kanal verursachen, was das Risiko des Verlusts und/oder der Beschädigung der Berichtdaten von dem Gerät weiter erhöht. Dementsprechend besteht ein Bedarf nach einem System, welches eine verbesserte Funkkommunikation zwischen einem Host und einem konfigurierbaren peripheren Gerät bereitstellen kann.
  • Kurzzusammenfassung
  • Gemäß einiger Ausführungsformen wird ein Verfahren und ein System zum drahtlosen Streamen von Beleuchtungseffektdaten an ein peripheres Eingabegerät mittels Beleuchtungseffektarraynachrichten bereitgestellt. Ein aktuelles Beleuchtungseffektarray wird mit einem vorherigen Beleuchtungseffektarray verglichen und ein einziger Beleuchtungseffektarraybefehl wird auf eine Vielzahl von Lichtemittern in dem Beleuchtungseffektarray angewendet.
  • Gemäß einiger Ausführungsformen wird ein Verfahren und ein System zum drahtlosen Streamen von Beleuchtungseffektdaten an ein peripheres Eingabegerät mittels Beleuchtungseffektarraynachrichten bereitgestellt. Ein aktuelles Beleuchtungseffektarray wird mit einem vorherigen Beleuchtungseffektarray verglichen und ein oder mehr Komprimierungsschemen werden für das Delta zwischen den zwei Beleuchtungseffektarrays bestimmt und werden auf einen oder mehr Lichtemitter-Bereiche in dem Beleuchtungseffektarray angewendet. Für jede Beleuchtungseffektarrayübertragung wird daher eine beste Kombination von Komprimierungsschemen ausgewählt.
  • Gemäß einiger Ausführungsformen werden die Beleuchtungsdaten (z. B. Farbe und Luminanz/Helligkeit) für ein Lichtemitter-Array (z. B. LEDs in Tastaturtasten oder dem Gehäuse) in einem an das Peripheriegerät gesendeten Datenstrom von Beleuchtungseffektarrays bereitgestellt. Das Streamen verwendet ein Komprimierungsschema, welches auf eine angepasste Gruppierung von Lichtemittern angewendet wird, welche von Beleuchtungseffektarray zu Beleuchtungseffektarray variieren kann. Zudem können innerhalb eines Beleuchtungseffektarrays unterschiedliche Bereiche verwendet werden. Statt eine bestimmte Farbe für jede Position anzugeben, wird beispielsweise eine bestimmte Farbe einmal in Verbindung mit einer angepassten Liste von Lichtemittern spezifiziert, welche diese Farbe haben werden. Ein Bereich kann ein einziger Lichtemitter, eine Gruppe von räumlich zusammenliegenden Lichtemittern, ein Umfang von Lichtemitterkennungen, eine Liste von Lichtemitterkennungen oder eine andere Kombination von Lichtemittern sein.
  • Gemäß einiger Ausführungsformen wird ein Verfahren und ein System zum Streamen von Beleuchtungseffektdaten in Beleuchtungseffektarrays bereitgestellt, wobei jedes Beleuchtungseffektarray eine Vielzahl von Bereichen von Lichtemitterdaten mit unterschiedlichen Bereichsgrößen aufweist. Unterschiedliche Komprimierungsschemen werden für mindestens zwei der Bereiche verwendet. Beispielsweise kann ein Bereich keine Komprimierung verwenden und ein anderer Bereich kann ein 4-Bit-Delta oder eine Änderung gegenüber dem vorherigen Farbwert verwenden, wenn die Änderung klein ist.
  • Gemäß einiger Ausführungsformen wird ein Verfahren und ein System zum Streamen von Beleuchtungseffektdaten in Beleuchtungseffektarrays bereitgestellt, wobei aufeinander folgende Beleuchtungseffektarrays unterschiedliche Komprimierungsschemen verwenden. Für jeden Übergang auf eine nächste Farbe überprüft ein Kodierer die vorherigen Beleuchtungseffektarrayfarben und die aktuellen Beleuchtungseffektarrayfarben und bestimmt eine optimierte Gruppierung von Lichtemitterkennungen und optimierten Komprimierungsschemen.
  • Gemäß einiger Ausführungsformen stellt eines der Komprimierungsschemen eine Differenz zwischen einem vorherigen Beleuchtungswert und einem neuen Beleuchtungswert bereit. Gemäß einer Ausführungsform umfassen die Komprimierungsschemen keine Änderung, einen vollständigen Wert, N-Bit-Delta gegenüber einem letzten Wert und ein M-Bit-Delta gegenüber einem letzten Wert.
  • Figurenliste
    • 1 ist ein Diagramm eines Beleuchtungseffektcomputersystems gemäß bestimmten Ausführungsformen.
    • 2 ist ein Blockdiagramm von Beleuchtungseffektmodulen gemäß einer Ausführungsform.
    • 3 ist ein Diagramm, welches unterschiedliche Bereiche eines Emitterarrays gemäß einer Ausführungsform zeigt.
    • 4 ist ein Blockdiagramm der Softwaremodule und elektronischen Schaltung zur Übertragungsoptimierung zwischen einer Host-Software und einem Eingabegerät zum Streamen, Speichern und Abspielen von Beleuchtungseffekten gemäß Ausführungsformen.
    • 5 ist ein Flussdiagramm, welches die Bestimmung eines zu verwendenden Komprimierungsschemas gemäß einer Ausführungsform zeigt.
    • 6 und 7 sind Flussdiagramme, welche die Wahl zwischen Umfangskodierung und Einzelkodierung gemäß einer Ausführungsform zeigen.
    • 8 ist ein Diagramm, welches die Einsparungen von Zeitschlitzräumen gemäß einer Ausführungsform zeigt.
  • Detaillierte Beschreibung
  • Typische Systemumgebung für bestimmte Ausführungsformen
  • 1 zeigt ein System 100 gemäß einigen Ausführungsformen, welches das Streamen von Beleuchtungseffekten an ein Eingabegerät 140 verwendet. Das System 100 kann einen Computer 110, ein Display 120, ein Eingabegerät 130 (z. B. eine Computermaus 130) und ein Eingabegerät 140 (z. B. eine Tastatur 140) umfassen. Die Tastatur 140 kann ein Tasten-Array umfassen, welches eine erste Gruppe von Tasten 150 umfasst, welche mit Beleuchtungseffekten erleuchtet werden. Wie der Fachmann versteht, können das Eingabegerät 130 und die Tastatur 140 dazu konfiguriert sein, den Computer 110 und die Anzeige 120 des Systems 100 zu steuern. Der Computer 110 kann als ein „Host-Computer“ oder ein „Host-Rechengerät“ bezeichnet sein.
  • Der Computer 110 kann ein maschinenlesbares Medium (nicht gezeigt) umfassen, welches dazu konfiguriert ist, nicht-flüchtigen, computerlesbaren Computercode, beispielsweise eine Tastaturtreibersoftware und dergleichen, zu speichern, wobei der Computercode in einem Speicher 154 gespeichert wird und durch einen Prozessor (z. B. Prozessor(en) 152) des Computers 110 ausgeführt wird, um die Steuerung des Computers 110 durch die Eingabegeräte 130 und/oder 140 zu bewirken. In den diversen, hierin beschriebenen Ausführungsformen wird auf das Eingabegerät 140 im allgemeinen als eine Tastatur oder ein ähnliches Eingabegerät Bezug genommen; es ist jedoch zu beachten, dass das Eingabegerät 140 jedes beliebige Eingabe/Ausgabe (I/O)-Gerät, Nutzerschnittstellengerät, Steuergerät, Eingabeeinheit oder dergleichen sein kann, beispielsweise eine Computermaus, eine Fernbedienung, ein tragbares Gerät (z. B. eine Smart-Watch, ein Armband, eine Brille), ein Gamepad, ein Trackball, ein Lenkrad, eine Heimsteuerung, ein Joystick etc..
  • Das Host-Rechengerät ist üblicherweise ein Desktop- oder Laptop-Rechengerät. Es ist zu beachten, dass das Host-Rechengerät jedoch jedes geeignete Rechengerät sein kann, beispielsweise ein Tablet-Computer, ein Smart-Phone, eine Virutal-Reality- oder Augmented-Reality-Schnittstelle (z. B. mit 2D- oder 3D-Displays), eine holographische Schnittstelle oder dergleichen. Der Fachmann kennt die vielen Variationen, Modifikationen und alternativen Ausführungsformen hiervon.
  • 2 ist ein Blockdiagramm von Beleuchtungseffektmodulen gemäß einer Ausführungsform. Ein Hostgerät 202 weist einen Effektgenerator 206 auf, welcher Effekte an einen Kodierer 208 bereitstellt. Der Kodierer 208 führt die spezialisierte Datenkomprimierung und/oder Datengruppierung durch und stellt die komprimierten und/oder gruppierten Effektdaten einem Funktransmitter 210 bereit. Ein Eingabegerät 204 empfängt die übertragenen komprimierten Effektdaten mit einem Empfänger 212 und stellt die Daten einem Dekodierer 214 bereit. Optional können die komprimierten Daten in einem Speicher/Abspieler 216 zum späteren Abspielen gespeichert werden. Der Dekodierer 214 decodiert und/oder dekomprimiert und reproduziert die originalen Effektdaten aus dem Effektgenerator 206 und stellt die Effekte einem Emittertreiber 218 bereit. Der Emittertreiber 218 stellt einzelnen Emittern (z. B. LEDs) in einem Emitterarray 220 Signale bereit. Die Emitter können neben Tasten, in dem Gehäuse oder an einem anderen Ort an dem Eingabegerät 204 liegen. Die Emitter in dem Emitterarray 220 können in separate Bereiche gruppiert sein, welche von Beleuchtungseffektarray zu Beleuchtungseffektarray variieren können oder gleich bleiben können.
  • 3 ist ein Diagramm, welches unterschiedliche Bereiche eines Emitterarrays gemäß einer Ausführungsform zeigt. Das Emitterarray 220 in 2 ist dargestellt, wobei ein LED-Array, gezeigt als Kreise, unter als Rechtecke gezeigten Tasten liegen. Diverse Beispiele möglicher Bereiche sind gezeigt. Ein Funktionstastenbereich 302 ist in der obersten Reihe gezeigt. Ein Nummernblockbereich 304 ist rechts gezeigt. Ein Pfeiltastenbereich 306 ist unten gezeigt. Weitere Bereiche 308 und 310 sind gezeigt. Die übrigen Emitter für Tasten 312 sind in diesem Beispiel keinem Bereich zugeordnet. Ein Gehäuseemitterbereich 314 ist mit drei Emittern in dem Gehäuse dargestellt, jedoch nicht unter einer Taste. Einzelne Tasten können Bereiche aus jeweils einer Taste sein; physisch getrennte Tasten können gruppiert sein, um einen Bereich zu bilden, beispielsweise die Tasten 316, 318, 320 und 322.
  • Gemäß einer Ausführungsform können unterschiedliche Bereiche innerhalb eines Beleuchtungseffektarrays verwendet werden. Beispielsweise kann für den Bereich 304 ein Komprimierungsschema verwendet werden, welches das Delta zwischen der aktuellen Farbe jedes Emitters und der Farbe aus dem letzten Beleuchtungseffektarray bereitstellt. Es ist zu beachten, dass obwohl in diesem Beispiel und den folgenden Beispielen lediglich die Farbe angesprochen wird, auch die Luminanz oder Helligkeit spezifiziert sein kann. Wenn die Differenz klein ist, kann ein 4-Bit-Delta verwendet werden. Für den Bereich 302 kann ebenfalls ein Delta-Komprimierungsschema verwendet werden, jedoch mit 5-Bit-Deltas, weil die Differenz von mindestens einem Emitter in dem Bereich 302 größer ist als das, was mit 4 Bits repräsentiert werden kann. Der Bereich 308 kann große Änderungen in der Farbe aufweisen, so dass ein Delta-Schema nicht am effizientesten ist. Daher kann für den Bereich 308 keine Komprimierung und stattdessen der volle aktuelle Werte für die Farbe jedes Emitters verwendet werden. Alle Emitter in dem Bereich 310 können die gleiche Farbe aufweisen, die sich stark ändern kann, und daher wird der volle aktuelle Wert verwendet. Statt den vollen aktuellen Wert für jeden Emitter zu spezifizieren, wird jedoch der Bereich 310 mit dem vollen aktuellen Wert für jeden Emitter in dem Bereich 310 identifiziert. Für den Bereich 314 kann das gleiche Komprimierungsschema wie für den Bereich 304 verwendet werden. Die übrigen Tasten können als eine eigene Zone 312 betrachtet werden und es kann keine Komprimierung verwendet werden, wenn es viele Änderungen in der Farbe gibt, oder es kann ein 4-Bit-Datenkomprimierungsschema verwendet werden. Auch andere Komprimierungs- oder Gruppierungsschemen können verwendet werden. Beispielsweise kann für den Bereich 304 stattdessen eine herkömmliche Angabe aus einem Emitterort und einer Farbe für jeden Emitter verwendet werden, wobei eine Lauflängenkodierung für diesen Bereich verwendet wird. Alternativ kann eine Delta-Komprimierung verwendet werden, um das Delta für jeden Emitter in dem Bereich anzugeben, und anschließend kann eine Lauflängenkodierung auf die resultierenden Daten dieses Bereichs angewendet werden.
  • Gemäß einer Ausführungsform werden verlustfreie Komprimierungsschemen verwendet. Die begrenzte Größe des Arrays erlaubt es, solche präziseren Komprimierungsschemen zu verwenden.
  • In einer weiteren Ausführungsform wird, zusätzlich zur Variierung der Komprimierung nach Bereich in einem Beleuchtungseffektarray oder ohne Variierung des Bereichs, der normale Komprimierungsprozess des Spezifizierens eines Pixels, gefolgt von einem Farbwert oder Delta vertauscht. Stattdessen wird eine bestimmte Farbe oder ein Delta spezifiziert, gefolgt von dem Ort der Emitter in dem Emitterarray mit dieser Farbe oder diesem Delta. Dies ist besonders vorteilhaft bei der relativ kleinen Größe des Arrays für ein Tastatur-Eingabegerät. Eine Tastatur kann beispielsweise ein Lichtemitterarray aufweisen, welches ein 6x22-Array ist. Daher spart das Vertauschen Platz. Wenn ein Delta verwendet wird, können unterschiedliche Emitter in eine Liste zusammengefasst werden, welche unterschiedliche Farben haben, jedoch um den gleichen Betrag gegenüber der vorherigen Farbe des letzten Beleuchtungseffektarrays verändert werden. Beispielsweise kann ein Komprimierungsschema mit 4-Bit-Delta und einem Deltawert von -0110 jedem der Emitter 316, 318, 320, 322 und 324 zugeordnet werden. Dies könnte wie folgt ausgedrückt werden: [-0110; 316, 318, 320, 322, 324]. Es ist zu beachten, dass die Kennungsnummern durch den x,y-Ort oder eine Emitter-ID für jeden Emitter in dem Array oder durch eine andere Art der Angabe des Emitterorts, beispielsweise der Zuweisung einer Sequenznummer, ersetzt werden würden. Die Sequenznummer kann von dem Dekodierer 214 der 2 interpretiert werden, um dem Emittertreiber 218 den x,y-Ort zusammen mit dem aktuellen Farbwert (nicht nur das Delta) bereitzustellen. Alternativ kann die Wandlung von dem sequenziellen Ort zu dem x,y-Ort in dem Emittertreiber 218 durchgeführt werden oder eine andere Kombination von Dekodierung und Interpretation kann verwendet werden.
  • In einer weiteren Ausführungsform oder in Kombination mit den obigen Ausführungsformen können aufeinander folgende Beleuchtungseffektarrays unterschiedliche Komprimierungsschemen für das gesamte Beleuchtungseffektarray oder für einen oder mehr Bereiche einsetzen. Beispielsweise kann für den Bereich 304 ein 4-Bit-Delta-Komprimierungsschema in einem ersten Beleuchtungseffektarray verwendet werden, anschließend wird ein 5-Bit-Delta-Komprimierungsschema in einem zweiten Beleuchtungseffektarray verwendet, anschließend wird keine Komprimierung in einem dritten Beleuchtungseffektarray verwendet. Auch für die anderen Bereiche kann der Typ der verwendeten Komprimierung von Beleuchtungseffektarray zu Beleuchtungseffektarray variieren.
  • 4 ist ein Blockdiagramm der Softwaremodule und elektronischen Schaltung zur Übertragungsoptimierung zwischen einer Host-Software und einem Eingabegerät gemäß einer Ausführungsform. Die Host-Software 401 speichert die Beleuchtungsinformation für ein vorheriges Beleuchtungseffektarray in einem Arrayspeicher 402 und die gewünschte Beleuchtungsinformation für das aktuelle Beleuchtungseffektarray in einem Arrayspeicher 404. Nachdem die aktuellen Beleuchtungseffektarraydaten an das Eingabegerät 403 übertragen sind, wird der Inhalt des Arrays 402 mit dem Inhalt des Arrays 404 überschrieben. Die Beleuchtung für das aktuelle Frame umfasst üblicherweise einen Farbwert für jeden Emitter und/oder Bereich. Ein Kodierer 406 vergleicht die Arrays 402 und 404 und bestimmt, in welche Bereiche das Array zu teilen ist, und bestimmt den besten Komprimierungsalgorithmus für jeden Bereich.
  • Der Effektgenerator 206 erzeugt Effekte für ein bestimmtes Modell des Eingabegeräts 403. Eine Vorlage mit dem Emitterlayout (Anzahl der Emitter und Orte für dieses Modell) wird bereitgestellt und Effekte werden für jeden Emitter in dieser Vorlage erzeugt. Gemäß einer Ausführungsform ist jeder Emitter sein eigener Bereich und die Übertragungsoptimierungsanalyse wird für jeden Bereich durchgeführt, wobei Bereiche zusammengefasst werden, in denen Ähnlichkeiten in der Farbe oder Delta-Änderung vorliegen. Eine Bereichsschicht kann der Vorlage für einen bestimmten Beleuchtungseffekt überlagert werden, welche die Emitter in Bereiche gruppiert, beispielsweise wie in 3 gezeigt. Die Vorlage kann die Lichtemitter durch eigene Kennungen oder IDs identifizieren, welche eine alphanumerische Kennung, ein x,y-Ort, ein Bereich oder jede andere Kennung sein kann.
  • Gemäß einer Ausführungsform stellt der Effektgenerator 206 eine Beleuchtungseffektangabe für ein Lichtemitter-Array bereit. Die Beleuchtungseffektangabe können einfach Daten sein, welche eine Beleuchtungseffekteigenschaft für jeden Lichtemitter in dem Array angeben. Alternativ kann die Beleuchtungseffektangabe Anweisungen zum Erzeugen der gewünschten Beleuchtungseffekteigenschaft sein. Die Beleuchtungseffekteigenschaft kann ein Farbwert, eine Luminanz oder ein Intensitätswert oder jeder andere Wert sein. Jeder Lichtemitter kann eine oder mehr Eigenschaften haben, die sich ändern können.
  • Gemäß einer Ausführungsform ist der Effektgenerator 206 ein Videospiel-Programm, welches Farbwerte für jeden Lichtemitter in dem Array erzeugt und es dem Kodierer 406 überlässt, die Beleuchtungseffektangabe aus dem Effektgenerator 206 zu analysieren und eine geeignete Nachricht für das Eingabegerät 403 mit mindestens einem Befehl für eine Vielzahl von Lichtemittereigenschaften zu erzeugen. Beispielsweise bestimmt der Kodierer 406, ob ein komprimierter Wert zu wandeln ist oder nicht. Der Kodierer 406 kann zudem die Bereiche in Abhängigkeit der Gruppierung von Lichtemittern mit ähnlichen Farben oder Änderungen konfigurieren. Alternativ kann der Effektgenerator 206 die Bereiche spezifizieren.
  • Die konfigurierten Bereiche, Komprimierungsverfahren und Farbdaten oder -Deltas werden in ein Beleuchtungseffektarray 408 kombiniert, welches zu dem Nutzereingabegerät 403 übertragen wird. Das Beleuchtungseffektarray umfasst wenigstens einen Beleuchtungseffektarraybefehl, welcher auf eine Vielzahl von Lichtemittern angewendet wird. Das Beleuchtungseffektarray wird empfangen und in einem Speicherarray 410 für ein aktuelles Frame gespeichert. Der Dekodierer 214 wendet die Information in dem Beleuchtungseffektarray auf das vorherige Beleuchtungseffektarray an, welches in einem Speicher 411 für ein vorheriges Frame gespeichert ist. Der Dekodierer 214 wird beispielsweise den Farbwert eines bestimmten Bereichs oder Lichtemitters aus dem Speicher 411 lesen und die Änderungen aus dem Speicher 410 anwenden. Diese Änderungen können sein: Hinzufügen eines Deltas zu den Rot-, Grün- und Blau- (RGB)Werten oder Ersetzen eines oder mehrerer Werte durch einen neuen Wert. Die aktualisierten LED-Werte werden an ein Kalibrierungsframearray 412 gegeben und unter Verwendung eines direkten Speicherzugriffs (direct memory access, DMA) durch das LED-Treiber-IC 414 gelesen und auf das Emitterarray angewendet. In einer alternativen Ausführungsform ist der Speicher 410 ein Arbeitsspeicher oder Puffer des Dekodierers 214 und wird zum temporären Speichern von Teilen des empfangenen Beleuchtungseffektarrays verwendet, während die entsprechenden Änderungen auf die Farbwerte in dem Speicherarray 411 angewendet werden. In noch einer weiteren Ausführungsform sind die Arrays 410, 411 und 412 separate Teile des selben physischen Speicherchips.
  • Im Vergleich zu dem Kodierer 406 in der Host-Software 401 kann der Dekodierer 214 daher sehr einfach sein. Der Dekodierer braucht lediglich das Komprimierungs-und/oder Gruppierungsschema zu lesen und die entsprechenden Daten auf den angegebenen Ort in dem Array des Speichers 411 anzuwenden. Gemäß einer Ausführungsform muss der Dekodierer 214 lediglich bestimmen, ob ein Farbwert zu ersetzen ist oder ein Inkrement zu addieren ist. Gemäß einer Ausführungsform wird ein konstanter Helligkeits- oder Luminanzwert für das Emitterarray verwendet. Die Ausführungsformen der Erfindung eliminieren die Notwendigkeit, dass der Host den letzten Farbwert aus dem Eingabegerät lesen muss, eliminieren die Verwendung von Kanalbandbreite von dem Eingabegerät zu dem Host für Beleuchtungseffekte. Die Beleuchtungseffekte werden nur in eine Richtung übertragen.
  • Gemäß einer Ausführungsform wird ein Helligkeits- oder Luminanzwert modifiziert, der neue Wert oder ein Delta bereitgestellt, ähnlich wie beim Addieren von Farben. Gemäß einer Ausführungsform kann die Komprimierung für jedes Beleuchtungseffektarray separat für rot, grün und blau und Luminanz bestimmt werden. Beispielsweise ändert sich der R-Wert nicht, wohingegen der G-Wert um weniger als ein 4-Bit-Delta geändert werden kann, während der Luminanzwert um ein 5-Bit-Delta geändert werden kann. Separate Bereiche und Gruppierungen können jeweils für R, G, B und Luminanz bereitgestellt werden.
  • Gemäß einer Ausführungsform ist ein RGB-Bereich der einfachste RGBbeleuchtete Gegenstand, der konfiguriert werden kann. Es kann eine gewöhnliche Tastaturtaste, ein beleuchteter Knopf, eine LED oder eine Lichtquelle oder eine Gruppe von Lichtquellen, die gemeinsam elektrisch betrieben werden, sein. Der Index jedes RGB-Bereichs in dem Array ist die RGB-Bereich-ID. Die RGB-Bereiche können auf drei Weisen konfiguriert werden:
    1. 1. Einzeln, durch Spezifizieren jeder RGB-Bereich-ID und eines RGB-Werts;
    2. 2. Nach Gruppen, durch Spezifizieren der Bereich-ID des ersten Bereichs und einer Gruppe zugehöriger RGB-Werte;
    3. 3. Nach Umfang, durch Spezifizieren der Start-RGB-Bereich-ID, Ende-RGB-Bereich-ID und dem einzigen RGB-Wert, der an alle Bereiche in dem Umfang weiterzugeben ist.
  • 4 zeigt ferner die Schaltung eines Geräts 403 gemäß einer Ausführungsform, welches zum Speichern und Abspielen von Beleuchtungseffekten konfiguriert ist. Ein Flash-Speicher 502 ist hinzugefügt, um mehrere Beleuchtungseffektarrays für Beleuchtungseffekte zu speichern. Für das Abspielen werden die gespeicherten Daten durch einen separaten Dekodierer 508 an ein Array 504 für ein aktuelles Frame bereitgestellt und auf ein Kalibrationsframe 506 angewendet, auch unter Verwendung eines Arrays 505 für ein vorheriges Frame, ähnlich dem oben in 4 beschriebenen Prozess zum Streamen von Effekten. Gemäß einer Ausführungsform wird derselbe physische Speicher für die Arrays 410, 411 und 412 verwendet. Der Flash-Speicher 502 speichert die Absolutwerte für das erste Beleuchtungseffektarray, speichert anschließend die Deltas, neue Werte, Komprimierungsschemen und Bereichskombinationen für jedes nachfolgende Schlüsselframe. Daher werden signifikante Einsparungen in dem erforderlichen Speicherplatz erzielt. Beim Abspielen werden originale Beleuchtungseffektarraywerte dem Speicher 506 bereitgestellt, welcher der selbe physische Speicher wie das Array 412 sein kann. Danach bezieht der Dekodierer 508 diese Werte und wendet etwaige Deltas oder neue Werte aus den nächsten Beleuchtungseffektarraydaten gemäß dem ausgewählten Komprimierungsschema an. Gemäß einer Ausführungsform sind die Dekodierer 214 und 508 der selbe Dekodierer.
  • In jedem Beleuchtungseffektarray ist ein Zeitstempel enthalten. In einem Streaming-Modus kann der Host darauf verzichten, ein neues Beleuchtungseffektarray zu senden, wodurch Übertragungsplatz eingespart wird, wenn die Farbwerte innerhalb einer bestimmten Beleuchtungseffektarrayzeitdauer sich nicht ändern. Alternativ kann ein Befehl übertragen werden, welcher angibt, dass keine Änderung vorliegt, sodass die Eingabegeräte wissen, dass keine Übertragung verloren gegangen ist. Gemäß einer Ausführungsform ist dieser Befehl ein Umfang aller Bereiche mit der Änderung Null. In einem Aufnahme- und Abspiel-Modus können die gleichen keine-Änderung-Befehle für jede Zeitdauer aufgenommen werden. Alternativ kann der Dekodierer den Zeitstempel des nächsten gespeicherten Beleuchtungseffektarrays auswerten und bestimmen, dass für eine Zeitdauer keine Änderung erforderlich ist.
  • Gemäß einer Ausführungsform wird eine Kombination aus Streamen und Speichern von Effekten verwendet. Eine Reihe von Zeitschlitzen mit gestreamten Daten kann mit einem Auslöser enden, welcher zum Abspielen eines in dem peripheren Eingabegerät gespeicherten Effektmusters dient. Während das gespeicherte Effektmuster abgespielt wird, ist lediglich eine geringe oder keine Übertragung erforderlich. Der Zeitpunkt der Verwendung von gespeicherten Effekten kann beispielsweise mit Zeiten synchronisiert werden, in denen viele Eingaben durch ein Gamingprogramm erfolgen. Die Zeitpunkte können durch das Gamingprogramm eingestellt werden oder der Kodierer 406 kann die Zeitschlitze bestimmen, in denen weniger Daten gesendet werden, basierend auf Eingaben, die von dem peripheren Eingabegerät empfangen werden. Beispielsweise werden gespeicherte Effekte abgespielt, wenn Auslösereingabesignale von dem peripheren Eingabegerät gesendet werden.
  • 5 ist ein Flussdiagramm des Bestimmens des anzuwendenden Komprimierungsschemas gemäß einer Ausführungsform. Zuerst werden von dem Effektgenerator die Konfigurationsdaten empfangen (Schritt 602). Die vorherigen Konfigurationsarraydaten werden aus dem Speicher bezogen (604). Konfigurationsänderungen (Δ(Delta) = aktuell - vorheriges) zwischen dem aktuellen Konfigurationsarray und dem vorherigen Konfigurationsarray werden für alle Eingabegerätbereiche bestimmt (606). Wenn das Delta 0 ist (608), muss keine Konfigurationsaufforderung für diese Bereiche erzeugt werden (610). Wenn der Absolutwert des Deltas kleiner als 8, was durch eine 4-Bit-Kodierung angegeben werden kann, ist (612), wird eine Konfigurationsanforderung mit einer 4-Bit-Delta-Kodierung ausgewählt (614). Wenn der Absolutwert des Deltas 8 oder mehr ist, jedoch kleiner als 16 ist (616), kann eine 5-Bit-Delta-Kodierung verwendet werden (618). Wenn das Delta 16 oder mehr ist, wird der Absolutwert der neuen Farbe übertragen. Dies kann auf zwei Weisen (622, 624) durchgeführt werden in Abhängigkeit davon, ob Δ ungleich 0 ist. Wenn Δ gleich 0 ist, muss der RGB-Bereich nicht adressiert werden; wenn dies jedoch in der Mitte einer Sequenz von aufeinander folgenden RGB-Bereichen, die zu konfigurieren sind, ist, ist der 0-Wert für das Delta valide. Am Ende dieses Prozesses hat jeder Bereich einen Konfigurationswert, der entweder Null, ein 4-Bit-Delta, ein 5-Bit-Delta oder ein neuer Absolutwert der Farbe ist. Alternativ können andere Arten zum Kodieren des Deltas verwendet werden, beispielsweise unter Verwendung von mehr oder weniger Bits. Zudem können andere Arten zum Gruppieren der RGB-Bereiche verwendet werden, beispielsweise nicht aufeinander folgende, sondern willkürliche Gruppierungen, welche durch einen Konfigurationszustand definiert kein können und auf welche durch einen einzigen Gruppenindex unter Verwendung eines neuen Befehls zugegriffen werden kann. Der Prozess wird jeweils für R, G und B für jeden Emitter in dem Array durchgeführt. Alternativ können andere Farbschemen als RGB verwendet werden, beispielsweise YUV, abhängig von dem Typ der verwendeten Emitter.
  • 6 und 7 sind Flussdiagramme, welche die Wahl zwischen Umfangkodierung und Einzelkodierung gemäß einer Ausführungsform zeigen. Nachdem die Konfigurationswerte wie in 5 bestimmt sind, wird ein Satz von Bereichen bestimmt (702), welche den gleichen Konfigurationswert haben. Beispielsweise haben mehrere aufeinander folgende Bereiche einen Konfigurationswert von 0 oder ein Delta von 0110, etc.. Für diese aufeinander folgenden Bereiche wird für die Konfigurationsaufforderung ein Bereichsumfang eingestellt (704). Wie in 7 gezeigt, werden dann nicht aufeinander folgende Bereiche mit dem selben Konfigurationswert bestimmt (802). Die Kodierung wird durchgeführt, indem der Konfigurationswert (z. B. 4-Bit-Delta 1001), gefolgt von der Liste von Bereichen mit diesem Wert spezifiziert wird (804).
  • 8 ist ein Diagramm, welches die Einsparungen von Zeitschlitzplätzen gemäß einer Ausführungsform zeigt. Gemäß einer Ausführungsform wird ein Funkkanal zwischen dem Host und dem Eingabegerät verwendet, beispielsweise eine bestimmte RF-Frequenz oder -Band (z. B. 2,4 GHz). Die Beleuchtungseffekte werden zeitlich gemultiplext und auf einen Teil jeder Zeitperiode begrenzt, um eine Übertragung von Eingabedaten von dem Eingabegerät (z. B. Tastenbetätigungen, Mausbewegungen, etc.) zu ermöglichen. Gemäß einer Ausführungsform wird jedes Beleuchtungseffektarray über mehrere Zeitschlitze übertragen, wobei wenigstens 50 % jedes Zeitschlitzes für Eingabegerätübertragungen zu dem Computer reserviert sind. Gemäß einer Ausführungsform werden die RGB-Konfigurationsnachrichten von einem PC zu dem Gerät in der Bestätigungsnachricht von dem PC auf die Mauseingabedatennachrichten übertragen. Daher beträgt die maximale Anzahl von RGB-Konfigurationsnachrichten pro Mauseingabedatennachricht 1.
  • 8 zeigt grafisch Anforderungen 1 (902) bis 23 (904) ohne Komprimierung. In dem Beispiel nach 8 wird angenommen, dass eine maximale Anforderungsnutzlast 16 Bytes beträgt. Ohne Komprimierung beträgt jeder RGB-Bereich 3 Bytes. Dies ergibt ein Maximum von 5 Bereichen pro Aufforderung, wenn keine Komprimierung verwendet wird. Eine typische Tastatur hat 114 RGB-Bereiche und dies erfordert 114/5 oder 23 Aufforderungsnachrichten, um ein Beleuchtungseffektarray von Effektdaten bereitzustellen. Bei 1 ms pro Aufforderung erfordert dies 23 ms, um ein Beleuchtungseffektarray zu senden.
  • Unter Verwendung einer 4-Bit-Delta-Komprimierung gemäß einer Ausführungsform der Erfindung wird der Platz halbiert und es werden lediglich 12 Anfragen benötigt (906, 908). Bei einer 4-Bit-Delta-Komprimierung (Delta < 8 für alle RGB-Bereiche) ermöglicht dies 10 RGB-Bereiche pro Aufforderung. Unter Verwendung der gleichen Annahmen benötigt dies 114/10 oder 12 Aufforderungsnachrichten pro Frame. Bei 1 ms pro Aufforderung benötigt dies lediglich 12 ms, um ein Beleuchtungseffektarray zu senden, eine Reduktion von 50%. Es besteht ein zusätzlicher Overhead zum Angeben der verwendeten unterschiedlichen Komprimierungsschemen und der verschiedenen Gruppen von Bereichen. Dies wird jedoch ausgeglichen, da ein bestimmter Wert lediglich einmal spezifiziert werden muss, anschließend die betroffenen Emitter aufgelistet sind, statt den Wert separat für jeden Emitter aufzulisten.
  • Ausführungsformen der vorliegenden Erfindung minimieren eine Bandbreite zum Übertragen von Beleuchtungseffekten (Streamen oder Speichern), wodurch der Einfluss auf die Leistungsfähigkeit einer RF-Verbindung und der Energieverbrauch (Batterielebensdauer) minimiert werden. Die Größe von Beleuchtungseffekten, die in einem Eingabegerät gespeichert sind, wird minimiert, wodurch längere Effekte mit derselben Speichergröße ermöglicht werden. Die in dem Gerät gespeicherten Effekte können nahezu die gleichen sein als diejenigen, die gestreamt werden. Daher bestehen der Abspieler und der Dekodierer in dem Gerät aus exakt dem selben Firmwaremodul. Zudem reduziert das Design den Entwicklungsaufwand, optimiert eine Anwendunsflashspeichergröße und reduziert das Risiko von Softwarefehlern.
  • Ausführungsformen der vorliegenden Erfindung stellen eine Komprimierung auf Softwarelevel bereit, um Übertragungen und Speicherungen zu optimieren. Die Logik des Eingabegeräts wird vereinfacht, weil in dem Eingabegerät keine Notwendigkeit zur weiteren Kodierung/Dekodierung einer Komprimierung besteht. Unter Verwendung von einer geringeren Bandbreite wird die Wahrscheinlichkeit einer RF-Kollision mit einer Übertragung aus einem anderen 2,4 GHz-Gerät reduziert. Durch Senden kleiner Daten in jedem Zeitschlitz werden Kollisionen grundsätzlich vermieden. Bei einer Kollision kann diese detektiert werden (z. B. mit Paritätsbits und -bytes) und die Daten können erneut gesendet werden.
  • Energiesparmodus
  • Gemäß einer Ausführungsform ist ein Energiesparmodus für die Beleuchtungseffekte bereitgestellt. Energie kann eingespart werden, indem der Empfänger keine Beleuchtungseffekte empfangen und bestätigen muss. Stattdessen können gespeicherte Effekte abgespielt werden. Energie für gespeicherte Effekte kann eingespart werden, indem die Anzahl oder Häufigkeit von Farbübergängen reduziert wird, die Luminanz oder Helligkeit der Lichtemitter reduziert wird oder Farben gewählt werden, welche weniger Luminanz und daher weniger Energie erfordern. Zudem kann lediglich eine Untermenge der Lichtemitter erleuchtet werden, beispielsweise wichtige Bereiche, jeder andere Lichtemitter, etc..
  • Modifikationen von Ausführungsformen
  • Einige Ausführungsformen umfassen elektronische Komponenten, beispielsweise Mikroprozessoren, Speicher und Arbeitsspeicher, welche Computerprogrammanweisungen in einem computerlesbaren Speichermedium speichern. Viele der in dieser Beschreibung beschriebenen Merkmale können als Prozesse implementiert sein, welche als ein Satz von Programmanweisungen angegeben sind, die auf einem computerlesbaren Speichermedium gespeichert sind. Wenn diese Programmanweisungen durch eine oder mehr Prozessierungseinheiten ausgeführt werden, veranlassen sie die Prozessierungseinheit(en) dazu, diverse in den Programmanweisungen angegebene Operationen durchzuführen. Beispiele von Programmanweisungen oder Computercode umfassen Maschinencode, so wie er durch einen Compiler erzeugt wird, und Dateien, welche Codes höheren Levels enthalten, der durch einen Computer, eine elektronische Komponente oder einen Mikroprozessor unter Verwendung eines Interpreters ausgeführt wird.
  • Es ist zu beachten, dass der Computer 110, das Hostgerät 202, die Tastatur 140 und das Eingabegerät 204 Beispiele sind und dass Variationen und Modifikationen möglich sind. Im Zusammenhang mit den Ausführungsformen der vorliegenden Erfindung verwendete Computersysteme können andere Fähigkeiten haben, die hierin nicht speziell angegeben sind. Während das Hostgerät 202 und das Eingabegerät 204 mit Bezug zu bestimmten Blöcken beschrieben sind, ist ferner zu beachten, dass diese Blöcke zur Vereinfachung der Beschreibung definiert wurden und nicht dazu gedacht sind, eine bestimmte physische Anordnung von Komponententeilen zu implizieren. Beispielsweise können unterschiedliche Blöcke in dem selben Gebäude, dem selben Serverrack oder auf dem selben Motherboard angeordnet sein, müssen dies aber nicht. Ferner müssen die Blöcke nicht physisch verschiedenen Komponenten entsprechen. Blöcke können dazu konfiguriert sein, diverse Operationen durchzuführen, beispielsweise durch Programmierung eines Prozessors oder Bereitstellen einer geeigneten Steuerschaltung; und diverse Blöcke können oder können nicht rekonfigurierbar sein, abhängig davon, wie die ursprüngliche Konfiguration erhalten wird. Ausführungsformen der vorliegenden Erfindung können in einer Vielzahl von Vorrichtungen realisiert sein, welche elektronische Geräte umfassen, die unter Verwendung einer beliebigen Kombination von Schaltungen und Software implementiert sind.
  • Während die Erfindung mit Bezug zu bestimmten Ausführungsformen beschrieben wurde, versteht der Fachmann, dass zahlreiche Modifikationen möglich sind. Ausführungsformen der Erfindung können unter Verwendung einer Vielzahl von Computersystemen und Kommunikationstechnologien realisiert werden, welche bestimmte hierin beschriebene Beispiele umfassen können, aber darauf nicht beschränkt sind.
  • Ausführungsformen der vorliegenden Erfindung können unter Verwendung einer beliebigen Kombination von dedizierten Komponenten und/oder programmierbaren Prozessoren und/oder anderen programmierbaren Geräten realisiert sein. Die diversen hierin beschriebenen Prozesse können auf dem selben Prozessor oder verschiedenen Prozessoren in beliebiger Kombination implementiert sein. Wo Komponenten als dazu konfiguriert, bestimmte Operationen durchzuführen, beschrieben sind, kann eine solche Konfiguration erreicht werden, beispielsweise durch das Design von elektronischen Schaltungen zum Durchführen der Operation, durch programmierbare elektronische Schaltungen (z. B. Mikroprozessoren) zum Durchführen der Operation oder jeglicher Kombination davon. Während vorangehen beschriebene Ausführungsformen auf bestimmte Hardware- und Software-Komponenten Bezug nehmen können, versteht der Fachmann ferner, dass verschiedene Kombinationen von Hardware- und/oder Software-Komponenten auch hierzu verwendet werden können und dass bestimmte Operationen, die als in Hardware implementiert beschrieben sind, auch in Software implementiert sein können und vice versa.
  • Computerprogramme, welche diverse Merkmale der vorliegenden Erfindung verkörpern, können codiert und auf diversen computerlesbares Speichermedien gespeichert sein; geeignete Medien umfassen magnetische Disketten oder Bänder, optische Speichermedien, beispielsweise CD (compact disc) oder DVD (digital versital disc), Flash-Speicher und andere nicht-flüchtige Medien. Computerlesbare Medien, auf welchen der Programmcode codiert ist, können mit einem kompatiblen elektronischen Gerät gebündelt sein; oder der Programmcode kann separat von dem elektronischen Gerät bereitgestellt sein (z. B. über einen Download aus dem Internet oder als separat verpacktes computerlesbares Speichermedium).
  • Wie beschrieben, kann das erfindungsgemäße Verfahren die Implementierung einer oder mehr Funktionen, Prozesse, Operationen oder Verfahrensschritte umfassen. In einigen Ausführungsformen sind die Funktionen, Prozesse, Operationen oder Verfahrensschritte als Ergebnis des Ausführens eines Satzes von Anweisungen oder Softwarecode durch ein entsprechend programmiertes Rechengerät, Mikroprozessor, Datenprozessor oder dergleichen implementiert. Der Satz von Anweisungen oder Softwarecode kann in einem Speicher oder einer anderen Form von Datenspeicherelement gespeichert sein, auf welche das Rechengerät, der Mikroprozessor, etc. zugreifen kann. In anderen Ausführungsformen können die Funktionen, Prozesse, Operationen oder Verfahrensschritte durch Firmware oder dedizierte Prozessoren, integrierte Schaltungen, etc. implementiert sein.
  • Es ist zu beachten, dass die wie oben beschriebene vorliegende Erfindung in Form einer Steuerlogik unter Verwendung von Computersoftware in modularer oder integrierter Form implementiert sein kann. Basierend auf der Offenbarung und Lehre, die hierin bereitgestellt ist, sind dem Fachmann andere Wege und/oder Verfahren zum Implementieren der vorliegenden Erfindung unter Verwendung von Hardware und einer Kombination von Hardware und Software bekannt.
  • Alle der Softwarekomponenten oder Funktionen, die in dieser Anmeldung beschrieben sind, können als auf einem Prozessor auszuführender Softwarecode unter Verwendung einer geeigneten Computersprache, beispielsweise Java, C++ oder Perl, unter Verwendung von beispielsweise konventioneller oder objektorientierter Technik implementiert sein. Der Softwarecode kann als einer Reihe von Anweisungen oder Befehlen auf einem computerlesbaren Medium, beispielsweise einem Direktzugriffsspeicher (RAM), einem nur-lesbaren Speicher (ROM), einem magnetischen Medium, beispielsweise einer Festplatte oder einer Floppy-Diskette, oder einem optischen Medium, beispielsweise einer CD-ROM gespeichert sein. Jegliche solche computerlesbaren Medien können auf oder innerhalb einer einzigen Rechenvorrichtung vorhanden seien und können auf oder innerhalb verschiedener Rechenvorrichtungen innerhalb eines Systems oder Netzwerks vorhanden sein.
  • Während bestimmte beispielhafte Ausführungsform im Detail beschrieben und in den beiliegenden Zeichnungen gezeigt sind, ist zu beachten, dass solche Ausführungsformen lediglich Beispiele sind und nicht dazu gedacht sind, die breite Erfindung zu beschränken, und dass diese Erfindung nicht auf die bestimmten Anordnungen und Konstruktionen, die gezeigt und beschrieben sind, beschränkt ist, weil dem Fachmann diverse andere Modifikationen bekannt sind. Beispielsweise können die Speicherarrays 302 und 404 unterschiedliche Teile des selben Speichers oder verschiedene Speicher sein. Der Decodierungsblock 214 kann ein einziger Dekodierer oder separate Dekodierer zum Streamen und Aufnehmen und Abspielen sein. Die Effekte können haptisch sein und von der Beleuchtung verschieden sein.
  • Obwohl die Erfindung mit Bezug zu bestimmten Ausführungsformen beschrieben wurde, ist zu beachten, dass die Erfindung dazu gedacht ist, alle Modifikationen und äquivalente innerhalb des Umfangs der folgenden Ansprüche abzudecken.
  • Zusammenfassend stellt die Erfindung ein Verfahren und ein System zum drahtlosen Streamen von Beleuchtungseffektdaten an ein peripheres Eingabegerät in Beleuchtungseffektarrays bereit. Ein aktuelles Beleuchtungseffektarray wird mit einem vorherigen Beleuchtungseffektarray verglichen und der Vergleich wird auf einen oder mehr Bereiche von Lichtemittern in dem Beleuchtungseffektarray angewendet.

Claims (20)

  1. Verfahren, umfassend: bei einem Host: Speichern einer Lichtemittervorlage für ein peripheres Eingabegerät, wobei die Lichtemittervorlage eine Kennung für jeden Lichtemitter in einem Array von Lichtemittern in dem peripheren Eingabegerät aufweist; Analysieren einer Beleuchtungseffektangabe für das Array von Lichtemittern; Bestimmen, aus der Beleuchtungseffektangabe, jeglicher Änderung einer Eigenschaft für jeden Lichtemitter in dem Array für eine Übergangszeit; Assoziieren der Änderung der Eigenschaft mit der entsprechenden Kennung für jeden Lichtemitter in dem Array von Lichtemittern; und, für jede Übergangszeit in dem Beleuchtungseffekt, Erzeugen einer Beleuchtungseffektarraynachricht zur drahtlosen Übertragung an das periphere Gerät, wobei die Beleuchtungseffektarraynachricht einen einzigen Beleuchtungseffektarraybefehl für eine Vielzahl der Lichtemitter erzeugt; bei dem peripheren Eingabegerät mit dem Array von Lichtemittern: Speichern, in einem Speicher, eines Arrays von Lichtemittereigenschaften mit mindestens einer Lichtemittereigenschaft für jeden Lichtemitter in dem Array von Lichtemittern; Dekodieren des Beleuchtungseffektarraybefehls, um eine Änderung der Lichtemittereigenschaft für jeden Lichtemitter in dem Array von Lichtemittern zu bestimmen; Anwenden der Änderung der Lichtemittereigenschaft auf die Lichtemittereigenschaften in dem Array von Lichtemittereigenschaften in dem Speicher; Steuern der Lichtemittereigenschaften der Lichtemitter gemäß den Lichtemittereigenschaften in dem Speicher; und Ändern der Vielzahl von Lichtemittern, die auf die Lichtemittereigenschaften der Lichtemitter in dem Speicher reagieren, gemäß dem Beleuchtungseffektarraybefehl.
  2. Verfahren nach Anspruch 1, wobei die Beleuchtungseffektarraynachricht eine Vielzahl von separaten Komprimierungsschemen bereitstellt und wobei eines der separaten Komprimierungsschemen eine bestimmte Farbe einmal in Kombination mit den Lichtemitterkennungen aller Lichtemitter mit dieser bestimmten Farbe angibt.
  3. Verfahren nach Anspruch 1 oder 2, ferner umfassend Verwenden separater Komprimierungsschemen für unterschiedliche Bereiche in dem Beleuchtungseffektarray für mindestens einen der Übergänge.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei aufeinander folgende Beleuchtungseffektarrays unterschiedliche Komprimierungsschemen einsetzen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Beleuchtungseffektarraynachricht eine Vielzahl von Komprimierungsschemen umfasst, welche ein n-Bit-Delta für eine erste Gruppe von Lichtemitterkennungen, ein m-Bit-Delta für eine zweite Gruppe von Lichtemitterkennungen und keine Komprimierung für eine dritte Gruppe von Lichtemitterkennungen umfassen.
  6. Verfahren nach einem der Ansprüche 1 bis 5, ferner umfassend: Beziehen eines Farbwerts für jede Lichtemitterkennung aus einem ersten Array in einem Speicher eines Hosts, welches einem vorherigen Beleuchtungseffektarray entspricht; Beziehen eines Farbwerts für jede Lichtemitterkennung aus einem zweiten Array in dem Speicher des Hosts, welches einem aktuellen Beleuchtungseffektarray entspricht; Vergleichen der Farbwerte aus dem vorherigen und dem aktuellen Beleuchtungseffektarray für jede Lichtemitterkennung in einem Übertragungsmodul in dem Host; und Erzeugen eines Beleuchtungseffektarrays zur drahtlosen Übertragung zu dem peripheren Gerät unter Verwendung einer Vielzahl von Komprimierungsschemen.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die Farbwerte rot (R), grün (G) und blau (B) sind, wobei entweder der Farbwert oder ein Farbwertdelta für jeweils R, G und B für jede Lichtemitterkennung spezifiziert wird.
  8. Verfahren nach Anspruch 7, wobei RGB-Bereiche spezifiziert sind durch eine Kombination von mindestens zwei aus: einzeln, Spezifizieren jeder RGB-Bereich-ID und eines RGB-Werts; nach Gruppen, Spezifizieren einer Bereich-ID eines ersten Bereichs und einer Gruppe von entsprechenden RGB-Werten; und nach Umfang, Spezifizieren einer Start-RGB-Bereich-ID, einer Ende-RGB-Bereich-ID und einem einzigen RGB-Wert, der an alle Bereiche in dem Umfang weiterzugeben ist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei das periphere Eingabegerät ein Eingabegerät mit mindestens einer Taste ist, wobei mindestens ein Lichtemitter des Arrays von Lichtemittern mit der mindestens einen Taste assoziiert ist.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei mindestens eine Beleuchtungseffektarraynachricht zur drahtlosen Übertragung zu dem peripheren Gerät umfasst: eine Angabe von einzelnen Lichtemitterkennungen und entsprechenden einzelnen Lichtemitterfarbwerten; eine Angabe von aufeinander folgenden Lichtemitterkennungen und entsprechenden Farbwertdeltas; und eine Angabe eines Bereichs von Lichtemitterkennungen und entsprechenden Farbwertdeltas.
  11. System, umfassend: ein peripheres Eingabegerät mit einem Array von Lichtemittern; ein nicht-flüchtiges, computerlesbares Medium, welches Anweisungen enthält, die einen Host veranlassen zum: Bereitstellen einer Lichtemittervorlage für ein peripheres Eingabegerät, wobei die Lichtemittervorlage eine Kennung für jeden Lichtemitter in einem Array von Lichtemittern in dem peripheren Eingabegerät aufweist; Analysieren einer Beleuchtungseffektangabe für das Array von Lichtemittern; Bestimmen, aus der Beleuchtungseffektangabe, einer Reihe von Farbübergängen für jeden Lichtemitter in dem Array für eine Übergangszeit; Assoziieren der Reihe von Farbübergängen mit der entsprechenden Kennung für jeden Lichtemitter in dem Array von Lichtemittern; und, für jede Übergangszeit in dem Beleuchtungseffekt, Erzeugen einer Beleuchtungseffektarraynachricht zur drahtlosen Übertragung an das periphere Gerät, wobei die Beleuchtungseffektarraynachricht einen einzigen Beleuchtungseffektarraybefehl für eine Vielzahl der Lichtemitter erzeugt; wobei das periphere Eingabegerät umfasst: das Array von Lichtemittern; einen Funkempfänger; einen Peripheres-Eingabegerät-Speicher, welcher Farbwerte für jeden Lichtemitter in dem Array von Lichtemittern speichert; einen Beleuchtungseffektdekodierer, welcher mit dem peripheren Speicher und dem Funkempfänger betriebsmäßig verbunden ist, wobei der Beleuchtungseffektdekodierer dazu konfiguriert ist, die Beleuchtungseffektarraynachricht zu dekodieren und Änderungen des Farbwerts auf die Farbwerte in dem Array von Farbwerten in dem Peripheres-Eingabegerät-Speicher anzuwenden; und einen Lichtemittertreiber, welcher mit dem peripheren Speicher und dem Array von Lichtemittern verbunden ist, um die Farbe der Farbemitter unter Verwendung der Farbwerte in dem Peripheres-Eingabegerät-Speicher zu steuern.
  12. System nach Anspruch 11, wobei das periphere Eingabegerät ferner umfasst: ein zweites Speicherarray zum Speichern eines empfangenen Beleuch tungseffektarrays.
  13. System nach Anspruch 11 oder 12, wobei das periphere Eingabegerät ein Eingabegerät mit mindestens einer Taste ist, wobei mindestens ein Lichtemitter des Arrays von Lichtemittern mit der mindestens einen Taste assoziiert ist.
  14. System nach Anspruch 13, wobei das periphere Eingabegerät eine Tastatur, eine Computermaus, ein Trackball, ein Gamepad, ein Joystick, ein Lenkrad oder eine Fernbedienung ist.
  15. System nach einem der Ansprüche 11 bis 14, wobei die Beleuchtungseffektarraynachricht eine Vielzahl von Komprimierungsschemen bereitstellt und wobei eines der separaten Komprimierungsschemen eine bestimmte Farbe einmal in Kombination mit den Lichtemitterkennungen aller Lichtemitter mit dieser bestimmten Farbe angibt.
  16. System nach einem der Ansprüche 11 bis 15, wobei sich die Zusammensetzung der Lichtemitter in mindestens zwei Bereichen nach mindestens einem der Übergänge ändert.
  17. System nach einem der Ansprüche 11 bis 16, wobei für mindestens zwei Bereiche in einem Beleuchtungseffektarray verschiedene Komprimierungsschemen verwendet werden.
  18. System nach einem der Ansprüche 11 bis 17, wobei aufeinander folgende Beleuchtungseffektarrays unterschiedliche Komprimierungsschemen einsetzen.
  19. Peripheres Eingabegerät, umfassend: ein Gehäuse; ein Array von in dem Gehäuse montierten Lichtemittern; einen Funkempfänger; einen ersten Eingabegerätspeicher, welcher aktuelle Lichtemittereigenschaften für das Array von Lichtemittern speichert; einen zweiten Eingabegerätspeicher zum Speichern eines empfangenen Beleuchtungseffektarraybefehls für eine Vielzahl der Lichtemitter; einen Beleuchtungseffektdekodierer, welcher mit dem ersten Eingabegerätspeicher und dem zweiten Eingabegerätspeicher betriebsmäßig verbunden ist, wobei der Beleuchtungseffektdekodierer dazu konfiguriert ist, den empfangenen Befehl auf die Lichtemittereigenschaften in dem ersten Eingabegerätspeicher anzuwenden; und einen Lichtemittertreiber, welcher mit dem ersten Eingabegerätspeicher und dem Array von Lichtemittern verbunden ist.
  20. Eingabegerät nach Anspruch 19, wobei der erste und der zweite Eingabegerätspeicher beide Teil eines einzigen physischen Speichers sind und das Eingabegerät eine Tastatur, eine Computermaus, ein Trackball, ein Gamepad, ein Joystick, ein Lenkrad oder eine Fernbedienung ist, wobei der bestimmte Lichtbereich mindestens einen Lichtemitter umfasst.
DE102019110886.1A 2018-07-16 2019-04-26 Bandbreitenoptimierung zum Streamen von Beleuchtungseffekten Ceased DE102019110886A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/036,753 2018-07-16
US16/036,753 US10212793B1 (en) 2018-07-16 2018-07-16 Bandwidth optimization for streaming lighting effects

Publications (1)

Publication Number Publication Date
DE102019110886A1 true DE102019110886A1 (de) 2020-01-16

Family

ID=65322903

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019110886.1A Ceased DE102019110886A1 (de) 2018-07-16 2019-04-26 Bandbreitenoptimierung zum Streamen von Beleuchtungseffekten

Country Status (3)

Country Link
US (2) US10212793B1 (de)
CN (1) CN110794972B (de)
DE (1) DE102019110886A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI682687B (zh) * 2018-12-04 2020-01-11 聯陽半導體股份有限公司 鍵盤中發光二極體的驅動方法與驅動裝置
USD970502S1 (en) * 2019-03-22 2022-11-22 Logitech Europe S.A. Keyboard
USD948508S1 (en) * 2019-05-07 2022-04-12 Logitech Europe S.A. Keyboard
US11086503B2 (en) * 2019-08-26 2021-08-10 Dell Products L.P. Reflecting on-screen visuals to hardware lighting

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116921A1 (de) * 2014-10-07 2016-05-04 Logitech Europe S.A. EPFL-Quartier de L'Innovation System und Verfahren zur Software- und Peripheriegerätintegration
US20170052909A1 (en) * 2015-08-19 2017-02-23 Logitech Europe S.A. Synchronization of computer peripheral effects
US20180124895A1 (en) * 2016-11-02 2018-05-03 LIFI Labs, Inc. Lighting system and method

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164819A (en) * 1991-04-03 1992-11-17 Music John D Method and system for coding and compressing color video signals
EP1922905B1 (de) * 2005-08-17 2012-07-04 Koninklijke Philips Electronics N.V. Digital gesteuertes beleuchtungssystem
US8033686B2 (en) * 2006-03-28 2011-10-11 Wireless Environment, Llc Wireless lighting devices and applications
CN1949949B (zh) * 2006-08-23 2010-11-10 中国科学院计算技术研究所 一种led灯光无线控制系统
CN101193140A (zh) * 2006-11-22 2008-06-04 乐金电子(昆山)电脑有限公司 移动通信终端机的背景灯亮度调节方法
TWI450632B (zh) * 2008-02-18 2014-08-21 Interactive LED display system for entertainment
US9131356B2 (en) * 2010-04-22 2015-09-08 Zipit Wireless, Inc. System and method for administration and operation of one or more mobile electronic communications devices
HK1186911A2 (en) * 2013-10-17 2014-03-21 Heng Yu Technology Hong Kong Ltd An electronic device and its control method
US9933903B2 (en) * 2014-10-02 2018-04-03 Semiconductor Energy Laboratory Co., Ltd. Input device and input/output device
CN106020507B (zh) * 2016-06-29 2019-09-24 左莉 计算机输入设备组合件
CN207008557U (zh) * 2017-01-13 2018-02-13 深圳市中易腾达科技股份有限公司 一种基于手机app控制的有线/蓝牙ble的键盘和鼠标
CN107168543A (zh) * 2017-05-25 2017-09-15 北京小米移动软件有限公司 键盘控制方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015116921A1 (de) * 2014-10-07 2016-05-04 Logitech Europe S.A. EPFL-Quartier de L'Innovation System und Verfahren zur Software- und Peripheriegerätintegration
US20170052909A1 (en) * 2015-08-19 2017-02-23 Logitech Europe S.A. Synchronization of computer peripheral effects
US20180124895A1 (en) * 2016-11-02 2018-05-03 LIFI Labs, Inc. Lighting system and method

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Wikipedia: Delta-Kodierung. Version vom 14.03.2018. URL: https://de.wikipedia.org/w/index.php?title=Delta-Kodierung&oldid=174989000 [recherchiert am 04.07.2019]. *
Wikipedia: Streaming Media. Version vom 11.04.2018. URL: https://de.wikipedia.org/w/index.php?title=Streaming_Media&oldid=176354896 [recherchiert am 03.07.2019]. *
Wikipedia: Streaming-Codec. Version vom 07.02.2018. URL: https://de.wikipedia.org/w/index.php?title=Streaming-Codec&oldid=173761630 [recherchiert am 03.07.2019]. *
Wikipedia: Taste. Version vom 03.05.2018. URL: https://de.wikipedia.org/w/index.php?title=Taste&oldid=177111436 [recherchiert am 12.07.2019]. *

Also Published As

Publication number Publication date
CN110794972A (zh) 2020-02-14
US10499479B1 (en) 2019-12-03
US10212793B1 (en) 2019-02-19
CN110794972B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
DE102019110886A1 (de) Bandbreitenoptimierung zum Streamen von Beleuchtungseffekten
DE3710218C2 (de)
EP0230437B1 (de) Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchführung des verfahrens
DE102008046493A1 (de) Multimedia-Anordnung mit einer programmierbaren Universal-Fernsteuerung und Verfahren zum Programmieren einer Fernsteuerung
DE2504627A1 (de) Rechenmaschine
DE102018118362A1 (de) Systeme und verfahren zur effizienten und verlustfreien komprimierung von erfassten rohbilddaten
DE102004003089A1 (de) Datenkompression
DE102019127726A1 (de) Für fernarbeitsplatz-anwendungen geeignetes streaming individueller anwendungsfenster
DE102005055645A1 (de) Multimedia Computersystem und Verfahren
DE2540823C2 (de) Elektronische Datenverarbeitungsanlage
DE112012005557B4 (de) Erzeugen eines Code-Alphabets von Symbolen zum Erzeugen von Codewörtern für Wörter, die mit einem Programm verwendet werden
CN103841424B (zh) 随机存取存储器中压缩数据的系统及方法
DE102020111960A1 (de) Dynamische vergabe von rechenressourcen zur erzeugung von höhepunkten in cloudspiel-systemen
DE2607842A1 (de) System zur textausgabe und -anzeige
DE102021121333A1 (de) Parallele dekomprimierung von komprimierten datenströmen
DE102019107670A1 (de) Entspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE202016008959U1 (de) Elektronische Vorrichtung, Fernbedienungsvorrichtung und elektronisches System
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2365569A1 (de) Elektronischer rechner
DE2538978C2 (de)
DE102011100936A9 (de) Techniken zum Speichern und Abrufen von Pixeldaten
EP3424200A1 (de) Kennungscodierungseinrichtung und kennungsdecodierungseinrichtung zur datenverteilung in netzwerken sowie derartige einrichtungen aufweisende netzwerkelemente
WO2002056244A1 (de) Schnittstelle zur erzeugung von prozess- und koordinationseingaben
DE4025302A1 (de) Programmiereinrichtung zur programmierung eines fernsteuersenders
DE3101270A1 (de) Rechnersystem zur kombinierten wortverarbeitung und bitverarbeitung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final