DE60021745T2 - Datenkompression - Google Patents

Datenkompression Download PDF

Info

Publication number
DE60021745T2
DE60021745T2 DE60021745T DE60021745T DE60021745T2 DE 60021745 T2 DE60021745 T2 DE 60021745T2 DE 60021745 T DE60021745 T DE 60021745T DE 60021745 T DE60021745 T DE 60021745T DE 60021745 T2 DE60021745 T2 DE 60021745T2
Authority
DE
Germany
Prior art keywords
data
floating
point number
standard
model
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.)
Expired - Lifetime
Application number
DE60021745T
Other languages
English (en)
Other versions
DE60021745D1 (de
Inventor
Jeremy A. Kenyon
Peter D. Smith
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.)
Wildtangent Inc Redmont
WildTangent Inc
Original Assignee
Wildtangent Inc Redmont
WildTangent Inc
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 Wildtangent Inc Redmont, WildTangent Inc filed Critical Wildtangent Inc Redmont
Publication of DE60021745D1 publication Critical patent/DE60021745D1/de
Application granted granted Critical
Publication of DE60021745T2 publication Critical patent/DE60021745T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Surgical Instruments (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Generation (AREA)

Description

  • 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 102108 ü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 102108 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 102108 ü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 280286 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, 79 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, 68 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 102108 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.

Claims (26)

  1. Rechnervorrichtungsimplementiertes Verfahren zum Komprimieren eines Objektmodells, wobei das Objekt durch eine Datensammlung von Datenelementen definiert wird, wobei jedes Datenelement in der Datensammlung durch eine Standardformat-Gleitkommazahl mit einer ersten Datengröße dargestellt wird, und jedes Datenelement in der Datensammlung einer räumlichen Position entspricht, die von einem Teil des Objekts belegt wird, wobei das Verfahren umfasst: Bestimmen einer Zeichen-Box für das Objekt; Bestimmen eines Abstands zwischen der Zeichen-Box und einem Bezugspunkt in dem Modell; Auswählen eines Datenreduktionsfaktors für die Datengröße, der wenigstens teilweise auf dem Abstand basiert; Komprimieren jedes Datenelements in der Datensammlung gemäß dem Datenreduktionsfaktor durch Zuordnen der Standard-Gleitkommazahl mit der ersten Datengröße jedes Datenelements zu einer Nicht-Standard-Gleitkommazahl mit einer zweiten Datengröße, die kleiner als die erste Datengröße ist; und wobei alle räumlichen Positionen durch einheitliche Koordinatenwerte zwischen Null und Eins unter Bezug auf einen örtlichen Ursprung für die Zeichen-Box dargestellt werden.
  2. Verfahren nach Anspruch 1, des Weiteren umfassend: Empfangen des Abstands als einen Eingabeparameter für das rechnerimplementierte Verfahren zum Komprimieren von Daten.
  3. Verfahren nach Anspruch 1, in dem jedes Datenelement in der Sammlung einen Datenwert besitzt, wobei das Verfahren des Weiteren umfasst: Definieren jedes Datenwerts in Bezug auf die Zeichen-Box; und Auswählen des Datenreduktionsfaktors, der des Weiteren auf einer Größe der Zeichen-Box basiert.
  4. Verfahren nach Anspruch 3, wobei das Verfahren des Weiteren umfasst: Bestimmen eines Näherungswerts zwischen ersten und zweiten Elementen in der Datensammlung; wobei das Auswählen des Datenreduktionsfaktors des Weiteren auf dem Näherungswert basiert.
  5. Verfahren nach Anspruch 1, wobei das Verfahren des Weiteren umfasst: Bestimmen eines Näherungswerts für ein erstes Element in der Datensammlung, der auf seinem räumlichen Abstand von einer Vielzahl von anderen Elementen in der Datensammlung basiert; wobei das Auswählen des Datenreduktionsfaktors des Weiteren auf dem Näherungswert basiert.
  6. Rechnervorrichtungsimplementiertes Verfahren zum Komprimieren von Modelldaten eines Modells mit mehreren Objekten, umfassend: Bestimmen einer Zeichen-Box für ein Modellobjekt, das gemäß einer Datensammlung von Datenelementen definiert wird, wobei jedes Datenelement in der Datensammlung einer räumlichen Speicherstelle entspricht, die von einem Teil des Modellobjekts belegt wird, und jedes Datenelement durch eine Standardformat-Gleitkommazahl mit einer ersten Datengröße dargestellt wird; Bestimmen eines Skalierungsbereichs in Bezug auf die Zeichen-Box und einen Bezugspunkt in dem Modell; Auswählen eines Datenreduktionsfaktors, der wenigstens teilweise auf dem Skalierungsbereich basiert; und Komprimieren der Datensammlung gemäß dem Datenreduktionsfaktor durch Zuordnen jeder Standard-Gleitkommazahl der ersten Datengröße jedes Datenelements zu einer Nicht-Standard-Gleitkommazahl mit einer Datengröße, die kleiner als die erste Datengröße ist, wobei alle räumlichen Positionen durch einheitliche Koordinatenwerte zwischen Null und Eins unter Bezug auf einen örtlichen Ursprung für die Zeichen-Box dargestellt werden.
  7. Verfahren nach Anspruch 6, des Weiteren umfassend: Bestimmen einer Länge n, die wenigstens teilweise auf dem Skalierungsbereich basiert; und Umwandeln jeder Standardformat-Gleitkommazahl in eine Nicht-Standardformat-Gleitkommazahl mit einer Mantisse mit einer Länge von n Bit und einem optionalen Vorzeichenbit.
  8. Verfahren nach Anspruch 7, des Weiteren umfassend: Erstellen eines Übertragungspakets, das mehrere Nicht-Standard-Gleitkommazahlen von gleicher Bit-Länge, gefolgt von einem Stoppwort, umfasst; und Bereitstellen des Übertragungspakets für den Empfänger.
  9. Herstellungsartikel, umfassend ein rechnervorrichtungslesbares Medium, das darauf verschlüsselte Anweisungen enthält, die in der Lage sind, einen Prozessor zu veranlassen, die Arbeitsvorgänge von Anspruch 8 durchzuführen.
  10. Verfahren nach Anspruch 6, des Weiteren umfassend: Bestimmen eines Rundungsfaktors, der wenigstens teilweise auf dem Skalierungsfaktor basiert, für jede Standardformat-Gleitkommazahl; Umwandeln jeder derartigen Standardformat-Gleitkommazahl in eine Nicht-Standardformat-Gleitkommazahl, die gemäß dem Rundungsfaktor gerundet wird; und Erstellen eines Übertragungspakets, das wenigstens eine Paarbildung aus einem Indikatorfeld gefolgt von einer darauf folgenden Nicht-Standardformat-Gleitkommazahl umfasst; wobei das Indikatorfeld eine Bitlänge für jede folgende Nicht-Standardformat-Gleitkommazahl identifiziert.
  11. Verfahren nach Anspruch 6, des Weiteren umfassend: Bestimmen eines Rundungsfaktors, der wenigstens teilweise auf dem Skalierungsfaktor basiert, für jede Standardformat-Gleitkommazahl; Umwandeln jeder derartigen Standardformat-Gleitkommazahl in eine Nicht-Standardformat-Gleitkommazahl, die gemäß dem Rundungsfaktor gerundet wird; und Erstellen eines Übertragungspakets, das Gruppierungen von mehreren Indikatorfeldern mit festen Längen, gefolgt von entsprechenden Nicht-Standardformat-Gleitkommazahlen, umfasst, wobei derartige Indikatoren die Bitlänge für derartige entsprechende Zahlen angeben; und Packen der Übertragungspakets in ein erstes Datenwort, wobei das Packen das Bestimmen, ob das Übertragungspaket größer ist als das erste Datenwort und, falls ja, das Packen eines restlichen Teils des Übertragungspakets in wenigstens ein folgendes Datenwort umfasst.
  12. Verfahren nach Anspruch 6, des Weiteren umfassend: Bereitstellen eines gerichteten Graphen, wobei ein derartiger Graph einen Startknoten, innere Knoten und Astknoten umfasst, wobei jeder innere und Astknoten einen Binärwert speichert, so dass ein Aufzeichnen einer Graph-Traverse von dem Startknoten zu einem bestimmten Astknoten einer bestimmten Gleitkommazahl-Sequenz entspricht; und Runden jeder Standardformat-Gleitkommazahl durch Traversierung des gerichteten Graphen gemäß den Bitwerten in einer derartigen Standardformat-Gleitkommazahl, und Ersetzen einer derartigen Standardformat-Gleitkommazahl durch einen Datensatz einer derartigen Traverse; wobei verschiedene Traversen des Graphen Datensätze von unterschiedlichen Längen ergeben können.
  13. Verfahren nach Anspruch 12, wobei das Verfahren des Weiteren umfasst: Erstellen eines Übertragungspakets durch Packen von gerundeten Gleitkommazahlen in ein erstes Datenwort; wobei das Packen das Bestimmen, ob das Übertragungspaket größer ist als das erste Datenwort und, falls ja, das Packen eines restlichen Teils des Übertragungspakets in wenigstens ein folgendes Datenwort umfasst.
  14. Verfahren nach Anspruch 13 zum Empfangen einer ersten Gleitkommazahl, umfassend: Bereitstellen des gerichteten Graphen für den Empfänger; Empfangen eines ersten Übertragungspakets mit n Bits; Vorbereiten eines ersten Traverse-Datensatzes durch Traversierung des gerichteten Graphen gemäß der Sequenz mit n Bit in dem ersten Übertragungspaket; und wenn ein Astknoten während einer derartigen Traverse erreicht wird, Identifizieren der ersten Gleitkommazahl als den ersten Traverse-Datensatz.
  15. Verfahren nach Anspruch 14, des Weiteren umfassend: Empfangen eines zweiten Übertragungspakets mit m Bits; und wenn kein Astknoten nach der Traverse von n Bit erreicht wird, Fortsetzen der Traversierung des gerichteten Graphen gemäß der Sequenz von n Bit in dem zweiten Übertragungspaket; und wenn ein Astknoten während einer derartigen Traverse erreicht wird, Identifizieren der ersten Gleitkommazahl als die kombinierten, von den ersten und zweiten übertragungspaketen traversierten Bitsequenzen.
  16. Herstellungsartikel, umfassend ein rechnervorrichtungslesbares Medium, das darauf verschlüsselte Anweisungen enthält, die in der Lage sind, einen Prozessor zu veranlassen, die Arbeitsvorgänge von Anspruch 12 durchzuführen.
  17. 3D-Rendering-Vorrichtung, umfassend ein darin eingebautes lesbares Medium, das darin verschlüsselte Anweisungen enthält, die in der Lage sind, die Rendering-Vorrichtung zu veranlassen, die Arbeitsvorgänge von Anspruch 12 durchzuführen.
  18. Rechnervorrichtungsimplementiertes Verfahren zur Datenexpansion, wobei derartige Daten durch Bestimmen einer Zeichen-Box für ein Modellobjekt komprimiert wurden, das gemäß einer Datensammlung mit Datenelementen definiert wird, die durch Standardformat-Gleitkommazahlen mit einer ersten Datengröße darstellt werden, wobei jedes Datenelement in der Datensammlung einer räumlichen Position entspricht, die von einem Teil des Modellobjekts belegt wird, Bestimmen eines Skalierungsbereichs zwischen der Zeichen-Box und einem Bezugspunkt des Modells, und Bestimmen eines Datenreduktionsfaktors, der wenigstens teilweise auf dem bestimmten Skalierungsbereich basiert, und Komprimieren der Datensammlung gemäß wenigstens dem Reduktionsfaktor, Zuordnen jedes Datenelements, das durch eine Standard-Gleitkommazahl mit der ersten Datengröße dargestellt wird, zu einer Nicht-Standardformat-Gleitkommazahldarstellung mit einer zweiten Datengröße, die kleiner ist als die erste Datengröße, wobei alle räumlichen Positionen des Modellobjekts durch einheitliche Koordinatenwerte zwischen Null und Eins unter Bezug auf einen örtlichen Ursprung der Zeichen-Box dargestellt werden, wobei das Verfahren umfasst: Empfangen einer komprimierten Datensammlung, die einem Modellobjekt entspricht; und Expandieren der Datensammlung gemäß einem vorgegebenen Expansionsfaktor durch Rück-Zuordnen jedes Datenelements, das durch die Nicht-Standard-Gleitkommazahl der zweiten Datengröße dargestellt wird, zu einer Standard-Gleitkommazahl mit der ersten Datengröße.
  19. Vorrichtung, umfassend: ein Speichermedium, in dem eine Vielzahl von Programmieranweisungen zum Reduzieren des Speicherplatzverbrauchs eines Objekts in einem Modell gespeichert ist, das durch eine Datensammlung mit Datenelementen definiert wird, die durch Standard-Gleitkommazahlen einer ersten Größe dargestellt werden, wobei jedes Datenelement in der Datensammlung einer räumlichen Position entspricht, die durch einen Teil des Objekts belegt wird, wobei die Programmieranweisungen ausgelegt sind zum und für: Bestimmen einer Zeichen-Box für das Objekt; Bestimmen eines Abstands zwischen der Zeichen-Box und einem Bezugspunkt in dem Modell; Auswählen eines Skalierungsfaktors für das Objekt, der wenigstens teilweise auf dem bestimmten Abstand basiert; Komprimieren des Objekts gemäß dem ausgewählten Skalierungsfaktor, Zuordnen jeder Standardformat-Gleitkommazahl mit erster Datengröße zu einer Nicht-Standardformat-Gleitkommazahl mit einer zweiten Datengröße, die kleiner ist als die erste Datengröße, wobei alle räumlichen Positionen durch einheitliche Koordinatenwerte zwischen Null und Eins in Bezug auf einen örtlichen Ursprung der Zeichen-Box dargestellt werden; und einen Prozessor, der an das Speichermedium gekoppelt ist, zum Ausführen der Programmieranweisungen.
  20. Vorrichtung nach Anspruch 19, wobei die Programmieranweisungen des Weiteren ausgelegt sind, um den Abstand als einen Eingabeparameter zu empfangen.
  21. Vorrichtung nach Anspruch 19, wobei das Auswählen des Skalierungsfaktors des Weiteren auf einer Größe der Zeichen-Box basiert.
  22. Vorrichtung nach Anspruch 19, wobei die erste Objektdarstellung eine Vielzahl von Objektmerkmalen umfasst.
  23. Vorrichtung nach Anspruch 21, wobei die Vielzahl von Objektmerkmalen Dreiecke umfasst.
  24. Vorrichtung nach Anspruch 21, wobei die Programmieranweisungen des Weiteren ausgelegt sind zum: Bestimmen eines Näherungswerts zwischen einem ersten und einem zweiten Objektmerkmal; wobei das Auswählen des Skalierungsfaktors des Weiteren auf dem Näherungswert basiert.
  25. Vorrichtung nach Anspruch 21, wobei die Programmieranweisungen des Weiteren ausgelegt sind zum: Bestimmen eines Näherungswerts für ein erstes Objektmerkmal, der auf seinem räumlichen Abstand von einer Vielzahl von anderen Objektmerkmalen basiert; wobei das Auswählen des Skalierungsfaktors des Weiteren auf dem Näherungswert basiert.
  26. Verfahren nach Anspruch 21, wobei für jedes Merkmal eine räumliche Position wenigstens teilweise durch eine Standardformat-Gleitkommazahl dargestellt wird, und wobei die Programmieranweisungen des Weiteren ausgelegt sind zum: Umwandeln der Standardformat-Gleitkommazahl in eine Nicht-Standardformat-Gleitkommazahl mit einer Mantisse mit einer Länge von n Bit; wobei alle räumlichen Positionen durch einheitliche Koordinatenwerte zwischen Null und Eins dargestellt werden.
DE60021745T 1999-09-18 2000-09-15 Datenkompression Expired - Lifetime DE60021745T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US399062 1999-09-18
US09/399,062 US6577769B1 (en) 1999-09-18 1999-09-18 Data compression through adaptive data size reduction
PCT/US2000/040914 WO2001022367A1 (en) 1999-09-18 2000-09-15 Data compression

Publications (2)

Publication Number Publication Date
DE60021745D1 DE60021745D1 (de) 2005-09-08
DE60021745T2 true DE60021745T2 (de) 2006-04-20

Family

ID=23577971

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60021745T Expired - Lifetime DE60021745T2 (de) 1999-09-18 2000-09-15 Datenkompression

Country Status (6)

Country Link
US (2) US6577769B1 (de)
EP (1) EP1222635B1 (de)
AT (1) ATE301311T1 (de)
AU (1) AU1253101A (de)
DE (1) DE60021745T2 (de)
WO (1) WO2001022367A1 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020080143A1 (en) * 2000-11-08 2002-06-27 Morgan David L. Rendering non-interactive three-dimensional content
US7113194B2 (en) * 2001-01-30 2006-09-26 Ati International Srl Method and apparatus for rotating an image on a display
US8390639B2 (en) * 2001-01-30 2013-03-05 Qualcomm Incorporated Method and apparatus for rotating an image on a display
JP2002271613A (ja) * 2001-03-09 2002-09-20 Sharp Corp 情報端末装置
US7302440B2 (en) * 2001-07-27 2007-11-27 Metatomix, Inc. Methods and apparatus for statistical data analysis and reduction for an enterprise application
US6856992B2 (en) * 2001-05-15 2005-02-15 Metatomix, Inc. Methods and apparatus for real-time business visibility using persistent schema-less data storage
US7890517B2 (en) * 2001-05-15 2011-02-15 Metatomix, Inc. Appliance for enterprise information integration and enterprise resource interoperability platform and methods
US6925457B2 (en) * 2001-07-27 2005-08-02 Metatomix, Inc. Methods and apparatus for querying a relational data store using schema-less queries
US7058637B2 (en) * 2001-05-15 2006-06-06 Metatomix, Inc. Methods and apparatus for enterprise application integration
US20030208499A1 (en) * 2002-05-03 2003-11-06 David Bigwood Methods and apparatus for visualizing relationships among triples of resource description framework (RDF) data sets
US8572059B2 (en) * 2001-05-15 2013-10-29 Colin P. Britton Surveillance, monitoring and real-time events platform
US6842177B2 (en) * 2001-12-14 2005-01-11 University Of Washington Macroblock padding
US20060256436A1 (en) * 2002-01-23 2006-11-16 The University Of Connecticut Integral three-dimensional imaging with digital reconstruction
US7283562B2 (en) * 2002-09-26 2007-10-16 International Business Machines Corporation Method and apparatus for scaling input bandwidth for bandwidth allocation technology
WO2004034625A2 (en) * 2002-10-07 2004-04-22 Metatomix, Inc. Methods and apparatus for identifying related nodes in a directed graph having named arcs
US7846026B2 (en) * 2003-12-15 2010-12-07 Spec International Gaming machine door with adjustable cross member
AU2004316014B2 (en) 2004-02-19 2010-06-17 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for state memory management
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
JP4746550B2 (ja) * 2004-09-22 2011-08-10 パナソニック株式会社 画像符号化装置
US20060085541A1 (en) * 2004-10-19 2006-04-20 International Business Machines Corporation Facilitating optimization of response time in computer networks
US8335704B2 (en) 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US8880571B2 (en) * 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
US20080024489A1 (en) * 2006-07-28 2008-01-31 Robert Allen Shearer Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements
US8134566B1 (en) * 2006-07-28 2012-03-13 Nvidia Corporation Unified assembly instruction set for graphics processing
US20080088619A1 (en) * 2006-10-17 2008-04-17 Robert Allen Shearer Branch Prediction for Acceleration Data Structure Traversal
US8139060B2 (en) * 2006-11-28 2012-03-20 International Business Machines Corporation Ray tracing image processing system
EP1939837A3 (de) * 2006-12-20 2010-04-28 AT&T Corp. Verlustfreie Echtzeitkomprimierung von geografischen Daten
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US20090157997A1 (en) * 2007-12-14 2009-06-18 Alexei Leonenko Using in-leaf multiple triangle packing for kd-trees size reduction
US10481878B2 (en) * 2008-10-09 2019-11-19 Objectstore, Inc. User interface apparatus and methods
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8098247B2 (en) * 2009-09-24 2012-01-17 Crucs Holdings, Llc Systems and methods for geometric data compression and encryption
US8495034B2 (en) * 2010-12-30 2013-07-23 Teradata Us, Inc. Numeric, decimal and date field compression
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
WO2013155974A1 (zh) * 2012-04-18 2013-10-24 Dong futian 空间数据压缩、解压与渐进传输的有关方法与装置
US10305980B1 (en) * 2013-11-27 2019-05-28 Intellectual Property Systems, LLC Arrangements for communicating data in a computing system using multiple processors
US9608664B2 (en) 2013-12-30 2017-03-28 International Business Machines Corporation Compression of integer data using a common divisor
US9628107B2 (en) 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
TWI505091B (zh) * 2014-09-16 2015-10-21 Storart Technology Co Ltd 用於非揮發性記憶體的自適應壓縮資料儲存方法及使用該方法的系統
US9350384B2 (en) 2014-09-30 2016-05-24 International Business Machines Corporation Hierarchical data compression and computation
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US10114554B1 (en) 2015-01-20 2018-10-30 Intellectual Property Systems, LLC Arrangements for storing more data in faster memory when using a hierarchical memory structure
US10909078B2 (en) 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3656178A (en) 1969-09-15 1972-04-11 Research Corp Data compression and decompression system
US5367620A (en) * 1990-09-25 1994-11-22 Brother Kogyo Kabushiki Kaisha Character output device
US5155772A (en) 1990-12-11 1992-10-13 Octel Communications Corporations Data compression system for voice data
US5388209A (en) 1991-08-02 1995-02-07 Sony Corporation Apparatus for high-speed recording compressed digital data with increased compression
US5321770A (en) * 1991-11-19 1994-06-14 Xerox Corporation Method for determining boundaries of words in text
US5638498A (en) 1992-11-10 1997-06-10 Adobe Systems Incorporated Method and apparatus for reducing storage requirements for display data
WO1994027222A1 (de) * 1993-05-10 1994-11-24 Jochen Liedtke Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge
US5583977A (en) * 1993-10-21 1996-12-10 Taligent, Inc. Object-oriented curve manipulation system
US5710916A (en) * 1994-05-24 1998-01-20 Panasonic Technologies, Inc. Method and apparatus for similarity matching of handwritten data objects
US5552898A (en) * 1994-07-06 1996-09-03 Agfa-Gevaert Lossy and lossless compression in raster image processor
JP3582675B2 (ja) * 1994-10-28 2004-10-27 セイコーエプソン株式会社 画像データをメモリに蓄積する装置及び方法
US5793371A (en) 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
WO1998034403A1 (en) * 1995-09-29 1998-08-06 Intel Corporation Apparatus and method for securing captured data transmitted between two sources
US5977979A (en) * 1995-10-31 1999-11-02 International Business Machines Corporation Simulated three-dimensional display using bit-mapped information
US5930813A (en) * 1995-12-21 1999-07-27 Adobe Systems Incorporated Method and system for designating objects
US5740409A (en) 1996-07-01 1998-04-14 Sun Microsystems, Inc. Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities
US6023279A (en) * 1997-01-09 2000-02-08 The Boeing Company Method and apparatus for rapidly rendering computer generated images of complex structures
US6304940B1 (en) * 1997-08-14 2001-10-16 International Business Machines Corporation Shared direct access storage system for MVS and FBA processors
JP2002503854A (ja) * 1998-02-17 2002-02-05 サン・マイクロシステムズ・インコーポレーテッド ポリゴンのためのグラフィックス・システム・パフォーマンスの推定
US6246422B1 (en) * 1998-09-01 2001-06-12 Sun Microsystems, Inc. Efficient method for storing texture maps in multi-bank memory
US6169819B1 (en) * 1998-10-31 2001-01-02 Hewlett-Packard Company High performance surface normal compression
US6282540B1 (en) * 1999-02-26 2001-08-28 Vicinity Corporation Method and apparatus for efficient proximity searching

Also Published As

Publication number Publication date
WO2001022367A9 (en) 2002-09-06
AU1253101A (en) 2001-04-24
DE60021745D1 (de) 2005-09-08
ATE301311T1 (de) 2005-08-15
US6697530B2 (en) 2004-02-24
EP1222635B1 (de) 2005-08-03
EP1222635A1 (de) 2002-07-17
WO2001022367A1 (en) 2001-03-29
US6577769B1 (en) 2003-06-10
US20020090141A1 (en) 2002-07-11

Similar Documents

Publication Publication Date Title
DE60021745T2 (de) Datenkompression
DE112007002991B4 (de) Computergraphikschattenvolumen unter Verwendung von hierarchischem Okklusions-Culling
DE69534751T2 (de) Bilddatenerzeugungsverfahren, Bilddatenverarbeitungsvorrichtung und Aufzeichnungsmedium
DE60201692T2 (de) Auf 3D Objekten angewendetes 2D Bildverarbeitungsverfahren
US7667704B2 (en) System for efficient remote projection of rich interactive user interfaces
DE60115034T2 (de) Verfeinerung von dreidimensionalen polygonalen gitterdaten
DE60300788T2 (de) Bild mit Feldtiefe aus Z-Pufferbilddaten und Alphamischung
US7439982B2 (en) Optimized scene graph change-based mixed media rendering
DE69227757T2 (de) Schwingungsvermeidung in interaktiver Animation
DE112022003547T5 (de) Verschobene Mikronetz-Kompression
CN103093499A (zh) 一种适用于网络传输的城市三维模型数据组织方法
CN117390322A (zh) 虚拟空间构建方法、装置、电子设备及非易失性存储介质
DE69432507T2 (de) Verfahren und Geräte zur Erzeugung von Zeichnungsdaten
DE60110804T2 (de) Kommunikationssystem mit Programmerzeugungsmitteln
DE60026346T2 (de) Datenkomprimierung durch offsetdarstellung
CN110930492A (zh) 模型渲染的方法、装置、计算机可读介质及电子设备
DE60211827T2 (de) Aufzeichnungsmedium für Programm zur Verformung von 3D Modellen, Programm zur Verformung von 3D Modellen, 3D Verformungsverfahren und Videospielvorrichtung
CN115937389A (zh) 阴影渲染方法、装置、存储介质和电子设备
DE60020000T2 (de) Spielvorrichtung
DE69818558T2 (de) Verfahren und Vorrichtung zur geometrischen Komprimierung von dreimensionalen Grafiken
CN114266874A (zh) 一种三维数据生成方法、装置、设备和存储介质
DE102021206410A1 (de) Techniken zum durchführen einer beschleunigten punktabtastung in einer texturverarbeitungs-pipeline
JPH10198823A (ja) 映像生成装置
CN118096982B (zh) 一种故障反演培训平台的构建方法及系统
DE102008028311B4 (de) Verfahren und Vorrichtung zur effizienten Client-Server Visualisierung von mehrdimensionalen Daten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition