EP2245536B1

Methods and systems for remoting three dimensional graphics

Abstract

This record has no abstract on file.

EP2245536B1, drawing sheet 1
Sheet 1 of 14

Term

2.3 yearsleft in the term

Expires 27 January 2029.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

9 claims: 9 independent, 0 dependent

  1. 1
    A method for remoting three dimensional graphics, the method comprising:intercepting, by an agent (120, 214), a plurality of three-dimensional graphics commands generated by an application (208, 402) executing on a local computing machine (204, 420);encoding, by the agent (120, 214), a first portion of the plurality of three-dimensional graphics commands with a first codec, the first portion of the plurality of three-dimensional graphics commands comprises one of vertex three-dimensional graphics commands, index three-dimensional graphics commands, and texture three-dimensional graphics commands;encoding, by the agent (120, 214), a second portion of the plurality of three-dimensional graphics commands with a second codec, the second portion of the plurality of three-dimensional graphics commands comprises a different one of the vertex three-dimensional graphics commands, the index three-dimensional graphics commands, and the texture three-dimensional graphics commands than the first portion of the plurality of three-dimensional graphics commands;creating, by the agent (120, 214), a frame comprising the encoded first portion and the encoded second portion of the plurality of three-dimensional graphics commands;compressing the frame by the agent (120, 214);andtransmitting, by the agent (120, 214), the frame to a remote computing machine (202, 421). Ein Verfahren zum Remotieren von dreidimensionalen Grafiken, wobei das Verfahren Folgendes beinhaltet: Abfangen, durch einen Agenten (120, 214), einer Vielzahl von dreidimensionalen Grafikbefehlen, die von einer Anwendung (208, 402) generiert werden, die auf einer lokalen Rechenmaschine (204, 420) ausführt;Codieren, durch den Agenten (120, 214), eines ersten Teils der Vielzahl von dreidimensionalen Grafikbefehlen mit einem ersten Codec, wobei der erste Teil der Vielzahl von dreidimensionalen Grafikbefehlen einen von dreidimensionalen Vertex-Grafikbefehlen, dreidimensionalen Index-Grafikbefehlen und dreidimensionalen Textur-Grafikbefehlen beinhaltet;Codieren, durch den Agenten (120, 214), eines zweiten Teils der Vielzahl von dreidimensionalen Grafikbefehlen mit einem zweiten Codec, wobei der zweite Teil der Vielzahl von dreidimensionalen Grafikbefehlen einen anderen von den dreidimensionalen Vertex-Grafikbefehlen, den dreidimensionalen Index-Grafikbefehlen und den dreidimensionalen Textur-Grafikbefehlen als der erste Teil der Vielzahl von dreidimensionalen Grafikbefehlen beinhaltet;Erzeugen, durch den Agenten (120, 214), eines Frames, der den codierten ersten Teil und den codierten zweiten Teil der Vielzahl von dreidimensionalen Grafikbefehlen beinhaltet;Komprimieren des Frames durch den Agenten (120, 214);undÜbertragen, durch den Agenten (120, 214), des Frames an eine entfernt gelegene Rechenmaschine (202, 421). Un procédé pour fournir à distance des éléments graphiques tridimensionnels, le procédé comprenant : l'interception, par un agent (120, 214), d'une pluralité de commandes d'éléments graphiques tridimensionnels générées par une application (208, 402) s'exécutant sur une machine informatique locale (204, 420) ;l'encodage, par l'agent (120, 214), d'une première portion de la pluralité de commandes d'éléments graphiques tridimensionnels avec un premier codec, la première portion de la pluralité de commandes d'éléments graphiques tridimensionnels comprenant soit des commandes d'éléments graphiques tridimensionnels sommet, soit des commandes d'éléments graphiques tridimensionnels indice, soit des commandes d'éléments graphiques tridimensionnels texture ;l'encodage, par l'agent (120, 214), d'une deuxième portion de la pluralité de commandes d'éléments graphiques tridimensionnels avec un deuxième codec, la deuxième portion de la pluralité de commandes d'éléments graphiques tridimensionnels comprenant soit les commandes d'éléments graphiques tridimensionnels sommet, soit les commandes d'éléments graphiques tridimensionnels indice, soit les commandes d'éléments graphiques tridimensionnels texture, différentes de celles de la première portion de la pluralité de commandes d'éléments graphiques tridimensionnels ;la création, par l'agent (120, 214), d'une vue comprenant la première portion encodée et la deuxième portion encodée de la pluralité de commandes d'éléments graphiques tridimensionnels ;la compression de la vue par l'agent (120, 214) ;etla transmission, par l'agent (120, 214), de la vue à une machine informatique à distance (202, 421).
  2. 2
    Le procédé de la revendication 1, dans lequel l'interception comprend en sus l'interception des commandes d'éléments graphiques tridimensionnels avant qu'elles ne soient transmises à un pilote pour éléments graphiques tridimensionnels. The method of claim 1, wherein intercepting further comprises intercepting the three-dimensional graphics commands before they are transmitted to a three dimensional graphics driver. Verfahren gemäß Anspruch 1, wobei das Abfangen ferner das Abfangen der dreidimensionalen Grafikbefehle, bevor sie an einen dreidimensionalen Grafiktreiber übertragen werden, beinhaltet.
  3. 3
    Le procédé de la revendication 2, comprenant en sus la redirection des commandes d'éléments graphiques tridimensionnels vers un pilote pour éléments graphiques tridimensionnels mandataire. The method of claim 2, further comprising redirecting the three-dimensional graphics commands to a proxy three dimensional graphics driver. Verfahren gemäß Anspruch 2, das ferner das Umleiten der dreidimensionalen Grafikbefehle an einen dreidimensionalen Proxy-Grafiktreiber beinhaltet.
  4. 4
    Le procédé de la revendication 1, dans lequel la création d'une vue comprend en sus la création d'une vue comprenant des primitives graphiques. The method of claim 1, wherein creating a frame further comprises creating a frame comprising graphics primitives. Verfahren gemäß Anspruch 1, wobei das Erzeugen eines Frames ferner das Erzeugen eines Grafikgrundelemente beinhaltenden Frames beinhaltet.
  5. 5
    A system for remoting three dimensional graphics, the system comprising:a local computing machine (204, 420) executing an application (208, 402) that generates a plurality three-dimensional graphics commands;a remote computing machine (202, 421) in communication with the local computing machine (204, 420) via a remote presentation protocol;andan agent (120, 214) executing on the local computing machine (204, 420) to: intercept the plurality of three-dimensional graphics commands,encode a first portion of the plurality of three-dimensional graphics commands with a first codec, the first portion of the plurality of three-dimensional graphics commands comprises one of vertex three-dimensional graphics commands, index three-dimensional graphics commands, and texture three-dimensional graphics commands,encode a second portion of the plurality of three-dimensional graphics commands with a second codec, the second portion of the plurality of three-dimensional graphics commands comprises a different one of the vertex three-dimensional graphics commands, the index three-dimensional graphics commands, and the texture three-dimensional graphics commands than the first portion of the plurality of three-dimensional graphics commands,create a frame comprising the encoded first portion and the encoded second portion of the plurality of three-dimensional graphics commands,compress the frame, andtransmit the frame to the remote computing machine (202, 421). Ein System zum Remotieren von dreidimensionalen Grafiken, wobei das System Folgendes beinhaltet: eine lokale Rechenmaschine (204, 420), die eine Anwendung (208, 402) ausführt, die eine Vielzahl von dreidimensionalen Grafikbefehlen generiert;eine entfernt gelegene Rechenmaschine (202, 421), die mit der lokalen Rechenmaschine (204, 420) über ein Fernpräsentationsprotokoll in Kommunikation ist;undeinen Agenten (120, 214), der auf der lokalen Rechenmaschine (204, 420) ausführt zum: Abfangen der Vielzahl von dreidimensionalen Grafikbefehlen,Codieren eines ersten Teils der Vielzahl von dreidimensionalen Grafikbefehlen mit einem ersten Codec, wobei der erste Teil der Vielzahl von dreidimensionalen Grafikbefehlen einen von dreidimensionalen Vertex-Grafikbefehlen,dreidimensionalen Index-Grafikbefehlen und dreidimensionalen Textur-Grafikbefehlen beinhaltet,Codieren eines zweiten Teils der Vielzahl von dreidimensionalen Grafikbefehlen mit einem zweiten Codec, wobei der zweite Teil der Vielzahl von dreidimensionalen Grafikbefehlen einen anderen von den dreidimensionalen Vertex-Grafikbefehlen, den dreidimensionalen Index-Grafikbefehlen und den dreidimensionalen Textur-Grafikbefehlen als der erste Teil der Vielzahl von dreidimensionalen Grafikbefehlen beinhaltet,Erzeugen eines Frames, der den codierten ersten Teil und den codierten zweiten Teil der Vielzahl von dreidimensionalen Grafikbefehlen beinhaltet, Komprimieren des Frames undÜbertragen des Frames an die entfernt gelegene Rechenmaschine (202, 421). Un système pour fournir à distance des éléments graphiques tridimensionnels, le système comprenant : une machine informatique locale (204, 420) exécutant une application (208, 402) qui génère une pluralité de commandes d'éléments graphiques tridimensionnels ;une machine informatique à distance (202, 421) en communication avec la machine informatique locale (204, 420) par l'intermédiaire d'un protocole de présentation à distance ;etun agent (120, 214) s'exécutant sur la machine informatique locale (204, 420) afin : d'intercepter la pluralité de commandes d'éléments graphiques tridimensionnels,d'encoder une première portion de la pluralité de commandes d'éléments graphiques tridimensionnels avec un premier codec, la première portion de la pluralité de commandes d'éléments graphiques tridimensionnels comprenant soit des commandes d'éléments graphiques tridimensionnels sommet, soit des commandes d'éléments graphiques tridimensionnels indice, soit des commandes d'éléments graphiques tridimensionnels texture,d'encoder une deuxième portion de la pluralité de commandes d'éléments graphiques tridimensionnels avec un deuxième codec, la deuxième portion de la pluralité de commandes d'éléments graphiques tridimensionnels comprenant soit les commandes d'éléments graphiques tridimensionnels sommet, soit les commandes d'éléments graphiques tridimensionnels indice, soit les commandes d'éléments graphiques tridimensionnels texture, différentes de celles de la première portion de la pluralité de commandes d'éléments graphiques tridimensionnels,de créer une vue comprenant la première portion encodée et la deuxième portion encodée de la pluralité de commandes d'éléments graphiques tridimensionnels,de compresser la vue, etde transmettre la vue à la machine informatique à distance (202, 421).
  6. 6
    Le système de la revendication 5, dans lequel l'agent (120, 214) intercepte des commandes d'éléments graphiques tridimensionnels avant qu'elles ne soient transmises à un pilote pour éléments graphiques tridimensionnels. System gemäß Anspruch 5, wobei der Agent (120, 214) die dreidimensionalen Grafikbefehle abfängt, bevor sie an einen dreidimensionalen Grafiktreiber übertragen werden. The system of claim 5, wherein the agent (120, 214) intercepts three-dimensional graphics commands before they are transmitted to a three dimensional graphics driver.
  7. 7
    Le système de la revendication 6, dans lequel l'agent (120, 214) redirige en sus les commandes d'éléments graphiques tridimensionnels vers un pilote pour éléments graphiques tridimensionnels mandataire. System gemäß Anspruch 6, wobei der Agent (120, 214) ferner die dreidimensionalen Grafikbefehle an einen dreidimensionalen Proxy-Grafiktreiber umleitet. The system of claim 6, wherein the agent (120, 214) further redirects the three-dimensional graphics commands to a proxy three dimensional graphics driver.
  8. 8
    Le système de la revendication 5, dans lequel l'agent (120, 214) crée une vue comprenant des primitives graphiques. System gemäß Anspruch 5, wobei der Agent (120, 214) einen Grafik-Grundelemente beinhaltenden Frame erzeugt. The system of claim 5, wherein the agent (120, 214) creates a frame comprising graphics primitives.
  9. 9
    A computer readable medium having instructions executable by a processor to remote three dimensional graphics, the computer readable medium comprising:instructions for intercepting, by an agent (120, 214), a plurality of three-dimensional graphics commands generated by an application (208, 402) executing on a local computing machine (204, 420);instructions for encoding, by the agent (120, 214), a first portion of the plurality of three-dimensional graphics commands with a first codec, the first portion of the plurality of three-dimensional graphics commands comprises one of vertex three-dimensional graphics commands, index three-dimensional graphics commands, and texture three-dimensional graphics commands;instructions for encoding, by the agent (120, 214), a second portion of the plurality of three-dimensional graphics commands with a second codec, the second portion of the plurality of three-dimensional graphics commands comprises a different one of the vertex three-dimensional graphics commands, the index three-dimensional graphics commands, and the texture three-dimensional graphics commands than the first portion of the plurality of three-dimensional graphics commands;instructions for creating, by the agent (120, 214), a frame comprising the encoded first portion and the encoded second portion of the plurality of three-dimensional graphics commands;instructions for compressing the frame by the agent (120, 214);andinstructions for transmitting, by the agent (120, 214), the frame to a remote computing machine (202, 421). Ein computerlesbares Medium, das Anweisungen aufweist, die von einem Prozessor ausführbar sind, um dreidimensionale Grafiken zu remotieren, wobei das computerlesbare Medium Folgendes beinhaltet: Anweisungen zum Abfangen, durch einen Agenten (120, 214), einer Vielzahl von dreidimensionalen Grafikbefehlen, die von einer Anwendung (208, 402) generiert werden, die auf einer lokalen Rechenmaschine (204, 420) ausführt;Anweisungen zum Codieren, durch den Agenten (120, 214), eines ersten Teils der Vielzahl von dreidimensionalen Grafikbefehlen mit einem ersten Codec, wobei der erste Teil der Vielzahl von dreidimensionalen Grafikbefehlen einen von dreidimensionalen Vertex-Grafikbefehlen, dreidimensionalen Index-Grafikbefehlen und dreidimensionalen Textur-Grafikbefehlen beinhaltet;Anweisungen zum Codieren, durch den Agenten (120, 214), eines zweiten Teils der Vielzahl von dreidimensionalen Grafikbefehlen mit einem zweiten Codec, wobei der zweite Teil der Vielzahl von dreidimensionalen Grafikbefehlen einen anderen von den dreidimensionalen Vertex-Grafikbefehlen, den dreidimensionalen Index-Grafikbefehlen und den dreidimensionalen Textur-Grafikbefehlen als der erste Teil der Vielzahl von dreidimensionalen Grafikbefehlen beinhaltet;Anweisungen zum Erzeugen, durch den Agenten (120, 214), eines Frames, der den codierten ersten Teil und den codierten zweiten Teil der Vielzahl von dreidimensionalen Grafikbefehlen beinhaltet;Anweisungen zum Komprimieren des Frames durch den Agenten (120, 214);undAnweisungen zum Übertragen, durch den Agenten (120, 214), des Frames an eine entfernt gelegene Rechenmaschine (202, 421). Un support lisible par ordinateur ayant des instructions exécutables par un processeur afin de fournir à distance des éléments graphiques tridimensionnels, le support lisible par ordinateur comprenant : des instructions pour l'interception, par un agent (120, 214), d'une pluralité de commandes d'éléments graphiques tridimensionnels générées par une application (208, 402) s'exécutant sur une machine informatique locale (204, 420) ;des instructions pour l'encodage, par l'agent (120, 214), d'une première portion de la pluralité de commandes d'éléments graphiques tridimensionnels avec un premier codec, la première portion de la pluralité de commandes d'éléments graphiques tridimensionnels comprenant soit des commandes d'éléments graphiques tridimensionnels sommet, soit des commandes d'éléments graphiques tridimensionnels indice, soit des commandes d'éléments graphiques tridimensionnels texture ;des instructions pour l'encodage, par l'agent (120, 214), d'une deuxième portion de la pluralité de commandes d'éléments graphiques tridimensionnels avec un deuxième codec, la deuxième portion de la pluralité de commandes d'éléments graphiques tridimensionnels comprenant soit les commandes d'éléments graphiques tridimensionnels sommet, soit les commandes d'éléments graphiques tridimensionnels indice, soit les commandes d'éléments graphiques tridimensionnels texture, différentes de celles de la première portion de la pluralité de commandes d'éléments graphiques tridimensionnels ;des instructions pour la création, par l'agent (120, 214), d'une vue comprenant la première portion encodée et la deuxième portion encodée de la pluralité de commandes d'éléments graphiques tridimensionnels ;des instructions pour la compression de la vue par l'agent (120, 214) ;etdes instructions pour la transmission, par l'agent (120, 214), de la vue à une machine informatique à distance (202, 421).