-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren zum Umformen von Benutzer-Manipulationen einer
multidimensionalen Eingabeeinrichtung zu Codevektoren für eine Datenverarbeitungseinrichtung,
wobei die Manipulationen auf einen Bereich um einen Ursprung herum
begrenzt sind, wobei dieses Verfahren die nachfolgenden Verfahrensschritte
umfasst:
-
- - einen Schritt zum Verteilen des Bereichs
in eine Anzahl Unterbereiche, und
- – einen
Schritt zum Ermitteln eines Unterbereichs entsprechend einer bestimmten
Manipulation, und zum Selektieren eines Codevektors zur Übertragung
zu der Datenverarbeitungseinrichtung. Die vorliegende Erfindung bezieht
sich weiterhin auf ein System und eine multidimensionale Eingabeeinrichtung
zum Durchführen
eines derartigen Verfahrens.
-
Ein Verfahren der eingangs beschriebenen
Art ist aus DE-A 35.23.284 bekannt. In diesem Dokument ist eine
Eingabeeinrichtung beschrieben, die verwendet wird zum Aktualisieren
eines oder mehrerer Parametern einer Datenverarbeitungseinrichtung
(beispielsweise Koordinaten eines Zeigers an einem Schirm). Nach diesem
Dokument wird eine Manipulation der Eingabeeinrichtung nicht unmittelbar
in einen entsprechenden Parameterwert übersetzt, sondern in eine Änderungsrate
dieses Wertes. Die wirkliche Aktualisierung erfolgt in der Datenverarbeitungseinrichtung.
Diese letztere wird mit Daten versehen, die für die Manipulation Indikativ sind.
Dazu transformiert die Eingabeeinrichtung die Manipulation in spezielle
Eingabedaten (nachstehend als Codevektor bezeichnet), welche die
Manipulation darstellen. Daraufhin wird der Codevektor über eine
Art von Kommunikationskanal (Kabel, drahtlos) der Datenverarbeitungseinrichtung
zugeführt.
-
In einer zweidimensionalen Abwandlung
der bekannten Eingabeeinrichtung wird die Benutzermanipulation im
Wesentlichen auf zwei orthogonale Achsen (eine X-Achse und eine Y-Achse) projiziert.
Aus den Projektionen wird ein Codevektor konstruiert und übertragen,
der digitale Darstellungen der Projektionen umfasst.
-
Ein spezieller Anwendungsbereich
derartiger Eingabeeinrichtungen ist der Bereich der Fernbedienung,
wie die Fernbedienung von Fernsehgeräten. Fernbedienungen haben
ihre eigene, begrenzte, Speisung (Batterie). Ein wesentlicher Teil
der Leistung ist erforderlich für
die Übertragung
der Codevektoren zu der Datenverarbeitungseinrichtung.
-
Deswegen kann zur Verlängerung
der Lebensdauer der Batterieleistung dadurch gespart werden, dass
die Menge an Information, die der Datenverarbeitungseinrichtung
zugesendet werden soll, minimiert wird. Gleichzeitig soll dem Benutzer
eine bequeme Steuermöglichkeit
des einzustellenden Parameters geboten werden. Dieses Letztere wird
durch Aspekte wie Geschwindigkeit der Aktualisierung der Parameter,
Genauigkeit der Aktualisierung der Parameter und im Falle einer
multidimensionalen Eingabeeinrichtung, durch eine bequeme simultane
Steuerung über
mehr als nur einen Parameter geboten (beispielsweise das Verlagern
des Zeigers über
den Fernsehschirm).
-
Ein Problem des bekannten Verfahrens
ist, dass dem Punkt der Leistungserwägungen keine Aufmerksamkeit
gewidmet worden ist. Folglich transformiert das bekannte Verfahren
aus dem Gesichtspunkt der Leistung nicht die Manipulationen in effiziente
Codevektoren.
-
Es ist nun u. a. eine Aufgabe der
vorliegenden Erfindung, ein Verfahren der eingangs beschriebenen Art
zu schaffen, wodurch ein besseres Gleichgewicht zwischen dem Leistungsverbrauch
und der Betriebsbequemlichkeit der Eingabeeinrichtung geschaffen
wird. Dazu schafft die vorliegende Einrichtung ein Verfahren der
eingangs beschriebenen Art, das gekennzeichnet ist durch einen Schritt
zur Begrenzung der Anzahl übertragbarer
Codevektoren auf im Wesentlichen die gesamte Anzahl Unterbereiche
durch Aufteilung des Bereichs in aneinander grenzende konzentrische
Ringe um den Ursprung herum und durch Aufteilung jedes Ringes in eine
gleiche Anzahl Sektoren, wobei jeder übertragbare Codevektor mit
einem Unterbereich assoziiert ist. Dies drückt den Grundgedanken aus,
dass es nicht notwendig ist, eine relativ große Anzahl Codevektoren für Manipulationen
großen
Umfangs zu reservieren. Wenn beispielsweise einer von zwei Parametern
aktualisiert wird, wird ein Benutzer zunächst eine größere Manipulation
in einer Richtung entsprechend. dem betreffenden Parameter für eine schnelle
aber relativ ungenaue Einstellung aufrufen. Daraufhin wird der Benutzer,
indem er weniger große
Manipulationen durchführt,
die genauen Endeinstellungen vornehmen. Beim Durchführen des ersten
Schrittes hat der Benutzer kein Interesse für eine genaue Regelung über den
zweiten Parameter. Ein ähnliches
Argument gilt für
die Situation, worin der Benutzer zwei Parameter gleichzeitig aktualisieren
möchte. Zusammenfassend
gilt: ein Codevektor, der eine Manipulation umfangreicher Größe darstellt,
soll nicht von benachbarten Codevektoren begleitet werden, die im
Grunde nur eine geringe Abweichung in einer senkrechten Richtung
aufweisen.
-
Bei der bekannten Eingabeeinrichtung
werden die Projektionen auf die orthogonalen Achsen unabhängig in
die Codevektoren codiert. Dies führt
zu einem Satz von Codevektoren mit dem oben genannten Merkmal, und
zwar diesem, dass im Vergleich zu Manipulationen geringer Größe Manipulationen
umfangreicher Größe durch
eine relativ große
Anzahl Codevektoren bedeckt werden.
-
Insbesondere wenn eine nicht lineare
Decodierung angewandt wird, wobei eine Manipulation einer Änderungsrate
auf eine nicht lineare Weise entspricht, die Maßnahme nach der vorliegenden
Erfindung zu einer mehr ausgewuchteten Verteilung von Unterbereichen
führt als
die Verteilung des bekannten Verfahrens. Bei dem bekannten Verfahren
sind Manipulation von einer der Achsen einzigartige Codevektoren
zugeordnet. Es findet eine Art von Clusterbildung von Codevektoren
um die Koordinatenachsen statt. Diese geclusterten Codevektoren
machen das bekannte Verfahren ineffizient, da der Benutzer kaum
einen Unterschied zwischen denselben erfährt.
-
Eine Folge der Maßnahme nach der vorliegenden
Erfindung ist, dass die gesamte Anzahl Codevektoren reduziert werden
kann, während
derselbe Pegel des Bedienungskomforts beibehalten wird. Eine verringerte
Anzahl Codevektoren bedeutet, dass die Codevektoren in Termen der
Anzahl Bits kleiner sein können.
Auf diese Weise wird die Eingabeeinrichtung weniger Leistung für Kommunikation
mit der Datenverarbeitungseinrichtung verbrauchen. Es sei bemerkt,
dass im Rahmen der vorliegenden Erfindung der Satz "eine gleiche Anzahl
Sektoren" in dem
Schritt (1) wie folgt interpretiert werden kann: "etwa eine gleiche
Anzahl Sektoren".
-
Die in dem Unteranspruch 3 definierte
Maßnahme
bietet den Vorteil, dass dies zu einem Verfahren führt, das
mit sehr einfachen Elementen implementiert werden kann. Es wird
nun beispielsweise vorausgesetzt, dass man über eine zweidimensionale Eingabeeinrichtung
mit zwei Sensorschaltungen verfügt,
die Sensorsignale, proportional zu einer Größe der Manipulation in den
betreffenden orthogonalen Richtungen erzeugen. Mit der Maßnahme nach
Anspruch 3 reicht es zum Bestimmen, mit welchem bestimmten Ring
die Manipulation übereinstimmt,
den maximalen Wert der beiden Sensorsignale zu bestimmen. Dies ist
ein Vorgang, der in Hardware sehr effizient verwirklicht werden
kann.
-
Die in dem Unteranspruch 4 definierte
Maßnahme
bietet den Vorteil, dass diese zu einer sehr regelmäßigen Transformation
führt,
was von dem Benutzer als sehr natürlich erfahren wird. Um zu
bestimmen, zu welchem Ring eine Manipulation gehört, könnte die Größe der Manipulation durch Quadrierung
und Addition der Sensorsignale hergeleitet werden. Der bestimmte
Sektor könnte
dadurch bestimmt werden, dass ein bestimmtes Verhältnis der
Sensorsignale hergeleitet wird.
-
Ausführungsbeispiele der Erfindung
sind in der Zeichnung dargestellt und werden im vorliegenden Fall näher beschrieben.
Es zeigen:
-
1 ein
System nach der vorliegenden Erfindung,
-
2 eine
Darstellung einer Einteilung des Bereichs von Manipulationen in
Teilbereiche nach der vorliegenden Erfindung,
-
3 einen
Satz von Deltavektoren entsprechend einem der Ringe nach 2,
-
4 einen
Vergleich eines Satzes von Codevektoren nach der vorliegenden Erfindung
mit einem Satz von Codevektoren nach dem Stand der Technik,
-
5 einen
alternativen Bereich von Manipulationen und einer Aufteilung davon,
-
6 einen
weiteren alternativen Bereich von Manipulationen und einer Aufteilung
davon.
-
1 zeigt
ein System nach der vorliegenden Erfindung. Es umfasst eine Fernbedienung 100 mit
einer zweidimensionalen Rollkugel 102 und eine Datenverarbeitungseinrichtung 104,
die in diesem Fall ein Fernsehgerät ist. Mit der Fernbedienung 100 kann
ein Benutzer Fernsehkanäle
wählen,
einen Lautstärkepegel
einstellen, Menü-Items
selektieren, indem er mit Hilfe der Rollkugel 102 einen
Zeiger über
den Fernsehschirm laufen lässt.
Die Fernbedienung 100 umfasst weiterhin Sensorschaltungen 120 zum
Detektieren von Manipulationen der Rollkugel 102, Selektionsmittel 122 zum
Selektieren von Codevektoren, welche die genannten Manipulationen
darstellen, und Übertragungsmittel 124 zum Übertragen
der genannten Codevektoren zu der Datenverarbeitungseinrichtung über einen
IR-Kommunikationskanal. Auf alternative Weise umfasst die Fernbedienung 100 einen
Joystick oder ein Berührungsfeld
statt der Rollkugel 102.
-
Jede der Sensorschaltungen 120 ist
vorgesehen zum Detektieren von Manipulationen in einer einzigen
Richtung. Die Signale, die von den Sensorschaltungen 120 erzeugt
werden, werden zwischen bestimmten Grenzen begrenzt, die durch mechanische
oder elektrische Grenzen gestellt werden, wie die endliche Größe von Registern
zur Speicherung der Signale, oder die Beschneidung bestimmter analoger
Sensorsignale. Diese Be grenzungen können als Grenzen eines Gebietes
möglicher
Manipulationen der Eingabeeinrichtung betrachtet werden.
-
In der Datenverarbeitungseinrichtung 104 ist
ein Empfänger
vorgesehen zum Empfangen der Codevektoren und zum Durchlassen derselben
zu einem Decoder 132. Der Decoder 132 decodiert
die Codevektoren in entsprechende Deltavektoren, die von der Datenverarbeitungseinrichtung
benutzt werden können
zum Aktualisieren von Koordinaten des Zeigers am Fernsehschirm.
-
2 zeigt
eine Darstellung einer Aufteilung eines Bereiches von Manipulationen
in Teilbereiche nach der vorliegenden Erfindung. Eine Manipulation
der Rollkugel 102 wird begrenzt auf einen Bereich 200 um
einen Ursprung 202. Der Bereich wird nach der vorliegenden
Erfindung in Ringe aufgeteilt, wobei einer derselben der Ring 222 ist,
der in der Figur durch ein schraffiertes Gebiet angegeben ist. Jeder
Ring ist in eine gleiche Anzahl Sektiren aufgeteilt, und zwar sechzehn
Stück.
So ist beispielsweise einer der Sektoren des Ringes 222 der
Sektor 224. Jedem der Teilbereiche wird ein einzigartiger
Codevektor zugeordnet. Ein Codevektor könnte explizit die Ringnummer
und die Sektornummer des entsprechenden Teilbereichs darstellen
oder gerade sich auf eine beliebige Nummerierung der Teilbereiche
beziehen.
-
Für
eine bestimmte Manipulation kann der entsprechende Teilbereich dadurch
identifiziert werden, dass eine entsprechende Ringnummer und Sektornummer
identifiziert wird. Die Ringnummer ist ein Maß für die Größe der Manipulation und die
Sektornummer ist eine Angabe der Richtung. Drehungen der Rollkugel 102 gegenüber zwei
senkrecht aufeinander stehenden Achsen in der Ebene der Oberseite
der Fernbedienung 100 werden von den Sensorschaltungen 120 und 122 detektiert,
wodurch zwei Sensorsignale erzeugt werden. Wenn die Sensorsignale
proportional zu der Größe der Manipulation
sind, dann wird für
quadratische Ringe die Ringnummer einfach durch das absolute Maximum
der Sensorsignale bestimmt. Dadurch, dass dieser maximale Wert zu
einer begrenzten Anzahl Pegel quantisiert wird, wird eine erste
Gruppe Bits des Codevektors hergeleitet. In diesem Fall wird gewählt, dass
es sechzehn Ringe gibt, wodurch ein Vier-Bit-Code ausreicht zum
Codieren der Größe der Manipulation.
-
Wie in 2 dargestellt,
können
sechzehn Linie, die sich in radialer Richtung von dem Ursprung aus erstrecken,
durch die Teilbereiche gezogen werden, wobei sie gemeinsam alle
Teilbereiche durchqueren. Nach Nummerierung dieser Linien, entspricht jedem
Teilbereich eine einzige Liniennummer. Diese Liniennummer könnte benutzt
werden als Sektornummer, die in einer zweiten Gruppe Bits des bestimmten
Codevektors festgehalten werden könnte. In jedem Ring können sechzehn
verschiedene Sektiren identifiziert werden, wozu 4 Bits ausreichen
zum Codieren der Richtung der Manipulation.
-
Auf diese Weise haben wir einen Codevektor
entsprechend acht Bits insgesamt für die Richtungs- und die Größeninformation.
Die Sensorsignale jeder Eingabeeinrichtung mit einem rechteckigen
Manipulationsbereich kann immer zu einem quadratischen Bereich skaliert
werden. Dazu gilt das an dieser Stelle zum Bestimmen des Ringes
im Allgemeinen beschriebene Schema für rechteckige Ringe.
-
Zum Schluss wird der Codevektor in
ein Signal codiert, das auf effiziente Weise über den IR-Kommunikationskanal
kommuniziert werden kann, oder der Codevektor wird unmittelbar benutzt
zum Modulieren eines IR-Übertragungssignals.
-
3 zeigt
einen Satz von Deltavektoren entsprechend einem der Ringe nach 2. In der Datenverarbeitungseinrichtung
wird ein neues Paar von Schirmkoordinaten in X-Y-Format konstruiert,
und zwar auf Basis des empfangenen Codevektors, der durch den Decoder 130 in
einen Deltavektor decodiert wird. Dieser Deltavektor steht für eine Translation
des Zeigers über
den Schirm gegenüber
einer vorhergehenden Position. Sechzehn Deltavektoren entsprechend
einem einzigen Ring nach 2,
sind in 3 dargestellt.
-
Ein Codevektor wird in einen Deltavektor übersetzt,
und zwar durch Übersetzung
der Ringnummer und der Sektornummer, die darin vorhanden sind. Zunächst wird
ein MAX-Wert aus der Ringnummer erhalten. Der MAX-Wert stellt eine
Größe des Deltavektors
dar. Wir sind frei, die Ringnummer auf nicht lineare Weise in einen
entsprechenden MAX-Wert zu decodieren. Die nicht lineare Darstellung
steigert den dynamischen Bereich der Eingangseinrichtung in dem
Sinne, dass eine schnelle und genaue Aktualisierung der Parameter
ermöglicht
wird. Die nicht lineare Darstellung verbessert weiterhin den Betriebscomfort
der Eingabeeinrichtung. Die Tafel 1 gibt ein Beispiel einer
nicht linearen Abbildung. Es könnte
beabsichtigt werden, dass der Benutzer die Möglichkeit hat, eine bestimmte
Tafel zu selektieren, die er am bequemsten findet.
-
Tafel
1: Geschwindigkeitsdecodierungstafel
-
-
Es sei bemerkt, dass in der Tafel 1 kein
Ring reserviert ist für
einen Max. Wert Null. Dies bedeutet, dass wenn es keine Aktion seitens
des Benutzers gibt, keine Daten zu der Datenverarbeitungseinrichtung 104 gesendet
werden. Keine Benutzeraktion könnte
beispielsweise bedeuten, dass die Eingabeeinrichtung sich in der
Ruhelage befindet oder im Allgemeinen, dass es keine Änderung
in dem Zustand der Eingabeeinrichtung gegeben hat, seit der Codevektor
der Datenverarbeitungseinrichtung 104 zugeführt worden
ist. Selbstverständlich
ist dies eine weitere Möglichkeit
um Leistung zu sparen. Ein weiterer Vorteil ist, dass, da es kein
Bedürfnis
nach einem Codevektor entsprechend der Situation, dass es keine
Benutzeraktion gibt, ein zusätzlicher Codevektor
für einen
nützlicheren
Fall reserviert werden kann.
-
Daraufhin wird die Sektornummer des
Codevektors benutzt zum Erhalten der X- und Y-Werte. Die Tafel 2
zeigt, wie dies geschieht für
die Deltavektoren nach 3.
-
Tafel
2: Richtungsdecodierungstafel
-
4 zeigt
einen Vergleich eines Satzes der Codevektoren nach der vorliegenden
Erfindung mit einem Satz Codevektoren nach dem Stand der Technik.
Verwiesen wird nach der 2.
Der Deutlichkeit halber ist nur der obere rechte Quadrant des Gebietes 200 dargestellt,
während
nur einige Codevektorgrößen eingeschlossen
sind. Die Codevektoren des Verfahrens nach dem Stand der Technik
und nach der vorliegenden Erfindung sind durch Kreuze bzw. Kreise
angegeben. 4 zeigt deutlich
die Clusterbildung der Codevektoren, die Typisch ist für das bekannte
Verfahren. Aus dieser Figur dürfte
es auch klar sein, dass mit der Maßnahme der vorliegenden Erfindung
eine mehr ausgewuchtete Bedeckung mit Codevektoren des Bereiches
erhalten wird.
-
5 zeigt
einen alternativen Bereich von Manipulationen und eine Aufteilung
davon. Eine Manipulation der Rollkugel 102 wird auf einen
Bereich 500 um einen Ursprung 502 begrenzt. Der
Bereich hat eine quadratische Grenze 504, deren Größe durch
die Größe der betreffenden
Register bestimmt wird, die Projektionen der Manipulation in betreffenden
orthogonalen Richtungen festhalten. Nach einem Aspekt der vorliegenden
Erfindung wird der Bereich 500 in mehr oder weniger dreieckige
Keile und quadratische Ringe um einen zentralen Bereich 506 aufgeteilt.
Schnittpunkte der Keile und Ringe bilden die Teilbereiche. So ist
beispielsweise Manipulationen der Rollkugel 102 zu dem
Teilbereich rechts oben, einer der Teilbereiche des Keils 510 zugeordnet,
während
einer steilen Abwärtsmanipulation
der Teilbereich 512 zugeordnet ist. Ein Codevektor könnte explizit
eine Ringnummer und eine Keilnummer codieren. Die Ringnummer für eine bestimmte
Manipulation kann hergeleitet werden, wie anhand der 2 beschrieben wurde. Die
Keilnummer könnte
dadurch ermittelt werden, dass ein bestimmtes Verhältnis der
Sensorsignale hergeleitet wird.
-
6 zeigt
einen weiteren alternativen Bereich der Manipulationen und der Unterteilung
davon. Der Bereich 600 mit einer Kreisform oder mit kreisförmigen Ringen
ist besser geeignet. Beispielsweise mit einem Joystick kann ein
kreisförmiger
Bereich mit einem kreisförmigen
mechanischen Sperrelement überlagert
werden, das die Bewegungen des Elementes begrenzt. Der spezielle
Keil entsprechend einer bestimmten Manipulation könnte durch
Herleitung eines bestimmten Verhältnisses
der Sensorsignale bestimmt werden. Zum Bestimmen des Ringes sollte
die Größe der Manipulation
durch Quadrierung und Addition der Sensorsignale hergeleitet werden.
In der Datenverarbeitungseinrichtung kön nen die X- und Y-Werte dadurch
rekonstruiert werden, dass das Produkt aus der Größe und dem
Kosinus und Sinus eines Winkels genommen wird, wobei dieser letztere
durch die Keilnummer bestimmt wird.
-
Die Grundgedanken der vorliegenden
Erfindung gelten auch für
dreidimensionale Eingabeeinrichtungen, wie eine 3D-Rollkugel. Die
Konzepte von Keilen und Ringen sind auf einfache Weise zu einem
dreidimensionalen Bereich erweitert worden. Weiterhin gilt die vorliegende
Erfindung auch für
Eingabeeinrichtungen, die in einem Tastenfeld integriert sind, für eine Fernbedienung
oder sogar die Datenverarbeitungseinrichtung selber, wie ein Notebuch
und für
Einzel-Eingabeeinrichtungen.
-
Zusammenfassend: die vorliegende
Erfindung bezieht sich auf ein Verfahren zum Codieren von Manipulationen
einer mehrdimensionalen Eingabeeinrichtung, wie einer Maus, in Daten,
die mit einer Datenverarbeitungseinrichtung kommunizieren sollen.
Sensoren in der Eingabeeinrichtung detektieren Manipulationen eines
Elementes der Eingabeeinrichtung gegenüber einer X-Achse und einer
Y-Achse. Aus den Sensordaten wird eine Richtung und eine Größe der Manipulation
hergeleitet. Diese Zwischenmengen werden mit der Datenverarbeitungseinrichtung
statt mit den X- und den Y-Werten selber kommuniziert. In der Datenverarbeitungseinrichtung
decodiert ein Decoder die Zwischenmengen in ein weiteres Paar von
X- und Y-Werten. Die Zwischenwerte stellen mehr angemessen die Manipulationen
dar. Deswegen erzielt in Eingebeeinrichtungen mit einem begrenzten
Leistungsbudget, wie Fernseh-Fernbedienungen und/oder drahtlosen
Eingabeeinrichtungen eine höhere
Leistung.