[go: nahoru, domu]

US20150054840A1 - Applying different transport mechanisms for user interface and image portions of a remotely rendered image - Google Patents

Applying different transport mechanisms for user interface and image portions of a remotely rendered image Download PDF

Info

Publication number
US20150054840A1
US20150054840A1 US14/528,929 US201414528929A US2015054840A1 US 20150054840 A1 US20150054840 A1 US 20150054840A1 US 201414528929 A US201414528929 A US 201414528929A US 2015054840 A1 US2015054840 A1 US 2015054840A1
Authority
US
United States
Prior art keywords
graphics data
transport protocol
rendering
server
rendered
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.)
Granted
Application number
US14/528,929
Other versions
US9117288B2 (en
Inventor
Alexander Chalfin
Alpana Kaulgud
Mark Peercy
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.)
Google LLC
Original Assignee
Silicon Graphics International Corp
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
Assigned to SILICON GRAPHICS, INC. reassignment SILICON GRAPHICS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHALFIN, ALEXANDER, KAULGUD, ALPANA
Assigned to SGI INTERNATIONAL, INC. reassignment SGI INTERNATIONAL, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS INTERNATIONAL, INC.
Priority to US14/528,929 priority Critical patent/US9117288B2/en
Application filed by Silicon Graphics International Corp filed Critical Silicon Graphics International Corp
Assigned to SILICON GRAPHICS, INC. reassignment SILICON GRAPHICS, INC. AGREEMENT Assignors: PEERCY, MARK S.
Assigned to SILICON GRAPHICS INTERNATIONAL CORP. reassignment SILICON GRAPHICS INTERNATIONAL CORP. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: SGI INTERNATIONAL, INC.
Assigned to SILICON GRAPHICS INTERNATIONAL, INC. reassignment SILICON GRAPHICS INTERNATIONAL, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS, INC.
Publication of US20150054840A1 publication Critical patent/US20150054840A1/en
Publication of US9117288B2 publication Critical patent/US9117288B2/en
Application granted granted Critical
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS INTERNATIONAL CORP.
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SILICON GRAPHICS INTERNATIONAL CORP.
Assigned to SILICON GRAPHICS INTERNATIONAL CORP. reassignment SILICON GRAPHICS INTERNATIONAL CORP. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC.
Assigned to GOOGLE LLC reassignment GOOGLE LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities

Definitions

  • GUI graphical user interface
  • GUI graphical user interface
  • commands are given through a GUI, and can take the form of keyboard inputs, pointer inputs, such as those produced by a mouse or touchpad, or menu selections.
  • the user also needs to receive accurate feedback from the server regarding the commands, via the GUI.
  • an image of the GUI is also rendered at the server. Modified GUI images that show, for example, a depressed button or a highlighted menu selection must be reliably conveyed from the server back to the client.
  • the subject graphics typically represents the bulk of the data being rendered. Throughput in rendering and transmitting rendered subject graphics to the client is therefore a priority, especially in the context of streaming graphics. A high data rate is therefore needed in transmitting the rendered subject graphics from the server to the client.
  • the invention described herein represents a system and method for remote rendering of computer graphics wherein user transactions are reliable and the transmission of rendered graphics data is relatively fast.
  • the system of the invention is implemented in a client-server context, where a computer graphics application and rendering resources are located at a server.
  • a user controls the graphics application through a client machine that is connected to the server through a computer network.
  • the users commands are sent from the client to the server, while rendered computer graphics are transmitted from the server to an output device, such as a display at the client.
  • Different transport protocols are used, depending on the requirements of a particular transmission.
  • Data related to the user interface is transmitted using a relatively reliable transport protocol, such as the transmission control protocol (TCP).
  • Rendered subject graphics data is transmitted from the server using a less reliable but faster transport protocol, such as the user datagram protocol (UDP).
  • TCP transmission control protocol
  • UDP user datagram protocol
  • FIG. 1 is a block diagram illustrating an embodiment of the system of the invention.
  • FIG. 2 is a block diagram showing the flow and processing of data through rendering resources located at a server, according to an embodiment of the invention.
  • FIG. 3 is a block diagram illustrating the system of an alternative embodiment of the invention.
  • FIG. 4 is a block diagram illustrating data flow and processing in the embodiment of
  • FIG. 5 is a block diagram illustrating an exemplary rendering pipeline.
  • FIG. 6 illustrates a typical communications protocol between a client and a server.
  • FIG. 7 illustrates the hierarchical context of the UDP transport protocol.
  • FIG. 8 illustrates the hierarchical context of the TCP transport protocol.
  • FIG. 9 is a flowchart illustrating the method of an embodiment of the invention from the perspective of a client.
  • FIG. 10 is a flowchart illustrating the method of an embodiment of the invention from the perspective of a server.
  • FIG. 11 is a flowchart illustrating the method of an alternative embodiment of the invention, from the perspective of the client.
  • FIG. 12 is a flowchart illustrating the method of an alternative embodiment of the invention, from the perspective of a server.
  • FIG. 13 is a block diagram illustrating the computing environment of the invention, according to an embodiment.
  • the invention described herein represents a system and method for remote rendering of computer graphics wherein GUI-related transactions are transmitted reliably and the transmission of rendered graphics is relatively fast.
  • the system of the invention is implemented in a client-server context, where a computer graphics application and rendering resources are located at a server.
  • a user controls the graphics application through a client machine in communication with the server.
  • the user's commands are sent from the client to the server, while rendered computer graphics are transmitted from the server to an output device such as a display at the client.
  • One example of a remote graphics processing system in which the invention can be used is described in U.S. patent application Ser. No. 09/629,458, “System, Method, and Computer Program Product for Remote Graphics Processing,” filed Jul. 31,2000, and incorporated in its entirety by reference herein.
  • Different transport protocols are used, depending on the requirements of a particular transmission.
  • Data related to user interaction such as rendering commands, are transmitted using a relatively reliable transport protocol, such as TCP.
  • Rendered subject graphics data is transmitted from the server using a less reliable but faster transport protocol, such as UDP.
  • FIG. 1 The system of an embodiment of the invention is illustrated generally in FIG. 1 .
  • a client 103 is shown in communication with server 109 . Communication takes place via network 115 .
  • Server 109 comprises a computer graphics application 120 , a remote rendering control system 130 , and graphics resources 140 .
  • Client 103 under the control of a user (not shown), issues rendering commands 107 to application 120 . Commands 107 control the operation of application 120 and graphics resources 140 . Because commands 107 must be communicated to application 120 accurately and reliably, commands 107 are sent using a relatively reliable transport protocol, such as TCP. Transport protocols are well known in the art. The data formatting and processing of TCP and other transport protocols are described by William Stallings, Data and Computer Communications, 2d edition, pp. 479-520, MacMillan Publishing Co., 1988, incorporated herein by reference in its entirety.
  • application 120 sends graphics instructions 125 to remote rendering control system 130 .
  • Control system 130 then sends modified graphics instructions 135 to graphics resources 140 .
  • Graphics resources 140 which include one or more rendering pipelines (not shown) then create composited image data 145 .
  • Image data 145 includes both the rendered subject graphics data, and the rendered GUI graphics data.
  • Data 145 is then processed further by control system 130 for purposes of transmission to client 103 .
  • processing can include, for example, data compression.
  • the result is image data 150 , which is sent to client 103 via network 115 . Because a large volume of data is being transmitted to client 103 , throughput of the transmission is a priority. For this reason, data 150 is transmitted using a relatively fast transport protocol, such as UDP.
  • the data formatting and processing ofUDP and other transport protocols are described by Stallings, id at pp. 518-519.
  • image data 150 can be sent elsewhere, in addition to or instead of being sent to client 103 .
  • Image data can be sent to other nodes connected to network 115 , for example, to allow viewing by parties other than the user.
  • graphics resources 140 comprise at least two rendering pipelines 210 and 220 .
  • the input to rendering pipeline 210 is subject graphics data 205 .
  • the input to rendering pipeline 220 is GUI graphics data 215 .
  • GUI graphics data 215 represents the graphical images associated with the GUI, as ultimately seen by the user. This would include window borders, controls, menus, and the like.
  • the outputs of rendering pipelines 210 and 220 are then sent to compositor 230 , which produces composited image 145 .
  • Compositor 230 can composite rendered subject graphics data and rendered GUI graphics data in a number of ways, as is well known in the art.
  • Compositing can be performed on the basis of alpha values, for example, or performed by depth buffering. Additional methods of compositing include layering and chromakeying. As is known in the art, compositor 230 can be implemented in hardware, software, or a combination thereof.
  • FIG. 3 An alternative embodiment of the invention is illustrated in FIG. 3 .
  • a client 303 communicates with server 309 via network 315 .
  • Commands 307 are sent to computer graphics application 320 which executes on server 309 .
  • commands 307 are transmitted using a reliable transport protocol, such as TCP.
  • Application 320 sends graphics instructions 325 to a remote rendering control system 330 .
  • Control system 330 then sends modified graphics instructions 335 to graphics resources 340 .
  • graphics resources 340 comprise two or more rendering pipelines. Rendered image data is then sent from graphics resources 340 to control system 330 . Rendered graphics data is sent from server 309 to client 303 in two distinct components in this embodiment.
  • Rendered subject graphics data 350 is sent to client 303 using a relatively fast transport protocol, such as UDP. Rendered image data associated with the GUI, rendered GUI graphics data 355 , is sent separately. GUI image data 355 is sent using a more reliable transport protocol, such as TCP.
  • a relatively fast transport protocol such as UDP.
  • Rendered image data associated with the GUI, rendered GUI graphics data 355 is sent separately.
  • GUI image data 355 is sent using a more reliable transport protocol, such as TCP.
  • graphic resources 340 comprise rendering pipelines 410 and 420 .
  • Subject graphics data 405 is input to rendering pipeline 410 .
  • GUI graphics data 415 is input to rendering pipeline 420 .
  • Compositor 430 is located at client 303 or at some location other than server 340 .
  • Compositor 430 receives rendered subject graphics data 350 from rendering pipeline 410 .
  • rendered subject graphics data 350 is transmitted to client 303 using a relatively high-throughput transport protocol, such as UDP.
  • Compositor 430 also receives rendered GUI graphics data 355 . Rendered GUI graphics data 355 is transmitted using a relatively reliable protocol, such as TCP.
  • TCP relatively reliable protocol
  • a compositor can perform its processing using any one of several compositing methods known to those of skill in the art.
  • compositor 430 can be implemented in hardware, software, or a combination thereof.
  • the output of compositor 430 is composited image data 440 .
  • a rendering pipeline can be implemented as illustrated in FIG. 5 .
  • Rendering pipeline 500 is illustrative and not intended to limit the scope of the present invention.
  • Other types of rendering pipelines can be used as would be apparent to a person skilled in the art, given this description. Therefore, while rendering pipelines can have the structure shown in FIG. 5 , other embodiments of rendering pipelines can be used.
  • rendering pipelines in a given server need not be identical.
  • Rendering pipeline 500 comprises a vertex operation module 522 , a pixel operation module 524 , a rasterizer 530 , a texture memory 540 , and a frame buffer 550 .
  • Rendering pipeline receives graphics data 510 , which is initially routed to vertex operation module 522 and a pixel operation module 524 .
  • Texture memory 540 can store one or more textures or images, such as texture 542 .
  • Texture memory 540 is connected to a texture unit 534 by a bus (not shown).
  • Rasterizer 530 comprises texture unit 534 and a blending unit 536 . Texture unit 534 and blending unit 536 can be implemented separately or together as part of a graphics processor. The operation of these features of rendering pipeline 500 would be known to a person skilled in the relevant art given the description herein.
  • texture unit 534 can obtain either a point sample or a filtered texture sample from textures and/or images 542 stored in texture memory 540 .
  • Blending unit 536 blends texels and/or pixel values according to weighting values to produce a single texel or pixel.
  • the output of texture unit 538 and/or blending unit 536 is stored in frame buffer 550 .
  • the contents of frame buffer 550 can then be read out as output 570 .
  • the above embodiments of remote rendering systems take advantage of alternative methods for implementing the transport layer of a conventional protocol stack.
  • the UDP transport protocol allows for faster transport of data compared to TCP, but can be less reliable than TCP.
  • TCP provides for greater reliability, at the cost of slower throughput when compared to other transport protocols such as UDP.
  • FIG. 6 The context of a transport protocol in the conventional open systems interconnection (OSI) model is illustrated in FIG. 6 .
  • OSI open systems interconnection
  • client 610 the OSI model requires that the communications protocol of each party be implemented as seven layers.
  • the protocol layers as implemented by client 610 include a transport protocol, implemented as layer 640 between session layer 638 and network layer 642 .
  • server 620 implements transport layer 650 between session layer 648 and network layer 652 .
  • communications take place over path 630 .
  • FIG. 7 illustrates the use of a UDP transport protocol layer 720 , shown here between a session protocol layer 710 and a network protocol layer 730 .
  • FIG. 8 illustrates the use of a TCP transport protocol layer 820 between a session layer 810 and a network layer 830 .
  • a method of the invention from the perspective of the client, is illustrated in FIG. 9 .
  • the process begins at step 910 .
  • a server transmits rendering commands to the server, using the TCP transport protocol.
  • the client receives rendered graphics data from the server using the UDP transport protocol.
  • the received rendered graphics data comprises both rendered subject graphics data and rendered GUI graphics data composited together.
  • the process concludes at step 940 .
  • the method of the invention from the perspective of the server is illustrated in FIG. 10 .
  • the process begins at step 1010 .
  • the server receives rendering commands from the client. These commands are transmitted using the TCP transport protocol.
  • rendered graphics data is transmitted to the client using the UDP transport protocol.
  • the rendered graphics data includes rendered subject graphics data and rendered GUI graphics data that has been composited together.
  • step 11 The method of an alternative embodiment of the invention, from the perspective of the client, is illustrated in FIG. 11 .
  • the process begins at step Ill 0 .
  • step 1120 the client transmits rendering commands to the server, using the TCP transport protocol.
  • step 1130 after the server has completed its rendering, the client receives rendered subject graphics data from the server, transmitted using the UDP transport protocol.
  • step 1140 the client receives rendered GUI graphics data from the server, transmitted using the TCP transport protocol.
  • steps 1130 and 1140 may take place in any order or may take place in parallel.
  • step 1210 the server receives rendering commands from the client, sent using the TCP transport protocol.
  • step 1230 the server transmits rendered subject graphics data to the client using the UDP transport protocol.
  • step 1240 the server transmits rendered GUI graphics data to the client, using the TCP transport protocol.
  • steps 1230 and 1240 may take place in any order, or may take place in parallel.
  • Both a client and a server represent computer systems.
  • Logic that implements a transport protocol can be implemented as computer program code that executes on a computer system.
  • An example of such a computer system 1300 is shown generally in FIG. 13 .
  • Computer system 1300 includes one or more processors, such as processor 1304 .
  • the processor 1304 is connected to a communication infrastructure 1306 , such as a bus or network.
  • Computer system 1300 includes a main memory 1308 , preferably random access memory (RAM), and may also include a secondary memory 1310 .
  • the secondary memory 1310 may include, for example, a hard disk drive 1312 and/or a removable storage drive 1314 .
  • the removable storage drive 1314 reads from and/or writes to a removable storage unit 1318 in a well-known manner.
  • Removable storage unit 1318 represents a floppy disk, magnetic tape, optical disk, or other storage medium which is read by and written to by removable storage drive 1314 .
  • the removable storage unit 1318 includes a computer usable storage medium having stored therein computer software and/or data.
  • secondary memory 1310 may include other means for allowing computer programs or other instructions to be loaded into computer system 1300 .
  • Such means may include, for example, a removable storage unit 1322 and an interface 1320 .
  • Examples of such means may include a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 1322 and interfaces 1320 which allow software and data to be transferred from the removable storage unit 1322 to computer system 1300 .
  • Computer system 1300 may also include a communications interface 1324 .
  • Communications interface 1324 allows software and data to be transferred between computer system 1300 and external devices. Examples of communications interface 1324 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc.
  • Software and data transferred via communications interface 1324 are in the form of signals 1328 which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 1324 . These signals 1328 are provided to communications interface 1324 via a communications path (i.e., channel) 1326 .
  • This channel 1326 carries signals 1328 and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
  • signals 1328 at a client can comprise rendering commands that are to be processed for transmission using the TCP transport protocol, wherein this processing is performed at least in part by processor 1304 under software control.
  • signals 1328 at a client can comprise data received from a server, wherein the data includes rendered subject graphics data transmitted by the server using the UDP transport protocol and/or rendered GUI graphics data transmitted by the server using the TCP transport protocol.
  • processor 1304 processes the received signals 1328 for subsequent display.
  • signals 1328 can comprise rendering commands that have been transmitted by a client using the TCP transport protocol.
  • Processor 1304 then processes received signals 1328 for use by the graphics application.
  • signals 1328 can also comprise rendered subject graphics data that is to be processed by processor 1304 for transmission using the UDP transport protocol and/or rendered GUI graphics data to be processed for transmission with the TCP transport protocol.
  • computer program medium and “computer usable medium” are used to generally refer to media such as removable storage units 1318 and 1322 , a hard disk installed in hard disk drive 1312 , and signals 1328 .
  • These computer program products are means for providing software to computer system 1300 .
  • Computer programs are stored in main memory 1308 and/or secondary memory 1310 . Computer programs may also be received via communications interface 1324 . Such computer programs, when executed, enable the computer system 1300 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 1304 to implement the present invention. Accordingly, such computer programs represent controllers of the computer system 1300 . Where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 1300 using removable storage drive 1314 , hard drive 1312 or communications interface 1324 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

A system and method for remote rendering of computer graphics wherein user transactions are reliable and the transmission of rendered graphics is relatively fast. The invention is implemented in a client server context, where a computer graphics application and rendering resources are located at a server. A user controls the graphics application through a client machine connected to the server through a computer network. The user's commands are sent from the client to the server, while rendered computer graphics are transmitted from the server to a display at the client. Different transport protocols are used, depending on the requirements of a particular transmission. Data related to user interactions is transmitted using a relatively reliable transport protocol, such as TCP. Rendered subject graphics data is transmitted from the server to the client using a less reliable but faster transport protocol, such UDP.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation and claims the priority benefit of U.S. patent application Ser. No. 13/620,223, filed on Sep. 14, 2012, which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 10/426,003, filed Apr. 30, 2003, now U.S. Pat. No. 8,291,009, which are incorporated by reference herein in their entirety.
  • BACKGROUND
  • 1. Field of Invention:
  • The design of any information processing system must typically face the requirements of speed and reliability. If large amounts of information are to be processed, fast processing and communications are required. For obvious reasons, reliable error free transactions are also a requirement. Obtaining both speed and reliability, however, can be difficult. Highly reliable systems often sacrifice throughput. Conversely, high speed systems may sacrifice reliability in order to achieve the desired levels of performance.
  • This trade-off can be seen in computer graphics systems. In particular, some computer graphic system architectures are implemented in a client server arrangement. Here, a graphics application and rendering resources operate at a server. A user, meanwhile, is located at a client and controls the graphics application remotely. User interface transactions need to take place in a reliable manner. User interface transactions are defined herein as rendering commands sent by a user to a graphics application, and rendered graphics data for a graphical user interface (GUI) sent from rendering resources at a server to the user's display. A user's commands must be conveyed to the server in an accurate fashion. From a user's perspective, such commands are given through a GUI, and can take the form of keyboard inputs, pointer inputs, such as those produced by a mouse or touchpad, or menu selections. The user also needs to receive accurate feedback from the server regarding the commands, via the GUI. Along with the image that is the subject of the graphics application (i.e., the subject graphics), an image of the GUI is also rendered at the server. Modified GUI images that show, for example, a depressed button or a highlighted menu selection must be reliably conveyed from the server back to the client.
  • The subject graphics, however, typically represents the bulk of the data being rendered. Throughput in rendering and transmitting rendered subject graphics to the client is therefore a priority, especially in the context of streaming graphics. A high data rate is therefore needed in transmitting the rendered subject graphics from the server to the client.
  • Hence there is a need for a system and method that provides both fast and reliable data transport in the context of a distributed computer graphics system, such that user interaction can take place reliably, while rendered graphics can be transported quickly.
  • SUMMARY OF THE INVENTION
  • The invention described herein represents a system and method for remote rendering of computer graphics wherein user transactions are reliable and the transmission of rendered graphics data is relatively fast. In one embodiment, the system of the invention is implemented in a client-server context, where a computer graphics application and rendering resources are located at a server. A user controls the graphics application through a client machine that is connected to the server through a computer network. The users commands are sent from the client to the server, while rendered computer graphics are transmitted from the server to an output device, such as a display at the client. Different transport protocols are used, depending on the requirements of a particular transmission. Data related to the user interface is transmitted using a relatively reliable transport protocol, such as the transmission control protocol (TCP). Rendered subject graphics data is transmitted from the server using a less reliable but faster transport protocol, such as the user datagram protocol (UDP).
  • Further embodiments, features, and advantages of the present invention, as well as the structure and operation of the various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram illustrating an embodiment of the system of the invention.
  • FIG. 2 is a block diagram showing the flow and processing of data through rendering resources located at a server, according to an embodiment of the invention.
  • FIG. 3 is a block diagram illustrating the system of an alternative embodiment of the invention.
  • FIG. 4 is a block diagram illustrating data flow and processing in the embodiment of
  • FIG. 5 is a block diagram illustrating an exemplary rendering pipeline.
  • FIG. 6 illustrates a typical communications protocol between a client and a server.
  • FIG. 7 illustrates the hierarchical context of the UDP transport protocol.
  • FIG. 8 illustrates the hierarchical context of the TCP transport protocol.
  • FIG. 9 is a flowchart illustrating the method of an embodiment of the invention from the perspective of a client.
  • FIG. 10 is a flowchart illustrating the method of an embodiment of the invention from the perspective of a server.
  • FIG. 11 is a flowchart illustrating the method of an alternative embodiment of the invention, from the perspective of the client.
  • FIG. 12 is a flowchart illustrating the method of an alternative embodiment of the invention, from the perspective of a server.
  • FIG. 13 is a block diagram illustrating the computing environment of the invention, according to an embodiment.
  • DETAILED DESCRIPTION OF THE INVENTION
  • I. Overview
  • The invention described herein represents a system and method for remote rendering of computer graphics wherein GUI-related transactions are transmitted reliably and the transmission of rendered graphics is relatively fast. The system of the invention is implemented in a client-server context, where a computer graphics application and rendering resources are located at a server. A user controls the graphics application through a client machine in communication with the server. The user's commands are sent from the client to the server, while rendered computer graphics are transmitted from the server to an output device such as a display at the client. One example of a remote graphics processing system in which the invention can be used is described in U.S. patent application Ser. No. 09/629,458, “System, Method, and Computer Program Product for Remote Graphics Processing,” filed Jul. 31,2000, and incorporated in its entirety by reference herein. Different transport protocols are used, depending on the requirements of a particular transmission. Data related to user interaction, such as rendering commands, are transmitted using a relatively reliable transport protocol, such as TCP. Rendered subject graphics data is transmitted from the server using a less reliable but faster transport protocol, such as UDP.
  • II. System
  • The system of an embodiment of the invention is illustrated generally in FIG. 1. A client 103 is shown in communication with server 109. Communication takes place via network 115. Server 109 comprises a computer graphics application 120, a remote rendering control system 130, and graphics resources 140. Client 103, under the control of a user (not shown), issues rendering commands 107 to application 120. Commands 107 control the operation of application 120 and graphics resources 140. Because commands 107 must be communicated to application 120 accurately and reliably, commands 107 are sent using a relatively reliable transport protocol, such as TCP. Transport protocols are well known in the art. The data formatting and processing of TCP and other transport protocols are described by William Stallings, Data and Computer Communications, 2d edition, pp. 479-520, MacMillan Publishing Co., 1988, incorporated herein by reference in its entirety.
  • Given commands 107, application 120 sends graphics instructions 125 to remote rendering control system 130. Control system 130 then sends modified graphics instructions 135 to graphics resources 140. Graphics resources 140, which include one or more rendering pipelines (not shown) then create composited image data 145. Image data 145 includes both the rendered subject graphics data, and the rendered GUI graphics data. Data 145 is then processed further by control system 130 for purposes of transmission to client 103. Such processing can include, for example, data compression. The result is image data 150, which is sent to client 103 via network 115. Because a large volume of data is being transmitted to client 103, throughput of the transmission is a priority. For this reason, data 150 is transmitted using a relatively fast transport protocol, such as UDP. The data formatting and processing ofUDP and other transport protocols are described by Stallings, id at pp. 518-519.
  • Note that in an alternative embodiment of the invention, image data 150 can be sent elsewhere, in addition to or instead of being sent to client 103. Image data can be sent to other nodes connected to network 115, for example, to allow viewing by parties other than the user.
  • The structure and operation of graphics resources 140 is shown in greater detail in FIG. 2. In the illustrated embodiment, graphics resources 140 comprise at least two rendering pipelines 210 and 220. The input to rendering pipeline 210 is subject graphics data 205. The input to rendering pipeline 220 is GUI graphics data 215. GUI graphics data 215 represents the graphical images associated with the GUI, as ultimately seen by the user. This would include window borders, controls, menus, and the like. The outputs of rendering pipelines 210 and 220 are then sent to compositor 230, which produces composited image 145. Compositor 230 can composite rendered subject graphics data and rendered GUI graphics data in a number of ways, as is well known in the art. Compositing can be performed on the basis of alpha values, for example, or performed by depth buffering. Additional methods of compositing include layering and chromakeying. As is known in the art, compositor 230 can be implemented in hardware, software, or a combination thereof.
  • Decoupling the rendering of GUI graphics and subject graphics in separate pipelines is described in greater detail in U.S. patent application Ser. No. 10/208,049, “System and Method for Decoupling the User Interface and Application Window in a Graphics Application,” filed Jul. 31, 2002, and incorporated herein by reference in its entirety.
  • An alternative embodiment of the invention is illustrated in FIG. 3. A client 303 communicates with server 309 via network 315. Commands 307 are sent to computer graphics application 320 which executes on server 309. As before, commands 307 are transmitted using a reliable transport protocol, such as TCP. Application 320 sends graphics instructions 325 to a remote rendering control system 330. Control system 330 then sends modified graphics instructions 335 to graphics resources 340. As will be described below, in an embodiment of the invention, graphics resources 340 comprise two or more rendering pipelines. Rendered image data is then sent from graphics resources 340 to control system 330. Rendered graphics data is sent from server 309 to client 303 in two distinct components in this embodiment. Rendered subject graphics data 350 is sent to client 303 using a relatively fast transport protocol, such as UDP. Rendered image data associated with the GUI, rendered GUI graphics data 355, is sent separately. GUI image data 355 is sent using a more reliable transport protocol, such as TCP.
  • Additional detail for this embodiment is illustrated in FIG. 4. In this embodiment, graphic resources 340 comprise rendering pipelines 410 and 420. Subject graphics data 405 is input to rendering pipeline 410. GUI graphics data 415 is input to rendering pipeline 420. Compositor 430 is located at client 303 or at some location other than server 340. Compositor 430 receives rendered subject graphics data 350 from rendering pipeline 410. As described above, rendered subject graphics data 350 is transmitted to client 303 using a relatively high-throughput transport protocol, such as UDP. Compositor 430 also receives rendered GUI graphics data 355. Rendered GUI graphics data 355 is transmitted using a relatively reliable protocol, such as TCP. As described above with respect to FIG. 2, a compositor can perform its processing using any one of several compositing methods known to those of skill in the art. As is known in the art, compositor 430 can be implemented in hardware, software, or a combination thereof. The output of compositor 430 is composited image data 440.
  • In an embodiment of the invention, a rendering pipeline can be implemented as illustrated in FIG. 5. Rendering pipeline 500 is illustrative and not intended to limit the scope of the present invention. Other types of rendering pipelines can be used as would be apparent to a person skilled in the art, given this description. Therefore, while rendering pipelines can have the structure shown in FIG. 5, other embodiments of rendering pipelines can be used. Moreover, rendering pipelines in a given server need not be identical.
  • Rendering pipeline 500 comprises a vertex operation module 522, a pixel operation module 524, a rasterizer 530, a texture memory 540, and a frame buffer 550. Rendering pipeline receives graphics data 510, which is initially routed to vertex operation module 522 and a pixel operation module 524. Texture memory 540 can store one or more textures or images, such as texture 542. Texture memory 540 is connected to a texture unit 534 by a bus (not shown). Rasterizer 530 comprises texture unit 534 and a blending unit 536. Texture unit 534 and blending unit 536 can be implemented separately or together as part of a graphics processor. The operation of these features of rendering pipeline 500 would be known to a person skilled in the relevant art given the description herein.
  • In embodiments of the present invention, texture unit 534 can obtain either a point sample or a filtered texture sample from textures and/or images 542 stored in texture memory 540. Blending unit 536 blends texels and/or pixel values according to weighting values to produce a single texel or pixel. The output of texture unit 538 and/or blending unit 536 is stored in frame buffer 550. The contents of frame buffer 550 can then be read out as output 570.
  • The above embodiments of remote rendering systems take advantage of alternative methods for implementing the transport layer of a conventional protocol stack. The UDP transport protocol allows for faster transport of data compared to TCP, but can be less reliable than TCP. In contrast, TCP provides for greater reliability, at the cost of slower throughput when compared to other transport protocols such as UDP.
  • The context of a transport protocol in the conventional open systems interconnection (OSI) model is illustrated in FIG. 6. Given two entities that need to communicate, shown here as client 610 and server 620, the OSI model requires that the communications protocol of each party be implemented as seven layers. The protocol layers as implemented by client 610 include a transport protocol, implemented as layer 640 between session layer 638 and network layer 642. Analogously, server 620 implements transport layer 650 between session layer 648 and network layer 652. Ultimately, communications take place over path 630. FIG. 7 illustrates the use of a UDP transport protocol layer 720, shown here between a session protocol layer 710 and a network protocol layer 730. FIG. 8 illustrates the use of a TCP transport protocol layer 820 between a session layer 810 and a network layer 830.
  • III. Method
  • A method of the invention, from the perspective of the client, is illustrated in FIG. 9. The process begins at step 910. In step 920, a server transmits rendering commands to the server, using the TCP transport protocol. In step 930, after graphics have been rendered by the server, the client receives rendered graphics data from the server using the UDP transport protocol. In the embodiment shown, the received rendered graphics data comprises both rendered subject graphics data and rendered GUI graphics data composited together. The process concludes at step 940.
  • The method of the invention from the perspective of the server is illustrated in FIG. 10. The process begins at step 1010. In step 1020, the server receives rendering commands from the client. These commands are transmitted using the TCP transport protocol. In step 1030, after rendering has been completed, rendered graphics data is transmitted to the client using the UDP transport protocol. The rendered graphics data includes rendered subject graphics data and rendered GUI graphics data that has been composited together.
  • The method of an alternative embodiment of the invention, from the perspective of the client, is illustrated in FIG. 11. The process begins at step Ill 0. In step 1120, the client transmits rendering commands to the server, using the TCP transport protocol. In step 1130, after the server has completed its rendering, the client receives rendered subject graphics data from the server, transmitted using the UDP transport protocol. In step 1140, the client receives rendered GUI graphics data from the server, transmitted using the TCP transport protocol. The process concludes at step 1150. Note that in alternative embodiments, steps 1130 and 1140 may take place in any order or may take place in parallel.
  • The process of this embodiment of the invention, from the perspective of the server, is illustrated in FIG. 12. The process begins at step 1210. In step 1220, the server receives rendering commands from the client, sent using the TCP transport protocol. In step 1230, the server transmits rendered subject graphics data to the client using the UDP transport protocol. In step 1240, the server transmits rendered GUI graphics data to the client, using the TCP transport protocol. The process concludes at step 1250. In alternative embodiments of the invention, steps 1230 and 1240 may take place in any order, or may take place in parallel.
  • IV. Computing environment
  • Both a client and a server represent computer systems. Logic that implements a transport protocol can be implemented as computer program code that executes on a computer system. An example of such a computer system 1300 is shown generally in FIG. 13. Computer system 1300 includes one or more processors, such as processor 1304. The processor 1304 is connected to a communication infrastructure 1306, such as a bus or network. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.
  • Computer system 1300 includes a main memory 1308, preferably random access memory (RAM), and may also include a secondary memory 1310. The secondary memory 1310 may include, for example, a hard disk drive 1312 and/or a removable storage drive 1314. The removable storage drive 1314 reads from and/or writes to a removable storage unit 1318 in a well-known manner. Removable storage unit 1318 represents a floppy disk, magnetic tape, optical disk, or other storage medium which is read by and written to by removable storage drive 1314. The removable storage unit 1318 includes a computer usable storage medium having stored therein computer software and/or data.
  • In alternative implementations, secondary memory 1310 may include other means for allowing computer programs or other instructions to be loaded into computer system 1300. Such means may include, for example, a removable storage unit 1322 and an interface 1320. Examples of such means may include a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 1322 and interfaces 1320 which allow software and data to be transferred from the removable storage unit 1322 to computer system 1300.
  • Computer system 1300 may also include a communications interface 1324. Communications interface 1324 allows software and data to be transferred between computer system 1300 and external devices. Examples of communications interface 1324 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 1324 are in the form of signals 1328 which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 1324. These signals 1328 are provided to communications interface 1324 via a communications path (i.e., channel) 1326. This channel 1326 carries signals 1328 and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels. In an embodiment of the invention, signals 1328 at a client can comprise rendering commands that are to be processed for transmission using the TCP transport protocol, wherein this processing is performed at least in part by processor 1304 under software control.
  • Alternatively, signals 1328 at a client can comprise data received from a server, wherein the data includes rendered subject graphics data transmitted by the server using the UDP transport protocol and/or rendered GUI graphics data transmitted by the server using the TCP transport protocol. Here, processor 1304 processes the received signals 1328 for subsequent display.
  • At a server, signals 1328 can comprise rendering commands that have been transmitted by a client using the TCP transport protocol. Processor 1304 then processes received signals 1328 for use by the graphics application. At a server, signals 1328 can also comprise rendered subject graphics data that is to be processed by processor 1304 for transmission using the UDP transport protocol and/or rendered GUI graphics data to be processed for transmission with the TCP transport protocol.
  • In this document, the terms “computer program medium” and “computer usable medium” are used to generally refer to media such as removable storage units 1318 and 1322, a hard disk installed in hard disk drive 1312, and signals 1328. These computer program products are means for providing software to computer system 1300.
  • Computer programs (also called computer control logic) are stored in main memory 1308 and/or secondary memory 1310. Computer programs may also be received via communications interface 1324. Such computer programs, when executed, enable the computer system 1300 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 1304 to implement the present invention. Accordingly, such computer programs represent controllers of the computer system 1300. Where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 1300 using removable storage drive 1314, hard drive 1312 or communications interface 1324.
  • V. Conclusion
  • While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in detail can be made therein without departing from the spirit and scope of the invention. Thus the present invention should not be limited by any of the above-described exemplary embodiments.

Claims (15)

What is claimed is:
1. A method for remote rendering of graphics data, the method comprising:
transmitting a rendering command from a client to a server, wherein the server renders graphical user interface (GUI) graphics data in a first rendering pipeline, and renders subject graphics data in a second rendering pipeline;
receiving the rendered graphical user interface (GUI) graphics data using a reliable transport protocol; and
receiving the rendered subject graphics data using an unreliable transport protocol.
2. The method of claim 1, wherein the rendering command is transmitted using a reliable transport protocol.
3. The method of claim 2, wherein the reliable transport protocol used to transmit the rendering command is a TCP transport protocol.
4. The method of claim 1, wherein the reliable transport protocol used to receive the graphical user interface (GUI) graphics data is TCP.
5. The method of claim 1, wherein the unreliable transport protocol is a UDP transport protocol.
6. The method of claim 1, wherein the server obtains at least one of a texture and an image when rendering the graphical user interface (GUI) graphics data, and when rendering the subject graphics data.
7. The method of claim 1, further comprising:
compositing the rendered graphical user interface (GUI) graphics data and the rendered subject graphics data into a composited image; and
displaying the composited image on a display.
8. A system for receiving a remotely rendered graphics data, the system comprising:
a memory;
a processor; and
a network interface, wherein the network interface:
transmits a rendering command from a client to a server through the network interface, wherein the server renders graphical user interface (GUI) graphics data in a first rendering pipeline, and renders subject graphics data in a second rendering pipeline;
receives the rendered graphical user interface (GUI) graphics data using a reliable transport protocol through the network interface; and
receives the rendered subject graphics data using an unreliable transport protocol through the network interface.
9. The system of claim 8, further comprising:
a compositor that composites the rendered graphical user interface (GUI) graphics data and the rendered subject graphics data into a composited image; and
a display that displays the composited image.
10. A non-transitory computer-readable storage medium having embodied thereon a program executable by a processor to perform a method for remote rendering of graphics data, the method comprising:
transmitting a rendering command from a client to a server, wherein the server renders graphical user interface (GUI) graphics data in a first rendering pipeline, and renders subject graphics data in a second rendering pipeline;
receiving the rendered graphical user interface (GUI) graphics data using a reliable transport protocol; and
receiving the rendered subject graphics data using an unreliable transport protocol.
11. The non-transitory computer-readable storage medium of claim 10, wherein the rendering command is transmitted using a reliable transport protocol.
12. The non-transitory computer-readable storage medium claim 11, wherein the reliable transport protocol used to transmit the rendering command is a TCP transport protocol.
13. The non-transitory computer-readable storage medium of claim 10, wherein the reliable transport protocol used to receive the graphical user interface (GUI) graphics data is TCP.
14. The computer-readable storage medium claim 10, wherein the unreliable transport protocol is a UDP transport protocol.
15. The non-transitory computer-readable storage medium of claim 10, the program further executable to obtain at least one of a texture and an image when rendering the graphical user interface (GUI) graphics data, and when rendering the subject graphics data.
US14/528,929 2003-04-30 2014-10-30 Applying different transport mechanisms for user interface and image portions of a remotely rendered image Expired - Lifetime US9117288B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/528,929 US9117288B2 (en) 2003-04-30 2014-10-30 Applying different transport mechanisms for user interface and image portions of a remotely rendered image

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/426,003 US8291009B2 (en) 2003-04-30 2003-04-30 System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
US13/620,223 US8924473B2 (en) 2003-04-30 2012-09-14 Applying different transport mechanisms for user interface and image portions of a remotely rendered image
US14/528,929 US9117288B2 (en) 2003-04-30 2014-10-30 Applying different transport mechanisms for user interface and image portions of a remotely rendered image

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/620,223 Continuation US8924473B2 (en) 2003-04-30 2012-09-14 Applying different transport mechanisms for user interface and image portions of a remotely rendered image

Publications (2)

Publication Number Publication Date
US20150054840A1 true US20150054840A1 (en) 2015-02-26
US9117288B2 US9117288B2 (en) 2015-08-25

Family

ID=33309780

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/426,003 Active 2027-02-25 US8291009B2 (en) 2003-04-30 2003-04-30 System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
US13/620,223 Expired - Lifetime US8924473B2 (en) 2003-04-30 2012-09-14 Applying different transport mechanisms for user interface and image portions of a remotely rendered image
US14/528,929 Expired - Lifetime US9117288B2 (en) 2003-04-30 2014-10-30 Applying different transport mechanisms for user interface and image portions of a remotely rendered image

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/426,003 Active 2027-02-25 US8291009B2 (en) 2003-04-30 2003-04-30 System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
US13/620,223 Expired - Lifetime US8924473B2 (en) 2003-04-30 2012-09-14 Applying different transport mechanisms for user interface and image portions of a remotely rendered image

Country Status (1)

Country Link
US (3) US8291009B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275495A1 (en) * 2008-04-01 2013-10-17 Microsoft Corporation Systems and Methods for Managing Multimedia Operations in Remote Sessions

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9420072B2 (en) 2003-04-25 2016-08-16 Z124 Smartphone databoost
US8291009B2 (en) 2003-04-30 2012-10-16 Silicon Graphics International Corp. System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
US20050060433A1 (en) * 2003-09-17 2005-03-17 E-Powergate, Inc. Method and system for rendering graphic data based on network
US8042094B2 (en) * 2004-07-08 2011-10-18 Ellis Amalgamated LLC Architecture for rendering graphics on output devices
US7716731B2 (en) * 2005-10-24 2010-05-11 Cisco Technology, Inc. Method for dynamically tunneling over an unreliable protocol or a reliable protocol, based on network conditions
US8127233B2 (en) * 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) * 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
US8121423B2 (en) 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
US8106909B2 (en) * 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
US8289333B2 (en) * 2008-03-04 2012-10-16 Apple Inc. Multi-context graphics processing
US9418171B2 (en) * 2008-03-04 2016-08-16 Apple Inc. Acceleration of rendering of web-based content
US8477143B2 (en) 2008-03-04 2013-07-02 Apple Inc. Buffers for display acceleration
WO2010042609A2 (en) * 2008-10-07 2010-04-15 University Of South Florida Architecture and two-layered protocol for real-time location-aware applications
EP2345262A4 (en) 2008-10-08 2015-01-14 Univ South Florida Adaptive location data buffering for location-aware applications
EP2616954B1 (en) * 2010-09-18 2021-03-31 Google LLC A method and mechanism for rendering graphics remotely
US8788576B2 (en) * 2010-09-27 2014-07-22 Z124 High speed parallel data exchange with receiver side data handling
US8751682B2 (en) 2010-09-27 2014-06-10 Z124 Data transfer using high speed connection, high integrity connection, and descriptor
US8627449B2 (en) 2011-03-03 2014-01-07 Cisco Technology, Inc. Dynamic tunneling over virtual private network connections based on network conditions
US8499051B2 (en) 2011-07-21 2013-07-30 Z124 Multiple messaging communication optimization
US9727227B2 (en) * 2011-07-28 2017-08-08 Microsoft Technology Licensing, Llc Multi-touch remoting
US9032467B2 (en) 2011-08-02 2015-05-12 Google Inc. Method and mechanism for efficiently delivering visual data across a network
US8878794B2 (en) 2011-09-27 2014-11-04 Z124 State of screen info: easel
US9774721B2 (en) 2011-09-27 2017-09-26 Z124 LTE upgrade module
US9576340B2 (en) 2012-07-30 2017-02-21 Nvidia Corporation Render-assisted compression for remote graphics
GB2506727A (en) * 2012-07-30 2014-04-09 Nvidia Corp Server-rendering of graphics for remote client
US9979960B2 (en) 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
WO2015123840A1 (en) * 2014-02-20 2015-08-27 Intel Corporation Workload batch submission mechanism for graphics processing unit
US20150271226A1 (en) * 2014-03-18 2015-09-24 Qualcomm Incorporated Transport accelerator implementing a multiple interface architecture
CN104796393A (en) * 2014-05-30 2015-07-22 厦门极致互动网络技术有限公司 Online game system and method based on server real-time rendering
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
WO2020041872A1 (en) 2018-08-30 2020-03-05 Streamworx.Ai Inc. Systems, methods and computer program products for scalable, low-latency processing of streaming data
CN109445760B (en) * 2018-10-08 2022-08-23 武汉联影医疗科技有限公司 Image rendering method and system
CN117472371B (en) * 2023-10-09 2024-07-05 北京趋动智能科技有限公司 Remote rendering method, device and storage medium

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596686A (en) * 1994-04-21 1997-01-21 Silicon Engines, Inc. Method and apparatus for simultaneous parallel query graphics rendering Z-coordinate buffer
US6542925B2 (en) * 1995-05-30 2003-04-01 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US6108704A (en) * 1995-09-25 2000-08-22 Netspeak Corporation Point-to-point internet protocol
US6343313B1 (en) * 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
US6711622B1 (en) * 1997-12-31 2004-03-23 Broadware Technologies, Inc. Video and audio streaming for multiple users
US5929748A (en) 1997-06-12 1999-07-27 Microsoft Corporation Automated home control using existing electrical lines as a communications medium
US6442603B1 (en) * 1998-10-13 2002-08-27 3Com Corporation Methods for ordered delivery of electronic content
US7042583B1 (en) * 1999-04-12 2006-05-09 Eastman Kodak Company Techniques for acquiring a parent multimedia asset (digital negative) from any of a plurality of multiply modified child multimedia assets
US6578068B1 (en) * 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6563514B1 (en) * 2000-04-13 2003-05-13 Extensio Software, Inc. System and method for providing contextual and dynamic information retrieval
US20060036756A1 (en) * 2000-04-28 2006-02-16 Thomas Driemeyer Scalable, multi-user server and method for rendering images from interactively customizable scene information
US6633688B1 (en) * 2000-04-28 2003-10-14 Earth Resource Mapping, Inc. Method system and apparatus for providing image data in client/server systems
US6742042B1 (en) * 2000-06-28 2004-05-25 Nortel Networks Limited Method and apparatus of presenting ticker information
US6775785B1 (en) * 2000-09-29 2004-08-10 Intel Corporation Method and apparatus for access to resources not mapped to an autonomous subsystem in a computer based system without involvement of the main operating system
US6748508B1 (en) * 2000-10-17 2004-06-08 Sun Microsystems, Inc. Method and apparatus for buffering in multi-node, data distribution architectures
US7038802B2 (en) * 2000-12-29 2006-05-02 Agfa Corporation Flexible networked image processing
US7139417B2 (en) * 2001-08-14 2006-11-21 Ge Medical Systems Global Technology Company Llc Combination compression and registration techniques to implement temporal subtraction as an application service provider to detect changes over time to medical imaging
US20030122872A1 (en) * 2001-12-31 2003-07-03 Kuo-Chang Chiang Graphics computer programming language for the creation of interactive virtual world
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
US6700580B2 (en) * 2002-03-01 2004-03-02 Hewlett-Packard Development Company, L.P. System and method utilizing multiple pipelines to render graphical data
US8176428B2 (en) * 2002-12-03 2012-05-08 Datawind Net Access Corporation Portable internet access device back page cache
US8291009B2 (en) 2003-04-30 2012-10-16 Silicon Graphics International Corp. System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275495A1 (en) * 2008-04-01 2013-10-17 Microsoft Corporation Systems and Methods for Managing Multimedia Operations in Remote Sessions

Also Published As

Publication number Publication date
US20040221004A1 (en) 2004-11-04
US8924473B2 (en) 2014-12-30
US9117288B2 (en) 2015-08-25
US8291009B2 (en) 2012-10-16
US20130169650A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US9117288B2 (en) Applying different transport mechanisms for user interface and image portions of a remotely rendered image
US10176549B2 (en) System, method and computer program product for remote graphics processing
US7853648B1 (en) System and method for providing interactive images
US7076735B2 (en) System and method for network transmission of graphical data through a distributed application
US6377257B1 (en) Methods and apparatus for delivering 3D graphics in a networked environment
US8117275B2 (en) Media fusion remote access system
US7432933B2 (en) System and method utilizing multiple processes to render graphical data
US20050033817A1 (en) Sharing OpenGL applications using application based screen sampling
US20180113663A1 (en) Browser based display system for displaying image data
US9142254B2 (en) Capturing frames from an external source
AU2007238699A2 (en) Systems and methods for displaying to a presenter visual feedback corresponding to visual changes received by viewers
EP4002278A1 (en) Systems and method for low bandwidth video-chat compression
US6727904B2 (en) System and method for rendering graphical data
US20150350295A1 (en) System And Method For Loading Assets During Remote Execution
CN113836455A (en) Special effect rendering method, device, equipment, storage medium and computer program product
US7659907B1 (en) System and method for providing dynamic control of a graphics session
US8046698B1 (en) System and method for providing collaboration of a graphics session
CN113286169B (en) Audio and video transmission method based on RFB protocol
US12045533B2 (en) Content sharing with spatial-region specific controls to facilitate individualized presentations in a multi-viewer session
US20240303025A1 (en) Screen sharing viewership verification
Schoor et al. Remote rendering strategies for large biological datasets
US20060085562A1 (en) Devices and methods for remote computing using a network processor

Legal Events

Date Code Title Description
AS Assignment

Owner name: SILICON GRAPHICS INTERNATIONAL CORP., CALIFORNIA

Free format text: MERGER;ASSIGNOR:SGI INTERNATIONAL, INC.;REEL/FRAME:034075/0684

Effective date: 20120808

Owner name: SILICON GRAPHICS INTERNATIONAL, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICON GRAPHICS, INC.;REEL/FRAME:034075/0519

Effective date: 20090508

Owner name: SILICON GRAPHICS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHALFIN, ALEXANDER;KAULGUD, ALPANA;REEL/FRAME:034075/0413

Effective date: 20030818

Owner name: SGI INTERNATIONAL, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:SILICON GRAPHICS INTERNATIONAL, INC.;REEL/FRAME:034113/0591

Effective date: 20090513

Owner name: SILICON GRAPHICS, INC., CALIFORNIA

Free format text: AGREEMENT;ASSIGNOR:PEERCY, MARK S.;REEL/FRAME:034113/0547

Effective date: 19940505

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK

Free format text: SECURITY INTEREST;ASSIGNOR:SILICON GRAPHICS INTERNATIONAL CORP.;REEL/FRAME:037726/0258

Effective date: 20160210

AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICON GRAPHICS INTERNATIONAL CORP.;REEL/FRAME:044128/0149

Effective date: 20170501

AS Assignment

Owner name: SILICON GRAPHICS INTERNATIONAL CORP., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:045811/0447

Effective date: 20161101

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP;REEL/FRAME:045933/0001

Effective date: 20180509

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8