IP Library Granted Patent US 8,456,380
Granted Patent B2
US 8,456,380 · App. 12/121,343 · Granted Jun 4, 2013

Processing computer graphics generated by a remote computer for streaming to a client computer

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,456,380
App. No.
12/121,343
Granted
Jun 4, 2013
Kind
B2
Abstract

Processing computer graphics generated by a remote computer for streaming to a client computer for display on a display device operatively coupled to the client computer, the graphics streamed to the client computer in a plurality of frames, including, for each frame: selecting, by a graphics module of the remote computer in dependence upon a compression profile, regions of the frame to compress at a lower compression rate than other regions of the frame; compressing the frame for streaming; streaming the compressed frame to the client computer; receiving the compressed frame in the stream; decompressing the compressed frame; and displaying the decompressed frame on the display device operatively coupled to the client computer.

Claims (57)

1. A method of processing computer graphics generated by a remote computer for streaming to a client computer for display on a display device operatively coupled to the client computer, the graphics streamed to the client computer in a plurality of frames, the client computer connected for data communications to the remote computer through a data communications network, the method comprising:

for each frame:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of the frame to compress at a lower compression rate than other regions of the frame;

compressing, by the graphics module, the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame;

streaming the compressed frame to the client computer;

receiving, by a client graphics module of the client computer, the compressed frame in the stream;

decompressing, by the client graphics module, the compressed frame including identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame in dependence upon metadata received in the stream describing the frame, wherein the metadata identifies the type of each region in the frame; and

displaying the decompressed frame on the display device operatively coupled to the client computer.

2. The method of claim 1 wherein identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame further comprises:

identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame in dependence upon a client compression profile.

3. The method of claim 1 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting an active graphical user interface (‘GUI’) window as a region of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the active GUI window at the lower compression rate than the other regions of the frame.

4. The method of claim 1 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting one or more predefined portions of fixed sizes and locations of the frame as regions of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the one or more predefined portions at the lower compression rate than the other regions of the frame.

5. The method of claim 1 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting portions of the frame in which a change in graphics from one or more previous frames is greater than a predetermined threshold as regions of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the portions of the frame in which the change in graphics from the one or more previous frames is greater than the predetermined threshold at the lower compression rate than the other regions of the frame.

6. An apparatus for processing computer graphics generated by a remote computer for streaming to a client computer for display on a display device operatively coupled to the client computer, the graphics streamed to the client computer in a plurality of frames, the client computer connected for data communications to the remote computer through a data communications network, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions capable of:

for each frame:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of the frame to compress at a lower compression rate than other regions of the frame;

compressing, by the graphics module, the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame;

streaming the compressed frame to the client computer;

receiving, by a client graphics module of the client computer, the compressed frame in the stream;

decompressing, by the client graphics module, the compressed frame including identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame in dependence upon metadata received in the stream describing the frame, wherein the metadata identifies the type of each region in the frame; and

displaying the decompressed frame on the display device operatively coupled to the client computer.

7. The apparatus of claim 6 wherein identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame further comprises:

identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame in dependence upon a client compression profile.

8. The apparatus of claim 6 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting an active graphical user interface (‘GUI’) window as a region of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the active GUI window at the lower compression rate than the other regions of the frame.

9. The apparatus of claim 6 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting one or more predefined portions of fixed sizes and locations of the frame as regions of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the one or more predefined portions at the lower compression rate than the other regions of the frame.

10. The apparatus of claim 6 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting portions of the frame in which a change in graphics from one or more previous frames is greater than a predetermined threshold as regions of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the portions of the frame in which the change in graphics from the one or more previous frames is greater than the predetermined threshold at the lower compression rate than the other regions of the frame.

11. A computer program product for processing computer graphics generated by a remote computer for streaming to a client computer for display on a display device operatively coupled to the client computer, the graphics streamed to the client computer in a plurality of frames, the client computer connected for data communications to the remote computer through a data communications network, the computer program product disposed in a computer readable, recordable storage medium, the computer program product comprising computer program instructions capable of:

for each frame:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of the frame to compress at a lower compression rate than other regions of the frame;

compressing, by the graphics module, the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame;

streaming the compressed frame to the client computer;

receiving, by a client graphics module of the client computer, the compressed frame in the stream;

decompressing, by the client graphics module, the compressed frame including identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame in dependence upon metadata received in the stream describing the frame, wherein the metadata identifies the type of each region in the frame; and

displaying the decompressed frame on the display device operatively coupled to the client computer.

12. The computer program product of claim 11 wherein identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame further comprises:

identifying the one or more regions of the frame compressed at the lower compression rate than other regions of the frame in dependence upon a client compression profile.

13. The computer program product of claim 11 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting an active graphical user interface (‘GUI’) window as a region of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the active GUI window at the lower compression rate than the other regions of the frame.

14. The computer program product of claim 11 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting one or more predefined portions of fixed sizes and locations of the frame as regions of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the one or more predefined portions at the lower compression rate than the other regions of the frame.

15. The computer program product of claim 11 wherein:

dynamically selecting, by a graphics module of the remote computer in dependence upon a compression profile comprising one or more selection rules, one or more regions of a frame to compress at a lower compression rate than other regions of the frame further comprises selecting portions of the frame in which a change in graphics from one or more previous frames is greater than a predetermined threshold as regions of the frame to compress at the lower compression rate than other regions of the frame; and

compressing the frame for streaming including compressing the selected regions of the frame at a lower compression rate than the other regions of the frame further comprises compressing the portions of the frame in which the change in graphics from the one or more previous frames is greater than the predetermined threshold at the lower compression rate than the other regions of the frame.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2008
From: PAGAN, WILLIAM G
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021233/0245 →