Multi-user terminal services accelerator
First Claim
1. A host computer system configured to support multiple remote terminals, comprising:
- a graphics and display subsystem havinga display memory which can store display frames for multiple terminals;
one or more drawing engines for generating display frames corresponding to display frames at a remote terminal, the display frames comprising sub frames wherein a size for each sub frame is configurable during run-time by the host computer system as a multiple of a minimum pixel block size of an algorithm for encoding the sub frames executing in the graphics and display subsystem; and
means for tracking modified sub frames of the display frames and for performing selective updates based on this tracking, wherein said tracking comprises generating signatures and status bits identifying the modified sub frames, reducing the sub frames into smaller sub frames based on the signatures, determining a type of data contained in the modified sub frames, and selecting the algorithm for encoding the sub frames based on the type;
means for communicatively coupling said graphics and display subsystem to a host CPU in said host computer system andmeans for managing the selective updates so that only the selective updates will be transferred via a network subsystem to corresponding ones of said remote terminals.
4 Assignments
0 Petitions
Accused Products
Abstract
A multi-user host computer system comprises a host computer that processes applications and the desktop environments for multiple remote terminals. The host computer includes a terminal services offload processor to supplement the processing of the host CPU. For each remote terminal, the terminal services offload processor may improve the video and graphics performance and allow the multi-user host computer system to more efficiently support multiple users. The host computer may include a graphics processor that manages a virtual display for each remote terminal and provides selective updates of sub frame data. Where appropriate, the sub frame data is encoded and transmitted over the network to the remote terminals. Video data streams are also optimized by the terminal services offload processor and optimized for the intended remote terminals and their respective network connections. The terminal services offload processor may be implemented in programmable hardware and may be a separate subsystem or may also be used to perform other offload tasks.
-
Citations
17 Claims
-
1. A host computer system configured to support multiple remote terminals, comprising:
-
a graphics and display subsystem having a display memory which can store display frames for multiple terminals; one or more drawing engines for generating display frames corresponding to display frames at a remote terminal, the display frames comprising sub frames wherein a size for each sub frame is configurable during run-time by the host computer system as a multiple of a minimum pixel block size of an algorithm for encoding the sub frames executing in the graphics and display subsystem; and means for tracking modified sub frames of the display frames and for performing selective updates based on this tracking, wherein said tracking comprises generating signatures and status bits identifying the modified sub frames, reducing the sub frames into smaller sub frames based on the signatures, determining a type of data contained in the modified sub frames, and selecting the algorithm for encoding the sub frames based on the type; means for communicatively coupling said graphics and display subsystem to a host CPU in said host computer system and means for managing the selective updates so that only the selective updates will be transferred via a network subsystem to corresponding ones of said remote terminals. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A host computer system configured to support multiple remote terminals, comprising:
-
a host CPU connected via a system bus to other subsystems within said host computer system; an offload subsystem for managing said remote terminals configured to; intercept graphics commands or video data on said bus prior to being processed by said host CPU and prior to sending graphics commands or video data to the remote terminals such that the host CPU does not process the graphics commands or video data; and process said intercepted graphics commands or video data as a function of video decoding capabilities at said multiple remote terminals and support remote terminals of different display sizes, further comprising at least one of transcoding, transrating, changing a frame rate, changing a display format, and changing a resolution; and a management subsystem configured to manage said intercepted and processed graphics commands or video data for transfer via a network subsystem to corresponding ones of said remote terminals; and a graphics and display subsystem configured to; generate display frames corresponding to display frames at the remote terminals, the display frames comprising sub frames wherein a size for each sub frame is configurable during runtime by the host computer system as a multiple of a minimum pixel block size of an algorithm for encoding the sub frames; track modified sub frames by generating signatures and status bits identifying the modified sub frames; reduce the sub frames into smaller sub frames based on the signatures; and perform selective updates based on this tracking, further comprising determining a type of data contained in the modified sub frames and selecting an encoding algorithm based on the type. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. In a system comprising a host computer including software, a main CPU, a graphics and display subsystem, and an offload engine, a method for operating a multi-user host system having multiple remote terminals, comprising:
-
using said offload engine to assist the main CPU in processing graphics commands and video data, wherein said processing said video data comprises at least one of changing bit rate, changing resolution, changing frame rate and changing encoding algorithm and said processing said graphics commands comprises encapsulating and encoding data associated with the graphics commands, said encoding executed such that extraneous video artifacts are substantially minimized regardless of an alignment of a current display window; using said graphics and display subsystem to; generate display frames corresponding to display frames at the remote terminals, the display frames comprising sub frames wherein a size for each sub frame is configurable during runtime by the host computer system as a multiple of a minimum pixel block size of an algorithm for encoding the sub frames; track modified sub frames by generating signatures and status bits identifying the modified sub frames; reduce the sub frames into smaller sub frames based on the signatures; and perform selective updates based on this tracking, further comprising determining a type of data contained in the modified sub frames and selecting an encoding algorithm based on the type; determining which of said remote terminals is the destination for said processed graphics commands and said processed video data; and propagating said processed graphics commands and processed video data according to network protocol techniques through a network interface. - View Dependent Claims (16, 17)
-
Specification