IP Library Granted Patent US 7,360,162
Granted Patent B2
US 7,360,162 · App. 11/071,499 · Granted Apr 15, 2008

Color quality and packet shaping features for displaying an application on various client devices

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 7,360,162
App. No.
11/071,499
Granted
Apr 15, 2008
Kind
B2
Abstract

In a client-server architecture, data transmission performance enhancing features are described, including a color quality approach and a packet shaping approach. A method includes a color quality data transformation including: selecting a quality level to apply to a set of image data having a number of significant color bits defining an initial number of possible colors; applying a pixel mask to the set of image data, the initial number of possible colors reduced to a smaller number of possible colors as a function of the quality level; loading the set of image data into an output buffer; and sending the set of image data from the output buffer to a display engine. Another method includes a packet shaping data structure transformation including if i) a total network time, defined by a total time of requests in a pending request queue, is equal to or greater than a current round trip time, defined by twice a current latency, and ii) a total request time, defined by a sum of a total time of requests in the pending request queue and a total time of requests in a transmitted request queue, minus the total network time is equal to or less than half a preset limit, then forming a shaped packet by associating a first data portion with a second data portion and a header.

Claims (50)

1. A method, comprising a color quality data transformation including:

selecting a quality level to apply to a first set of image data having a number of significant color bits defining an initial number of possible colors, wherein the quality level defines a maximum bits per pixel in a second set of image data and wherein selection of the quality level is based on available bandwidth of a client device;

applying a pixel mask to the first set of image data to obtain the second set of image data, wherein applying the pixel mask to the first set of image data reduces the initial number of possible colors to a smaller number of possible colors based on the quality level;

loading the second set of image data into an output buffer; and

sending the second set of image data from the output buffer to a display engine executing on the client device.

2. The method of claim 1 , further comprising:

applying another pixel mask to the second set of image data prior to loading the second set of image data into the output buffer, the another pixel mask calculating a way point for each of the reduced number of possible colors as a function of the quality level and the initial number of possible colors.

3. The method of claim 2 , wherein the way point is a mid-way point.

4. The method of claim 2 , wherein the way point is not a mid-way point.

5. The method of claim 1 , further comprising:

applying a level of image compression to the second set of image data prior to loading the second set of image data into the output buffer.

6. The method of claim 5 , wherein the level of image compression is defined by the use of at least one technique selected from the group consisting of RLE, Basic HexTile and Advanced HexTile.

7. The method of claim 1 , further comprising:

applying a general packet compressor to the second set of image data prior to loading the second set of image data into the output buffer.

8. The method of claim 7 , wherein the general packet compressor includes at least one member selected from the group consisting of fixed level Zlib and variable level Zlib.

9. A computer program, comprising computer or machine readable program elements translatable for implementing a method, the method comprising:

selecting a quality level to apply to a first set of image data having a number of significant color bits defining an initial number of possible colors, wherein the quality level defines a maximum bits per pixel in a second set of image data and wherein selection of the quality level is based on available bandwidth of a client device;

applying a pixel mask to the first set of image data to obtain the second set of image data, wherein applying the pixel mask to the first set of image data reduces the initial number of possible colors to a smaller number of possible colors based on the quality level;

loading the second set of image data into an output buffer; and sending the second set of image data from the output buffer to a display engine executing on the client device.

10. An apparatus for performing a method, the method comprising:

selecting a quality level to apply to a first set of image data having a number of significant color bits defining an initial number of possible colors, wherein the quality level defines a maximum bits per pixel in a second set of image data and wherein selection of the quality level is based on available bandwidth of a client device;

applying a pixel mask to the first set of image data to obtain the second set of image data, wherein applying the pixel mask to the first set of image data reduces the initial number of possible colors to a smaller number of possible colors based on the quality level;

loading the second set of image data into an output buffer; and sending the second set of image data from the output buffer to a display engine executing on the client device.

11. A method, comprising a packet shaping data structure transformation including:

determining whether i) a total network time, defined by a total time of requests in a pending request queue, is equal to or greater than a current round trip time, defined by twice a current latency, and ii) a total request time, defined by a sum of a total time of requests in the pending request queue and a total time of requests in a transmitted request queue, minus the total network time is equal to or less than half a preset limit,

forming, based on the determination, a shaped packet by associating a first data portion with a second data portion and a header, and storing the shaped packet in a shaped packet buffer.

12. The method of claim 11 , further comprising:

routing the shaped packet from the shaped packet buffer to a client device via the transmitted request queue.

13. The method of claim 11 , further comprising:

routing the shaped packet from the shaped packet buffer to a client device when a capacity of the shaped packet buffer is reached.

14. The method of claim 11 , further comprising:

routing the shaped packet from the shaped packet buffer to a client device when at least one selected from a group consisting of the total network time is less than the current round trip time and the total request time minus the total network time is greater than half the preset limit, occurs.

15. The method of claim 11 , further comprising:

routing the shaped packet from the shaped packet buffer to a client device after a period of time has passed.

16. The method of claim 11 , further comprising:

forming another shaped packet by associating a third data portion with a fourth data portion and another header.

17. The method of claim 16 , further comprising:

routing the shaped packet and the another shaped packet from the shaped packet buffer to a client device via the transmitted request queue.

18. The method of claim 16 , further comprising:

storing the shaped packet and the another shaped packet in a shaped packet buffer.

19. The method of claim 18 , further comprising:

routing the shaped packet and the another shaped packet from the shaped packet buffer to a client device when a capacity of the shaped packet buffer is reached.

20. The method of claim 18 , further comprising:

routing the shaped packet from the shaped packet buffer to a client device when at least one selected from a group consisting of the total network time is less than the current round trip time and the total request time minus the total network time is greater than half the preset limit, occurs.

21. The method of claim 18 , further comprising:

routing the shaped packet from the shaped packet buffer to a client device after a period of time has passed.

22. A computer program, comprising computer or machine readable program elements translatable for implementing a method, the method comprising:

determining whether i) a total network time, defined by a total time of requests in a pending request queue, is equal to or greater than a current round trip time, defined by twice a current latency, and ii) a total request time, defined by a sum of a total time of requests in the pending request queue and a total time of requests in a transmitted request queue, minus the total network time is equal to or less than half a preset limit, forming, based on the determination, a shaped packet by associating a first data portion with a second data portion and a header, and storing the shaped packet in a shaped packet buffer.

23. An apparatus for performing a method, the method comprising:

determining whether i) a total network time, defined by a total time of requests in a pending request queue, is equal to or greater than a current round trip time, defined by twice a current latency, and ii) a total request time, defined by a sum of a total time of requests in the pending request queue and a total time of requests in a transmitted request queue, minus the total network time is equal to or less than half a preset limit, forming, based on the determination, a shaped packet by associating a first data portion with a second data portion and a header, and storing the shaped packet in a shaped packet buffer.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037303/0025 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2006
From: TARANTELLA, INC.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017297/0930 →