-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft allgemein die Gebiete der Datenkomprimierung
und ganz besonders das Komprimieren von 3D-Multimediaübermittlungen über eine
Netzverbindung.
-
Allgemeiner
Stand der Technik
-
3D-Multimedia
umfasst Videokonferenzschaltungen, interaktive Spiele, Webseiteninhalt (website
content), audiovisuelle (A/V-) Aufzeichnungen, um nur einige zu
nennen (hierin im Folgenden kollektiv „A/V-Daten"). A/V-Daten erfordern erheblichen Speicherplatz
als auch eine beträchtliche
Bandbreite zum Übertragen
der Daten über
ein Netz. Da die meisten Datenempfänger über keine ausreichende Bandbreite
verfügen,
um die A/V-Daten in ihrer ursprünglichen
Form zu empfangen, sind A/V-Daten herkömmlicherweise über einen örtlichen
Hochgeschwindigkeitsbus oder spezialisierte Hochgeschwindigkeitsdatenstrecken
abgerufen worden.
-
Man
betrachte beispielsweise Computerspiele. Spiele umfassen einfache
Simulatoren für Flipper,
Karten, Glücksspiele,
Kämpfe
usw. für
einen einzigen Benutzer oder komplexere Spiele, bei denen mehrere
Spieler abwechselnd an der Reihe sind und jeder Spieler gegen das
Spiel antrat und schließlich
Spielstände
verglich. Wohl bekannte High-Tech-Spielsysteme umfassen die Nintendo®- und
Sony PlayStation®-Spielsysteme. Diese und andere Spiele
verwenden Geometrie, um zwei- und dreidimensionale Objekte in Spielmodellen
zu beschreiben. Insbesondere komplexe Objektoberflächen werden
für gewöhnlich durch
eine Kombination eines oder mehrerer grundlegender Objektformen dargestellt,
wie Spline, nichtuniforme rationale Spline (NURBs), Texturkarten
und (mono hedrale) Parkettierung mit Dreiecken. In der Regel wird
ein beliebiges Objekt durch Parkettierung mit Dreiecken definiert, wobei
jedes Dreieck zugehörige
Raumkoordinatentupel X, Y (und möglicherweise
Z), Farb-, normale und andere Attribute aufweist. Diese Information,
wenn sie mit Hunderten oder Tausenden Polygonen in mäßig komplexen
Objekten multipliziert wird, läuft
auf Daten hinaus, die von dedizierten Grafiksystemen und örtlichem
Speicher von Grafikdaten abgerufen werden müssen. Die Datenübermittlungserfordernisse
verhindern ein Spiel gegen entfernte Spieler. Obwohl einige Spiele
dazu konzipiert worden sind, ein Modem zu verwenden, um einen entfernten
Spieler direkt anzurufen und ein Spiel aufzubauen, war diese Lösung oftmals
schwerfällig,
langsam und uneinheitlich; eine Übermittlung
von „Rich
Content" (lebendige Inhalte)
war unausführbar.
-
Oder
man betrachte Videokonferenzschaltungsanwendungen. Wie bei Spielen
betreffen diese Anwendungen das Übermitteln
großer
Datenvolumina. Diese Anwendungen müssen jedoch die Daten an entfernte
Orte (z. B. Konferenzteilnehmer) übermitteln. Daher haben sie
Hochgeschwindigkeitsdatenstrecken bedingt, z. B. mindestens eine
mit 128 kbit geführte
ISDN-Verbindung
mit dem entfernten Teilnehmer oder mehr bevorzugt eine T1-Verbindung oder
eine schnellere Frame-Relay-Verbindung.
Bedauerlicherweise stehen diese schnellen Verbindungsnetze Benutzern
nicht allgemein zur Verfügung und
bedingen komplexen technischen Support zur Aufrechterhaltung einer
aktiven Strecke. Die Konferenzschaltung hat mit dem Modemspiel auch
die Einschränkung
des Erfordernisses direkter Benutzer-zu-Benutzer-Verbindungen gemein.
-
Mit
dem kürzlichen
Aufkommen allgegenwärtiger
kostengünstiger
Internetverbindungen ist es zu einer relativ unkom plizierten Sache
geworden, eine Netzkommunikationsstrecke zwischen mehreren entfernten
Teilnehmern herzustellen. Dies hat Interesse am Verwenden dieser
allgemein verfügbaren Strecken
zum Übermitteln
von A/V-Daten geweckt. Bedauerlicherweise sind Internetverbindungen
aufgrund der Kosten und technischen Komplexität des Aufrechterhaltens von
ISDN-, Frame-Relay- und anderen Hochgeschwindigkeitsstrecken häufig relativ langsame
modembasierte Verbindungen. Da Modemverbindungen im Allgemeinen
lediglich eine durchschnittliche Modembitrate von 14 – 40 kbit
pro Sekunde erzielen, sind diese Verbindungen nicht dazu in der
Lage, „Rich
Game-Content" (lebendige Spielinhalte),
Konferenzschaltungsdaten oder andere A/V-Daten in angemessener Zeit
zu übermitteln. Dieses
Problem wird mit jedem weiteren entfernten Teilnehmer verschlimmert,
da A/V-Daten nun an mehrere Empfänger
verbreitet werden müssen – was weiter
Bandbreitenressourcen verbraucht.
-
Bei
einem Versuch, die Bandbreitenbedingungen zu reduzieren und sich
die einfach verfügbaren,
langsamen Netzverbindungen zunutze zu machen, sind Anstrengungen
unternommen worden, A/V-Daten zu komprimieren. Daten- und Geometriekomprimierung
beispielsweise sind bereits zum Reduzieren des Informationsgehalts
(„Information
Content") in 2D-
und 3D-Modellen verwendet worden. Vorherige Komprimierungsversuche
umfassen Bildkomprimierung (z. B. JPEG), das Definieren von Objekten
mit gemeinsamen Merkmalen (z. B. gemeinsamen Kanten), kleine Texturkarten
für große Bereiche usw.
Beispiele einiger dieser und anderer Techniken sind in der US-Patentschrift
5,740,409 zu finden, die einen 3D-Grafikbeschleuniger für komprimierte
Geometrie lehrt, und den US-Patentschriften 5,793,371, 5,867,167
und 5,870,094, die verschiedene Verfahren zum effizienteren Kodieren (Verschlüsseln) von 3D-Modellen
lehren. Diese Komprimierungstechniken sind einfach auf A/V-Spieldaten
(die Modelle verwenden) sowie andere A/V-Daten anwendbar, die Daten
in einem kompatiblen, komprimierbaren Format darstellen, wie digitale
MPEG-Videokodierung (MPEG = Moving Picture Experts Group).
-
Zusätzlich zur
Geometriekomprimierung sind auch Universaldatenkomprimierungsmethoden
auf A/V-Daten angewendet worden. Solche Techniken umfassen Huffman-Kodierung
(siehe Huffman, „A Method
For Construction of Minimum Redundancy Codes", Proceedings IRE, 40, 10, Seiten 1098 – 1100 (Sept.
1952)), Tunstall-Kodierung (siehe Doktorarbeit von Tunstall, „Synthesis
of Noiseless Compression Codes",
Georgia Institute of Technology (Sept. 1967)) und Lempel-Ziv-Kodierung (siehe „A Universal
Algorithm For Sequential Data Compression", IEEE Transactions on Information Theory,
IT-23, 3, Seiten 337 – 343
(Mai 1977)) und Lauflängenkodierung
an Modelldaten (siehe z. B. US-Patentschrift 3,656,178). Diese Universalkomprimierungstechniken
sind auf alle Datenformate anwendbar.
-
Bedauerlicherweise
verbleibt selbst nach Anwendung von Universal- und Geometriekomprimierung
noch immer eine beträchtliche
Informationsmenge, die übermittelt
werden müssen,
bevor Spiele, Konferenzschaltungen, Betrachter von 3D-Multimedia,
interaktive 3D-Chaträume
und andere Anwendungen von A/V-Daten zu arbeiten scheinen, als ob sie
ihre Daten von örtlichem
Speicher oder Hochgeschwindigkeitsstrecken abrufen. Folglich ist
etwas weitere Datenreduktion erforderlich.
-
Des
Weiteren wird perspektivische Verkürzung, gemäß der die Größe der perspektivischen Projektion
eines Objekts mit der Entfernung dieses Objekts von der Mitte der
Projektion invers variiert, von J.D. FOLEY: „Computer Graphics Principles
and Practice", 1990,
ADDISON-WESLEY, Reading, Massachusetts, offenbart.
-
KURZDARSTELLUNG
-
Ein
rechnervorrichtungsimplementiertes Verfahren zum Komprimieren von
Daten, wobei solche Vorrichtungen einen Computer, einen persönlichen digitalen
Assistenten (PDA), ein Haushaltsgerät und dergleichen umfassen.
Es wird ein Abstand zwischen einem Bezugspunkt in einem Modell und
einer Zeichen-Box für
ein Modellobjekt bestimmt, das gemäß einer Datensammlung definiert
wird, wobei jedes Element in der Sammlung eine erste Datengröße aufweist.
Ein Datenreduktionsfaktor wird ausgewählt, der wenigstens teilweise
auf dem Abstand basiert. Die Datensammlung wird gemäß dem Abstand
durch Zuordnen jeder Daten der ersten Datengröße zu Daten mit einer zweiten
Datengröße, die
kleiner als die erste Datengröße ist,
komprimiert. Andere Komprimierungsverfahren und -vorrichtungen sind
offenbart.
-
Kurzbeschreibung
der Zeichnungen
-
1 stellt
einen Content-Provider in Verbindung mit mehreren Content-Empfängern dar.
-
2 stellt
eine ANSI/IEEE 754-1985-Gleitkommadarstellung dar.
-
3 stellt
eine adaptiv ausgewählte
Gleitkommaanordnung von n Bit dar.
-
4 stellt
Gleitkommagenauigkeitsreduktion dar, die auf dem Abstand zwischen
einem Ursprung eines 3D-Modells und einem örtlichen Ursprung für ein Objekt
basiert.
-
5 stellt
tiefenbasierte Genauigkeit dar.
-
6 stellt
eckpunkt-/tiefenbasierte Genauigkeit dar.
-
7 stellt
eine Kodierung für
drei Raumkoordinaten dar.
-
8 stellt
ein Kodierungsverfahren unter Verwendung von Kodierungsgrößenindikatorfeldern dar.
-
9 stellt
ein Packed-Pixel-Kodierungsverfahren dar.
-
10 stellt
ein graphenbasiertes Kodierungsschema für Gleitkommazahlen dar. 11 ist ein
Ablaufdiagramm für
einen Kodierungs- und Dekodierungsvorgang.
-
12 stellt
eine allgemeine Umgebung dar, in der die Erfindung oder Teile davon
ausgeübt
werden kann.
-
Ausführliche
Beschreibung
-
Obwohl
die vorliegende Erfindung auf einen große Auswahl von Anwendungsprogrammen, Diensten
und Vorrichtungen anwendbar ist, die das Übertragen von Rich Content
(wie A/V-Daten) über ein
Netz bedingen, konzentriert sich die folgende Beschreibung auf das
Liefern von „Rich
Multimedia-Content" (lebendige Multimedia-Inhalte)
von einer Spielumgebung an über
das Netz verteilte Spieler. Das Spielparadigma ist gewählt worden,
weil es die Lieferung von A/V-Daten nach Bedarf für Anwendungen,
wie Videokonferenzschaltungen, lehrt, wobei gleichzeitig auch die
logistische Komplexität
erörtert
wird, die dem Vorliegen mehrerer Teilnehmer, die die Lieferung von
A/V-Daten interaktiv beeinflussen, zueigen ist.
-
1 stellt
einen Game-Content-Provider 100 in Verbindung mit mehreren
Benutzern/Spielern 102 – 108 über ein öffentlich
zugängliches
Netz 110, wie das Internet, dar. Ebenfalls gezeigt ist
ein Koordinator 112, der, wie unten erörtert, die Spielaktivität koordinieren
kann. Zum einfachen Verständnis
wird angenommen, dass der gelieferte Content ein interaktives dreidimensionales
Spiel ist (deshalb werden die Benutzer als Spieler bezeichnet).
Vom Spiel wird angenommen, dass es ein 3D-Modell einschließt, wobei
Objekte in dem Model Attribute, wie Position, Farbe, Textur, Beleuchtung,
Ausrichtung usw., aufweisen und wobei die Objekte letztendlich durch
ein oder mehrere Dreiecke definiert werden. Wie jedoch aus der folgenden
Beschreibung leicht zu erkennen sein wird, ist die vorliegende Erfindung
auf alle Formen von Multimedia-Content-Lieferung anwendbar und kann
mit diesen ausgeübt
werden.
-
Wie
gezeigt, stehen mehrere Spieler 102 – 108 mit einem Content-Provider
in Verbindung. In einer Ausführungsform
verwenden die Spieler einen Internetbrowser als ein Spielgerät, wobei
der Browser ein installiertes Plugin (z. B. Hilfsanwendung) zum
Unterstützen
des Verarbeitens von Content, der vom Provider übertragen wird, aufweist. Anstelle
eines Browsers können
jedoch andere Netzanwendungen, wie dedizierte Spielanwendungen,
verwendet werden. Der Einfachheit halber wird angenommen, dass der
Provider 100 als ein zentraler Datenverteilungspunkt für Spieldaten agiert,
der alle erforderlichen Daten an jeden Spieler 102 – 108 überträgt. Es versteht
sich jedoch, dass Spielsoftware derart eingerichtet werden kann,
dass Spieler einander Informationen direkt senden oder dass ein
Spieler oder eine andere Netzstelle als ein Verteilungspunkt für andere
Spieler verwendet werden kann (z. B. zum Verteilen der Verarbeitungslast).
-
Ebenfalls
gezeigt ist ein Spielkoordinator 112, der als ein zentraler
Punkt zum Initiieren oder Mitmachen an laufenden Spielen verwendet
werden kann. Ein solcher Koordinator ist im Rahmen von beispielsweise
dem Internet von Nutzen, da Spielern routinemäßig von ihrem Internetdienstanbieter
zufällige
Netzadressen zugewiesen werden. Da eine Netzverbindung zwischen
Computern für
gewöhnlich bedingt,
dass die Computer gegenseitig ihre Netzadressen kennen, kann ein
bekannter Koordinator solche Verbindungen vereinfachen, indem er
Spielern ermöglicht,
den Koordinator zu kontaktieren und ihre aktuell zugewiesene Netzadresse
zu veröffentlichen. Der
Koordinator kann dann interessierte Spieler an einen oder mehrere
Content-Provider (z. B. 100) umleiten. Ein Koordinator
kann auch dazu verwendet werden, Spieleridentitäten vor Content-Providern zu verbergen,
wie durch Verbergen der Netzadresse, oder die Spielerregistrierung
mit anderen Providern zu koordinieren. Viele Unternehmen stellen
nun zentralisierte „Hubs" bereit, um das Game-Play
zu unterstützen;
siehe z. B. die MSN Gaming Zone (vormals die Internet Gaming Zone)
der Microsoft Corporation in Redmond, Washington, USA unter http://games.msn.com
oder http://www.microsoft.com/games.
-
Wenn
ein Spieler einen Provider kontaktiert, versucht der Provider in
der Regel, Game-Content an den Spieler zu übertragen. Wenn der Browser
des Spielers noch nicht darauf eingerichtet ist, solchen Content
zu empfangen, kann dies eine automatische Mitteilung an den Spieler
auslösen,
das erforderliche Plugin, den erforderlichen Treiber oder andere
Daten, die zum Spielen des Spiels des Providers benötigt werden,
zu installieren.
-
Sobald
ein Spieler in eine Nachrichtenverbindung mit einem Content-Provider
getreten ist, muss der Provider dem Spieler Game-Content senden.
Wie oben erörtert,
sind verschiedene Verfahren eingesetzt worden, um die Datenmenge
zu reduzieren, die tatsächlich
an solche Spieler gesendet werden muss. Eine beträchtliche
Menge solcher Daten umfasst das Übertragen
von Koordinatenwerten für Objekte
in einem 3D-Modell. Es ist von Vorteil, den Speicherplatz, der zum
Speichern solcher Koordinaten erforderlich ist, irgendwie weiter
zu reduzieren.
-
2 stellt
eine typische Gleitkommadarstellung für Gleitkommazahlen mit einfacher 200 und doppelter 202 Genauigkeit
in Übereinstimmung
mit dem Standard ANSI/IEEE 754-1985 dar, der vom Institute for Electrical
and Electronic Engineers (IEEE) und dem American National Standards
Institute (ANSI) veröffentlicht
wurde.
-
Ein
3D-Spielmodell enthält
im Allgemeinen mehrere Objekte, wie Objekte, die jeden Spieler verkörpern (z.
B. ein Auto oder ein Schiff), und Objekte für Dinge, die in der Spielumgebung
vorhanden sind (z. B. Wände,
Bäume,
Felsen, Asteroiden, Landschaft, Hintergrund usw.). Jedes Objekt
wird in der Regel durch viele Dreiecke (z. B. Hunderte oder Tausende)
definiert, wobei jedes Dreieck zugehörige Attribute aufweist, wie
räumliche
Position, Ausrichtung, Aussehen usw. Je realistischer ein Objekt
ist, desto mehr Dreiecke werden benötigt, um es darzustellen. (Man
beachte, dass Dreiecke nicht grundsätzlich zum Darstellen eines
Objekts erforderlich sind, aktuelle Rendering-Engines bedingen jedoch
für gewöhnlich,
dass alle Objekte in ein Dreiecksformat aufgelöst werden, da solche Engines
Hardware-Support zum Anzeigen von Dreiecken aufweisen.)
-
Jedes
Dreieck weist eine räumliche
Speicherstelle auf, die durch 3 Eckpunkte definiert wird. In einem
3D-Modell wird jeder Eckpunkt durch X-, Y- und Z-Koordinaten definiert,
die seine Speicherstelle im 3D-Raum des Spiels identifizieren. Jede
Eckpunktkoordinate wird als eine Gleitkommazahl gespeichert, für gewöhnlich in
dem dargestellten 32-Bit-IEEE-754-Format
mit einfacher Genauigkeit 200. Somit kann jedes der Hunderte
oder Tausende von Dreiecken in einem Objekt bis zu 96 Bit zum Darstellen
des Dreiecks benötigen.
Man beachte, dass 96 Bit eine Obergrenze ist, aufgrund von Verringerungen
entsprechend des Teilens von Eckpunkten, z. B. zwei benachbarte
Dreiecke erfordern lediglich 4 Eckpunkte, nicht 6. Wie oben erörtert, können andere Geometriekomprimierungs-
und Datenreduktionstechniken ebenfalls angewendet werden.
-
Wie
gezeigt, weist jede Gleitkommazahl im Format mit einfacher Genauigkeit
einen 8-Bit-Exponenten 204 und eine 24-Bit-Mantisse 206 (Signifikand)
auf. (Man beachte, dass die Mantisse eine 24-Bit-Genauigkeit hat,
die nur 23 Bit erfordert, da für alle
Nicht-Null-Zahlen ein vorangestelltes 1 Bit impliziert werden kann.)
Der Exponent ist in gewichteter (d. h. Überschuss von n) Form gespeichert,
wobei eine Gewichtung 208 von einer gespeicherten Zahl subtrahiert
wird, um seinen tatsächlichen
Wert zu erhalten.
-
Selbst
bei einem kleinen Objekt, das durch lediglich 100 Eckpunkte definiert
wird, erfordert dieses Objekt somit 9600 Bit (32 × 100 × 3), um
die Positionen jedes der Eckpunkte darzustellen. Außerdem muss
in Anbetracht dessen, dass ein Spiel in der Regel viele Objekte
und mehrere Spieler umfasst, die solche Positionsinformationen erhalten
müssen,
eine beträchtliche
Datenmenge übertragen
werden, nur um Objektpositionen zu identifizieren.
-
Folglich
würde ein
kompakteres Verfahren zum Verschlüsseln von Gleitkommawerten
diese Belastung verringern. Beim Definieren eines bestimmten Gleitkommaformats
besteht das allgemeine Problem darin, eine Abstimmung zwischen der
Größe der Mantisse 206 und
der Größe des Exponenten 204 durchzuführen. Das
heißt,
Wählen
zwischen numerischer Genauigkeit und numerischem Bereich. Das Erhöhen der
Größe der Mantisse
ergibt eine bessere Genauigkeit; das Erhöhen der Größe des Exponenten vergrößert den
Bereich der Zahlen, die dargestellt werden können. Dieser Abgleich zwischen
Genauigkeit und Bereich kann angewendet werden, um die Gesamtzahl
von Bits, die zum Speichern von Koordinatenwerten für Objekte
in einem 3D-Modell benötigt
werden, zu reduzieren. Wenn Genauigkeit nicht erforderlich ist,
können
die Bitlängen reduziert
werden.
-
3 stellt
eine Gleitkommaanordnung dar, in der ein adaptiv ausgewähltes Gleitkommaformat von
n Bit verwendet wird. Es versteht sich, dass, ungeachtet der Größe von n,
sobald komprimierte Gleitkommadaten von einem Spieler empfangen
werden, die Daten eine Expansion zurück in ein traditionelles IEEE-754-Format
erfordern (z. B. durch Nullauffüllung
von Werten, um ein Standard-Gleitkomma-Byte-Array aufzufüllen). Diese Expansion kann jedoch
durch die Verwendung von Rendering-Hardware, die das komprimierte
Gleitkommaformat direkt unterstützt,
vermieden werden.
-
Im
Allgemeinen sind Gleitkommazahlen im Format (-1)Vorzeichenbit × Mantisse × 2Exponent, wobei die Mantisse dem Bruchteil
einer reellen Zahl entspricht und der 2Exponent das
Dezimalkomma entsprechend verschiebt. Ein Verfahren zum Reduzieren
der Gleitkommaspeichererfordernisse besteht darin, alle Objektkoordinaten
mit Bezug auf einen örtlichen
Ursprung für
die Zeichen-Box zu vereinheitlichen. Durch das Vereinheitlichen
von Werten ist das Speichern eines Exponenten unnötig, da
er nun durch die Bitgenauigkeit einer Mantisse 218 impliziert
werden kann. Das heißt,
wenn die Mantisse den Wert 12345678 (Basis 10) verschlüsselt, ist
von vornherein bekannt, dass der verschlüsselte Wert tatsächlich 0,12345678
oder 1,2345678 × 10–1 ist.
Das Implizieren des Exponenten stellt eine sofortige 33%ige Einsparung
gegenüber
traditionellen 32-Bit-Formaten dar. Man beachte außerdem,
dass, wenn alle Werte darauf eingeschränkt werden, positiv zu sein,
eine weitere Biteinsparung durch Implizieren eines Vorzeichenbits 220 für positive
Werte möglich
ist.
-
Wie
in 4 gezeigt, steht zusätzlich zum Vereinheitlichen
von Werten eine weitere Reduktion der Koordinatengenauigkeit zur
Verfügung,
indem eine Zeichen-Box 222 für jedes Objekt 224 in
einem Modell definiert wird und dann Objektkoordinaten aus dem System
des Modells in vereinheitlichte Koordinaten 226 mit Bezug
auf einen örtlichen
Ursprung 228 für
die Zeichen-Box umgewandelt werden. Durch das Lokalisieren von Werten
ist der Wertebereich kleiner, wodurch weniger Bitgenauigkeit zum
Darstellen der Werte benötigt
wird. Darüber
hinaus hat das Runden von Koordinatengenauigkeit von lokalisierten
Koordinatenwerten weniger einen optischen Einfluss, als wenn dies
auf Objektkoordinaten angewendet wird, die mit Bezug auf das 3D-Modell
selbst definiert werden. Um die kleinstmöglichen Bitgenauigkeitserfordernisse
zu maximieren, werden örtliche vereinheitlichte
Werte am besten mit Bezug auf die längste Seite der Box definiert.
-
Man
nehme beispielsweise, in einer Ausführungsform der Erfindung, an,
dass ein Modell der Größe 10 × 10 × 10 angezeigt
werden soll und dass dieses ein Untermodell der Größe 2 × 2 × 2 an Position
3 × 3 × 3 enthält. Das
Untermodell enthält
unter anderem einen Eckpunkt an Position 3,21 × 3,21 × 3,21. Man nehme weiterhin
an, dass das Koordinatensystem stets normiert ist und dass eine
Genauigkeit von exakt zwei Stellen verwendet wird. Wenn die Eckpunkte
des Untermodells im Vergleich zu den lokalisierten Koordinaten gespeichert
werden, dann: werden die Koordinaten mit Bezug auf die Position des
Untermodells umformuliert: 3,21 -> 0,21;
werden die Koordinaten auf die Größe des Untermodells skaliert
und werden die Koordinaten auf zwei signifikante Stellen gerundet.
Wenn die Koordinaten vereinheitlicht, aber nicht lokalisiert werden,
dann: werden die Koordinaten nicht umformuliert; werden die Koordinaten
auf die Größe des Modells
skaliert: 3,21 -> 0,321
und werden die Koordinaten auf zwei signifikante Ziffern gerundet:
0,321 -> 32. Normalerweise werden
diese Operationen für
jede Dimension jedes Eckpunkts durchgeführt; in diesem Beispiel ist
jedoch nur eine Koordinate eines Eckpunkts erörtert worden.
-
In
dieser Ausführungsform
werden, wenn komprimierte Koordinaten wiederhergestellt werden, die
Operationen umgekehrt.
-
Bei
lokalisierten Koordinaten: Gerundete Ziffern werden in eine Zahl
umgewandelt, also 42 -> 0,42;
Zahlen werden nicht skaliert, also 0,42 -> 0,21 und Koordinaten werden nicht umformuliert,
also 0,21 -> 3,21.
Bei nicht lokalisierten Koordinaten: Gerundete Ziffern werden in
eine Zahl umgewandelt, also 32 -> 0,32
und Zahlen werden nicht skaliert, also 0,32 -> 3,2. (Man beachte, dass die lokalisierten
Koordinaten gleich geblieben sind, während die nicht lokalisierten
sich leicht verschoben haben.)
-
Gleitkommadarstellungen
können
durch Spezifizierung von gewünschter
Genauigkeit für
gespeicherte Werte weiter komprimiert werden. Das heißt, entweder
durch direkten Support vom Entwickler eines Modells oder durch Analyse
von Modelldaten, die an einen Spieler gesendet werden, können Gleitkommawerte
adaptiv angepasst werden, um der erwarteten Verwendung des Objekts
eines Modells zu entsprechen. Ein Spielentwickler kann beispielsweise
bestimmen, dass, basierend auf der vorhergesagten Inanspruchnahme
eines Objekts, n = 6 Bit alles ist, was erforderlich ist, um Gleitkommawerte
eines Objekts zu verschlüsseln,
während
noch immer eine zufrieden stellende optische Leistung geliefert wird.
(Man beachte, dass man bestimmen kann, eine Exponentenkomponente
zu behalten (z. B. sie nicht zu implizieren), oder wählen kann,
deren Genauigkeit in Übereinstimmung
mit der folgenden Diskussion über
das Beschränken
von Mantissengenauigkeit zu beschränken.) Es gibt mehrere Bedingungen,
durch die der Bedarf an Genauigkeit vom Entwickler eines Modells
oder automatisch bestimmt werden kann.
-
Eine
solche Bestimmungsbedingung ist, wenn ein Designer beim Entwerfen
eines Spiels die erwarteten Verwendungen für ein Objekt kennt. In solchen
Fällen
kann die Darstellung eines Objekts auf das Reduzieren des Speicherplatzverbrauchs
zugeschnitten werden. Wenn beispielsweise bekannt ist, dass ein
bestimmtes Objekt Hintergrundlandschaft darstellt, die stets von
Spielern des Spiels „weit
entfernt" sein wird,
ist es nicht notwendig, präzise
Genauigkeit für
Merkmalskoordinaten beizubehalten. Dies ist der Fall, weil gerenderte
Objektmerkmale aus einer großen
Entfernung zusammenfallen und undeutlich sein werden. Deshalb ist
es unnötig,
präzise
Objektmerkmalsdaten zu bewahren. (In der Tat werden bestimmte Renderingsysteme
nicht versuchen, Objektmerkmale zu rendern, wenn bekannt ist, dass
das Merkmal einen vernachlässigbaren
Einfluss auf ein Ausgabegerät
(z. B. den Bildschirm) haben würde.)
Unter solchen Umständen
wird die bei einem Standard-Gleitkommawert verfügbare Genauigkeit vergeudet
sein und es kann eine Formel angewendet werden, um die Bitgenauigkeit
auf Grundlage der theoretischen Entfernung des Objekts von Betrachtern (z.
B. Spielern) zu runden. Die Beschaffenheit der Rundungsformel hängt von
den involvierten Entfernungen ab.
-
Alternativ
kann automatische Rundung gemäß dem Abstand 230 zwischen
dem Ursprung der Zeichen-Box 222 und dem Modellursprung
(z. B. Koordinate 0,0,0 für
den 3D-Raum des Modells) bestimmt werden. Es kann auch eine abstandsbasierte Genauigkeitsreduktion
gemäß dem Abstand
zwischen einer Betrachtungsperspektive und der Zeichen-Box 222 eines
Objekts bestimmt werden. Somit wird jeder Benutzer in einer Mehrbenutzerumgebung verschiedene
Detaillierungsgrade gemäß seinem Blickwinkel
auf das Modell sehen. Der Prozentsatz der Bitgenauigkeitsreduktion
kann als eine lineare Reduktion, schrittweise Gruppierung von Abstandsbereichen
oder andere Formel errechnet werden. Abstände können mit einer maximal möglichen
Modellkoordinate (Zeichenkoordinate), einem maximal entfernten Objekt,
das sich derzeit im Modell befindet, einem maximal erkennbaren Abstand
(z. B. einem Abstand, über
den hinaus keine Auswirkung auf ein Ausgabegerät vorliegt) oder einem anderen
Kriterium verglichen werden.
-
Um
die ursprünglichen
Modelldaten wiederherzustellen, werden der Abstand 230 und
der abstandsbasierte Skalierungsfaktor für das Objekt 224 beobachtet,
wodurch ermöglicht
wird, dass dessen örtliche
Koordinaten in das Koordinatensystem des Modells zurückkonvertiert
werden.
-
5 stellt
ein Koordinatensystem für
ein 3D-Modell mit X-Achse 234, Y-Achse 232 und
Z-Achse 234, wobei die Genauigkeitsreduktion gemäß dem Abstand
von dem Ursprung 236 eines 3D-Modells durchgeführt wird.
Wie dargestellt, werden Abstände grob
als nah 238, mittel 240 und weit 242 eingestuft. Diese
Abstände
entsprechen dem jeweiligen Unterteilen (Reduzieren) traditioneller
Gleitkommalängen in
jeweilige 20-, 15- und 10-Bit-Kodierungen. (Man beachte, dass diese
Kodierungen willkürlich
sind.)
-
6 stellt
das Bestimmen von Gleitkommagenauigkeit auf Grundlage der Koordinatendichte eines
Objekts dar. Das heißt,
die Genauigkeit wird zum Abstand zwischen den Eckpunkten eines Objekts
proportional gemacht. Wenn ein Objekt mit weit beabstandeten Eckpunkten
definiert ist 246, wird weniger Genauigkeit verwendet.
Wenn ein Objekt mit nah beabstandeten Eckpunkten definiert wird 248, wird
höhere
Genauigkeit verwendet; es wird vorausgesetzt, dass Genauigkeit erforderlich
ist, um (wie bei kleinen Objekten) ein korrektes Rendering der Oberfläche eines
Objekts sicherzu stellen. Anstatt alle Eckpunkte in einem Objekt
zu berechnen, können Merkmalspunkte,
z. B. bestimmte Koordinaten, zur Dichtebestimmung verwendet werden.
Bei einem Würfel
beispielsweise kann eine Betrachtung der Eckpunktbeabstandung zum
Bestimmen der Genauigkeit verwendet werden, die für eine Seite
oder den gesamten Würfel
benötigt
wird. Eine verwandte Alternative besteht darin, die Größe eines
Objekts zum Bestimmen der Genauigkeit zu verwenden. Wie bei dicht
beabstandeten Koordinaten oder Merkmalspunkten erfordern kleine
Objekte höhere
Genauigkeitswerte, um Rundungsfehler von verdeckenden Objektdetails
zu verhindern, wohingegen große
Objekte dies nicht bedingen.
-
Bei
einem gegebenen Eckpunkt (Merkmalspunkt oder anderweitig) wird eine
Berechnung durchgeführt,
um die relative Näherung
des gegebenen Eckpunkts 250, 252 zu den anderen
Eckpunkten für das
Objekt zu bestimmen. Wenn Merkmalspunkte verwendet werden, wird
die Berechnung mit Bezug auf andere Merkmalspunkte 254 gemacht.
Die Näherungsberechnung
wird zum Bestimmen eines zusätzlichen
Reduktionsprozentsatzes zur Koordinatenkodierung verwendet. Die
Eckpunktnäherung
wird grob als nahe, mittel und weit eingestuft. Diese Einstufungen
entsprechen 50 %, 55 % bzw. 60 % Reduktion der Gleitkommagenauigkeitsreduktion
für Koordinatenwerte.
(Man beachte, dass diese Reduktionsfaktoren willkürlich sind).
-
Wenn
wir eine anfängliche
Anwendung der abstandsbasierten Genauigkeitsreduktion von 5 voraussetzen
und dann näherungsbasierte
Reduktion anwenden, werden die ursprünglichen Gleitkommawerte von
32 Bit zunächst
auf 20, 15 und 10 Bit reduziert und dann weiter von 20 Bit auf 15
Bit, 15 Bit auf 8 Bit und 10 Bit auf 6 Bit reduziert, basierend
auf der Näherung.
Folglich erfordert ein Eckpunkt, der ursprünglich 96 Bit zum Darstellen
der X-, Y-, Z-Werte erforderte, jetzt lediglich einen Höchstwert
von 30 Bit und einen Mindestwert von 18 Bit. Es versteht sich, dass
die hierin offenbarten Genauigkeitsreduktionstechniken in verschiedenen
Kombinationen durchgeführt
werden können,
um die Koordinatengenauigkeitserfordernisse zu reduzieren.
-
Darüber hinaus
kann die Genauigkeitsbestimmung gemäß dynamischen Spielerverbindungsfaktoren,
wie Netzgeschwindigkeit, -effizienz oder -belastung und Kommunikationsgeschwindigkeit,
-latenzzeit usw., adaptiv modifiziert werden. Andere Charakteristika
eines Modells und von dessen Objekte können ebenfalls zum Bestimmen
einer benötigten Genauigkeit
für Gleitkommawerte
verwendet werden. Sobald jedoch eine bestimmte Genauigkeit bestimmt
ist, können
Gleitkommawerte von einem Provider zu einem Empfänger gesendet werden.
-
7 zeigt
ein bestimmtes Verfahren zum Packen von Eckpunktdaten zur Lieferung
an den Empfänger
(d. h. Spieler des Spiels). Man nehme an, dass gemäß der oben
beschriebenen Bestimmungsvorgänge
bestimmt wird, dass 8-Bit-Genauigkeit
zum Darstellen der Koordinaten eines Objekts in einem Modell ausreicht.
Gezeigt ist eine Kodierung von Daten für die X-Koordinate 260,
Y-Koordinate 262 und Z-Koordinate 264 eines
bestimmten Eckpunkts. Hier sind lediglich 24 Bit zum Verschlüsseln aller
drei Eckpunkte erforderlich. Dies ist ein beträchtlicher Gewinn gegenüber den
96 Bit, die zum Verschlüsseln von
drei IEEE-754-Werten von 32 Bit erforderlich sind.
-
Ebenfalls
gezeigt ist ein m Bit breites Feld 266, dass zum Markieren
des Endes einer Eckpunktsequenz verwendet wird. Die Größe und Notwendigkeit
dieses Felds wird von der Kodierungsanordnung abhängen, die
von einer bestimmten Ausführungsform
der Erfindung eingesetzt wird (7 z. B.
verwendet kein Stoppfeld). Wenn das Stoppfeld 266 eingesetzt
wird, muss es eine bestimmte Bitlänge und einen bestimmten Wert
oder eine Menge von Werten, die als ein Stoppwort und nicht eine
kurze Gleitkommasequenz identifiziert werden kann, aufweisen. Die Länge und
der Content dieses Stoppworts hängen von
der Kodierungsimplementierung ab.
-
8 stellt
ein anderes Verfahren zum Verpacken von Gleitkommawerten dar, nachdem
eine bestimmte Genauigkeit bestimmt worden ist. Hier wird ein Stoppfeld
durch Übertragen
eines Indikatorfelds I 280, 288 vermieden, das
angibt, wie viele Bits zum Verschlüsseln der X-Komponente 282,
Y-Komponente 284 und Z-Komponente 286 eines Eckpunkts
verwendet werden. Man nehme beispielsweise an, dass ein Modellentwickler
bestimmt (siehe z. B. 5), das jede Eckpunktkoordinate
mit 10-Bit-Genauigkeit verschlüsselt
werden kann, und jedes I-Feld 280, 288 5 Bit beträgt, um das
Markieren möglicher
Bitlängen
von bis zum vollständigen IEE-754-Standard
25 = 32 Bit zu ermöglichen (z. B. wird der Gleitkommaexponent
nicht unterdrückt).
In dieser 10-Bit-Genauigkeitskonfiguration
werden lediglich 35 Bit benötigt,
um die I-X-Y-Z-Sequenz 280 – 286 für alle drei
Eckpunkte zu verschlüsseln.
Man beachte, dass der zweite I-Wert 288 ein anderes Genauigkeitserfordernis
für folgende
Eckpunkte angeben kann.
-
9 stellt
ein anderes Kodierungsverfahren dar, in dem Gleitkommawerte in Wörter von
32 Bit gepackt werden. In dieser Konfiguration kann jede Eckpunktkomponente
(z. B. die X-, Y-, Z-Werte) eine willkürliche Länge aufweisen. Zum Identifizieren
der Packungsanordnung wird eine Haupttabelle verwendet. Folglich
wird, wie gezeigt, ein Trio von 4 Bit zum Signalisieren der Anzahl
der für
die folgenden drei Eckpunktwerte im Gebrauch stehenden Bits verwendet.
Man beachte, dass 24 nur 16 Werte darstellen kann,
es kann jedoch eine vollständige
24-Bit-Mantissensequenz verschlüsselt
werden, wenn eine Mindestlänge
von 8 Bit vorausgesetzt wird (dies setzt einheitliche Koordinaten
und einen implizierten Gleitkommaexponenten voraus). Wenn eine längere Tabellengröße verwendet
wird, kann das Voraussetzen von Mindestmantissenlängen unnötig sein.
-
Wie
gezeigt, identifizieren anfängliche
Einträge 300, 302, 304 die
Größen der
Eckpunkte X 306, Y 308 und Z 310. Wie
dargestellt, ist X 20 Bit breit, was dem ersten Feld mit einem Wert
von 12 entsprechen würde.
Da die Kombination der drei Felder und X 32 Bit beträt, füllen diese
Gegenstände
ein Datenwort komplett auf.
-
Y
ist 23 Bit breit, was einem Wert von 15 des zweiten Felds 302 entspricht.
Z 310 jedoch ist lediglich 8 Bit breit. Wenn man eine Länge von
8 Bit annimmt, wären
die dritten Felder alle Nullen. Auf den Z-Wert folgt der Beginn
des ersten Felds für
das nächste
Trio von Eckpunkten. Da Y 308 und Z 310 jedoch
31 Bit lang sind, passt nur das erste Bit des nächsten ersten Felds 312 in
das zweite Datenwort. Der Rest des Felds 312 wird im dritten
Datenwort fortgesetzt und so weiter.
-
Man
wird zu schätzen
wissen, dass die Ausführungsformen
der 3, 7 – 9 ohne Verlust
der Allgemeingültigkeit verändert werden
können.
Sobald eine Bestimmung der Gleitkommagenauigkeit vorgenommen worden
ist, ob automatisch oder durch Eingriff eines Spielentwicklers (z. B.
Einstellen eines erwarteten Zoomverhältnisses (Skalierungsverhältnisses),
können
IEEE-754-Gleitkommawerte entsprechend angepasst werden.
-
10 stellt
ein graphenbasiertes Kodierungsschema für Gleitkommazahlen dar. In
dieser Darstellung können
Eckpunkte mit Bitsequenzen mit willkürlicher Länge verschlüsselt und als ein einziger Block
(oder Blocks) von Bitdaten übertragen
werden. Wie gezeigt, weist ein solcher Graph einen Startknoten 330,
innere Knoten 332 und Astknoten (Blattknoten) 334, 336 auf
(nur repräsentative
Knoten identifiziert). Ein Aufzeichnen einer Graph-Traversierung vom
Startknoten zu einem bestimmten Astknoten entspricht einer bestimmten
Gleitkomma-Bitsequenz, z. B. einer Mantissenkodierung.
-
In
dieser Konfiguration können
Gleitkommawerte willkürlich
gerundet werden, in Übereinstimmung
damit, wo Astknoten angeordnet sind. Das heißt, während der Kodierung von Standard-Gleitkommawerten
kann der Graph bitweise traversiert werden, bis ein Astknoten erreicht
wird. An einem solchen Punkt entspricht eine Aufzeichnung der Traversierung
dem neuen Kodierungsformat (z. B. gerundetem Format) für einen
solchen Standard-Gleitkommawert. Ein Astknoten 338 kann
beispielsweise einem gerundeten Gleitkommawert mit einer Mantissenbitsequenz
000 entsprechen – der
Effekt besteht darin, zu entscheiden, dass für ein bestimmtes Modell kein
Gleitkommawert drei vorangestellte Null-Bits aufweisen wird. Somit
würde während des Verschlüsselns eines
32-Bit-Binärwerts 110100100...001
dieser zu einem 3- Bit-Wert
von 110 gerundet werden. Analog dazu würde ein anderer Astknoten 336 einer
längeren
Bitsequenz 0110001 entsprechen, wodurch bessere Genauigkeit bereitgestellt
wird. Vorausgesetzt, sowohl der Provider als auch der Empfänger weisen
eine Kopie dieses Graphen in örtlichem
Speicher auf, ist die Dekodierung (Entschlüsselung) unbedeutend. Bei empfangenen Eckpunktdaten
wird eine bitweise Traversierung des Graphen Eckpunktwerte ordnungsgemäß aussortieren.
Astknoten implizieren Wertetrennung. Darüber hinaus bietet dieses Format
ein Minimum an Fehlerkorrektur, da eine Unfähigkeit, alle Bits in einer
Kodierungssequenz zu verbrauchen, einen Übertragungsfehler angeben wird,
was eine Fehlerbeseitigung ermöglicht.
-
11 ist
ein Ablaufdiagramm des Kodierungs- und Dekodierungsvorgangs für gerundete Gleitkommawerte.
Der Zusammenhang des Ablaufdiagramms ist die Erzeugung eines 3D-Modells,
in dem Spieler ihr Spiel spielen sollen. Dieses Diagramm betrifft
ein bestimmtes Objekt in dem Modell.
-
Ein
erster Arbeitsvorgang 350 besteht darin, das Objekt zu
definieren, wobei ein solches Objekt letztendlich in Übereinstimmung
mit mehreren Dreiecken definiert wird. Die mehreren Dreiecke werden gemäß einer
Menge von Eckpunkten definiert, wobei, wenn die Geometrie optimiert
wird, die Eckpunkte von den verschiedenen Dreiecken geteilt werden.
-
Ein
folgender Arbeitsvorgang 352 besteht darin, eine Gleitkommagenauigkeit
für das
Objekt zu bestimmen. Wie oben erörtert,
kann diese in Übereinstimmung
mit dem vom Modellentwickler identifizierten Zoombereich (Skalierungsbereich)
für das
Objekt oder mittels anderer Verfahren bestimmt werden.
-
Ein
folgender Arbeitsvorgang 354 besteht darin, damit zu beginnen,
die verschlüsselten
Daten eines Objekts an einen Empfänger zu senden. Dieser Arbeitsvorgang
findet während
des Spielen des Spiels statt und zu diesem Zeitpunkt ist das gesamte 3D-Modell
zuvor erzeugt und statisch identifizierbare Genauigkeitsbestimmungen
bereits für
alle Objekte bestimmt worden. Dieser Arbeitsvorgang umfasst jedoch
das Anpassen einer aktuellen Genauigkeitsbestimmung in Übereinstimmung
mit den oben erörterten
dynamischen Faktoren, wie Intraobjektnäherung. Bei Übermittlung
von Objektdaten von einem Content-Provider 100 an einen
Empfänger,
z. B. Spieler 1 102, werden alle Eckpunktdaten gemäß eines
der oben für
die 3, 6 – 8 dargestellten
Verfahren verpackt 356 und in der Form von Übertragungspaketen übermittelt.
-
Bei
Empfang der komprimierten Eckpunktdaten expandiert 358 der
Spieler die Eckpunktdaten erneut zurück in ein Standard-IEE-754-Format.
Dies wird durchgeführt,
da heutige Rendering-Hardware in der Regel bedingt, dass die Daten
in einem Standardformat sind. Dieser Arbeitsvorgang ist optional, wenn
ein Chipsatz zum direkten Verarbeiten gerundeter Gleitkommawerte
wie hierin beschrieben zur Verfügung
steht.
-
Nach
der erneuten Expansion 358 wird das Objekt in örtlichen
Modellspeicher (oder anderen Speicher) zur Verwendung während des
Spielens des Spiels integriert 360. Der Nettoeffekt des
Komprimierungsvorgangs des Verpackens 356 und Expandierens 358 besteht
darin, vollständig
gebildete Gleitkommawerte in sowohl dem Content-Provider 100 als
auch den Umgebungen der Spieler 102 – 108 zu haben; wo
jedoch die clientseitigen Werte eine Genauigkeitseinbuße erfahren
haben, liegen unbedeutende bis wahrnehmbare Effekte vor, um die Übertragung
der Werte zu unterstützen.
-
12 und
die folgende Diskussion sollen eine kurze, allgemeine Beschreibung
einer geeigneten Rechnerumgebung liefern, in der die Erfindung umgesetzt
werden kann. Die Erfindung kann mit Bezugnahme auf verschiedene
High-Level-Programmmodule
und/oder Low-Level-Hardware-Zusammenhänge beschrieben werden. Fachmänner werden verstehen,
dass Programmmodulbezugnahmen durch Low-Level-Anweisungen ausgetauscht
werden können.
-
Programmmodule
umfassen Vorgehensweisen, Funktionen, Programme, Komponenten, Datenstrukturen
und dergleichen, die bestimmte Aufgaben durchführen oder bestimmte abstrakte
Datentypen implementieren. Die Module können in Rechnersysteme mit
einem einzigen und mehreren Prozessoren sowie tragbaren Geräten und
steuerbaren Verbrauchergeräten
eingebaut sein. Es versteht sich, dass Module auf einer einzigen
Rechnervorrichtung implementiert oder über eine Umgebung eines verteilten Netzes
verarbeitet werden können,
in der Module in sowohl örtlichen
als auch entfernten Speichervorrichtungen angeordnet sein können.
-
Ein
beispielhaftes System zum Implementieren der Erfindung umfasst eine
Rechnervorrichtung 402 mit einem Systembus 404 zum
Zusammenkoppeln verschiedener Komponenten in der Rechnervorrichtung.
Der Systembus 404 kann ein beliebiger mehrerer Busstrukturtypen
sein, einschließlich
eines Speicherbusses oder Speichercontrollers, eines externen Busses
und eines örtlichen
Busses, unter Verwendung einer beliebigen einer Vielfalt von herkömmlichen
Busarchitekturen, wie PCI, AGP, VESA, Microchannel, ISA und EISA,
um nur ein paar wenige zu nennen. Man beachte, dass nur ein einziger
Bus dargestellt ist, obwohl mehrere Busse in der Regel Leistungsvorteile
vollbringen. In der Regel sind ein Prozessor 406, ein Speicher 408,
Speichervorrichtungen (z. B. Festspeicher 410, Wechselspeicher 412,
optischer/-Laserspeicher 414),
eine Videoschnittstelle 416, Eingabe-/Ausgabeschnittstellenanschlüsse 418 und
eine Netzschnittstelle 420 an dem Bus 402 angeschlossen.
-
Der
Prozessor 406 kann ein beliebiger von verschiedenen, im
Handel erhältlichen
Prozessoren sein, einschließlich
Intel-Prozessoren
oder der DEC Alpha, PowerPC, programmierbare Gate-Arrays, Signalprozessoren
oder dergleichen. Dual-, Quadprozessoren oder andere Architekturen
mit mehreren Prozessoren können
ebenfalls verwendet werden. Der Systemspeicher umfasst Direktzugriffsspeicher (random
access memory, RAM) 422 und statischen oder wiederprogrammierbaren
Festwertspeicher (read-only memory, ROM) 424. Ein grundlegendes Eingabe-/Ausgabesystem
(basic input/output system, BIOS) enthält Routinen zur Informationsübermittlung
zwischen den Komponenten der Vorrichtung 402 oder Geräteinitialisierung.
-
Der
Festspeicher 410 bezieht sich im Allgemeinen auf die Festplatte
und andere semipermanent angeschlossene Datenträger (Medien), wohingegen der
Wechselspeicher 412 sich im Allgemeinen auf einen Geräteschacht
bezieht, in den Wechseldatenträger,
wie eine Diskette, herausnehmbar eingelegt werden. Der optische/Laserspeicher 414 umfasst
Vorrichtungen, die auf CD-ROM-, DVD- oder CD-RW-Technologie basieren
und für
gewöhnlich über eine
Geräteschnittstelle 426, 428, 430 an
den Systembus 404 gekoppelt sind. Die Speichersysteme und
zugehörigen
computerlesbaren Datenträger stellen
Speicherung von Daten und ausführbaren
Anweisungen (Befehlen) für
die Rechnervorrichtung 402 bereit. Man beachte, dass andere
Speicheroptionen Magnetbandkassetten, Bänder, Flash-Speicherkarten,
Memorysticks, digitale Videoplatten und dergleichen umfassen.
-
Die
beispielhafte Rechnervorrichtung 402 kann eine Reihe von
Programmmodulen in dem RAM 422, dem ROM 424 und
den Speichervorrichtungen 410, 412, 414 speichern
und ausführen.
Typische Programmmodule umfassen ein Betriebssystem 432, Anwendungsprogramme 434 (z.
B. einen Webbrowser oder eine Netzanwendung) usw. und Anwendungsdaten 436.
Das Programmmodul oder eine andere Systemausgabe kann vom Videosystem 416 (z. B.
einer 2D- und/oder 3D-Grafik-Rendering-Vorrichtung) verarbeitet
werden, die an den Systembus 404 und ein Ausgabegerät 438 gekoppelt
ist. Typische Ausgabegeräte
umfassen Monitoren, Flachbildschirme, Flüssigkristallanzeigen und Aufzeichnungsgeräte, wie
Videorecorder.
-
Ein
Benutzer der Rechnervorrichtung 402 ist in der Regel eine
Person, die mit der Rechnervorrichtung mittels Manipulation eines
Eingabegeräts 440 interagiert.
Herkömmliche
Eingabegeräte
umfassen eine Tastatur, eine Maus, ein Tablett, eine berührungsempfindliche
Oberfläche,
einen Digitalstift, einen Joystick, ein Mikrofon, ein Gamepad, eine
Satellitenschüssel
usw. Man kann Eingabe auch mittels Manipulation einer virtuellen
Realitätsumgebung oder
mittels Verarbeiten der Ausgabe von einer Datendatei oder einer
anderen Rechnervorrichtung bereitstellen.
-
Von
der Rechnervorrichtung 402 wird erwartet, dass sie in einer
vernetzten Umgebung unter Verwendung von logischen Verbindungen
zu einem oder mehreren entfernten Rechnervorrichtungen arbeitet. Eine
solche entfernte Rechnervorrich tung 442 kann ein Webserver
oder ein anderes Programmmodul sein, das ein Netzanwendungsprotokoll
(z. B. HTTP, Dateitransferprotokoll (File Transfer Protocol, FTP), Gopher,
Weitbereichs-Informationsserver (Wide Area Information Server, WAIS)),
einen Router, ein Peer-Gerät
oder einen anderen üblichen
Netzknoten einsetzt und in der Regel viele oder alle der für die Rechnervorrichtung 402 erörterten
Elemente umfasst. Die Rechnervorrichtung 402 weist eine
Netzschnittstelle 420 (z. B. eine Ethernet-Karte) auf,
die an den Systembus 404 gekoppelt ist, um die Kommunikation
mit der entfernten Vorrichtung 442 zu ermöglichen.
Sowohl die örtliche
Rechnervorrichtung 402 als auch die entfernte Rechnervorrichtung 442 können kommunikativ
an ein Netz 444, wie ein WAN, LAN, Gateway, Internet oder
einen anderen öffentlichen
oder privaten Datenpfad, gekoppelt sein. Man wird zu schätzen wissen,
dass andere Kommunikationsstrecken zwischen den Rechnervorrichtungen, wie
mittels eines Modems 446, das an einen Schnittstellenanschluss 418 gekoppelt
ist, ebenfalls verwendet werden können.
-
Gemäß der Praktiken
von Fachmännern
der Technik der Computerhardware- und -softwareprogrammierung wird
die vorliegende Erfindung mit Bezugnahme auf Handlungen und symbolischen
Darstellungen von Arbeitsvorgängen
beschrieben, die manchmal als vom Computer ausgeführt bezeichnet werden.
Man wird zu schätzen
wissen, dass die Handlungen und symbolisch dargestellten Arbeitsvorgänge die
Manipulation von elektrischen Signalen, die Datenbits darstellen,
durch den Prozessor 406 umfassen, was eine resultierende
Umwandlung oder Reduktion der Darstellung der elektrischen Signale
und das Halten von Datenbits an Speicherstellen in dem Speicher 408 und
den Speichersystemen 410, 412, 414 bewirkt,
um so den Betrieb des Computersystems und/oder das Verarbeiten von
Signalen neu einzurichten oder anderweitig zu verändern. Die Speicherstellen,
an denen Datenbits gehalten werden, sind physische Stellen mit bestimmten
elektrischen, magnetischen oder optischen Eigenschaften, die den
Datenbits entsprechen.
-
Nachdem
die Prinzipien der Erfindung mit Bezugnahme auf dargestellte Ausführungsformen beschrieben
und dargestellt wurden, wird anerkannt werden, dass die Anordnung
und Einzelheiten der dargestellten Ausführungsformen ohne Abweichen von
solchen Prinzipien modifiziert werden können.
-
Obwohl
die vorhergehende Beschreibung sich – zur erklärenden Einfachheit – beispielsweise auf
das Komprimieren von Gleitkommawerten für Eckpunkte konzentrierte,
wird anerkannt werden, dass dieselben Techniken und Analysen auf
verschiedene numerische Werte angewendet werden können, die
des Transports zwischen einem Content-Provider und einem Spieler
bedürfen
(z. B. zum Komprimieren von Geräuscheffekten).
Folglich sollen die detaillierten Ausführungsformen in Anbetracht der
großen
Vielfalt an alternierenden Anwendungen für die Erfindung lediglich veranschaulichend
sein und sollten nicht als den Schutzumfang der Erfindung einschränken verstanden
werden.