# US 9,438,917 B2 · System and method for adaptive bandwidth management

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,917 B2
- Document ID: US9438917B2
- Status: Granted
- Kind: B2
- Application number: 13/865,769
- Filed: 2013-04-18
- Published: 2014-10-23
- Granted: 2016-09-06
- Earliest claimed: 2013-04-18
- Assignees: Futurewei Technologies, Inc.
- Applicants: FutureWei Technologies, Inc.
- Inventors: Guangsong Xia
- Web page: https://patentgrep.com/patent/US9438917B2

## CPC

- H04N 19/15: by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
- H04N 19/00: Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N 19/10: using adaptive coding
- H04N 19/115: Selection of the code volume for a coding unit prior to coding
- H04N 19/136: Incoming video signal characteristics or properties
- H04N 19/169: characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N 19/17: the unit being an image region, e.g. an object
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

System and method embodiments are provided for adaptive bandwidth management for transporting rendered graphics in a virtual desktop infrastructure. The embodiments include a video detection algorithm that enables a driver for a graphics processor at the server's end to identify displayed video data at the user'send. The driver identifies video traffic that is sent to the user device by tracking repeated bitmap operations at the same display area or block of an application displayed window at the user device. When the number of bitmap operations reaches a pre-determined threshold, then the corresponding area is considered a video display area. When detecting that a bandwidth threshold for transporting graphics data from the server to the device is reached, the data corresponding to the detected video area is compressed using a higher compression rate, thus increasing the loss rate of transferred video data to improve playback experience for the user.

## Claims

### Claim 1

A method for adaptive bandwidth management to handle graphics for a virtual desktop infrastructure (VDI), the method comprising:
determining, at a server, that graphics data transmitted to a remote user device has reached a threshold bandwidth;
upon determining that the graphics data has reached the threshold bandwidth, detecting video data among the graphics data by using a table to track a number of bitmap blits at window display areas of an application, wherein a bitmap blit is a computer graphics operation in which multiple bitmaps are combined into one bitmap using a raster operator, and wherein the graphics data includes at least some non-video graphics data, wherein detecting the video data by using the table to track the number of bitmap blits comprises recording, in the table, a number of bitmap blits detected in a given window display area during a period, and determining that video data is present in the window display area during the period when the number of bitmap blits recorded in the table exceeds a threshold; and
upon detecting the video data among the graphics data, compressing the video data at a higher compression rate than the non-video graphics data before transmitting the video data with the non-video graphics data to the remote user device.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
determining that the transmitted the graphics data has reached a tolerated bandwidth level; and
upon determining that the transmitted graphics data has reached the tolerated bandwidth level, cease compressing the video data at the higher compression rate such that the video data and the non-video graphics data is compressed at the same compression rate.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
determining that the transmitted video data has reached a tolerated bandwidth level; and
upon determining that the transmitted video data has reached the tolerated bandwidth level, cease compressing the video data at the higher compression rate such that the video data and the non-video graphics data is compressed at the same compression rate.

### Claim 4 (depends on 1)

The method of claim 1, wherein the application is a web browser application that displays the graphics data on the remote user device.

### Claim 5 (depends on 4)

The method of claim 4, wherein detecting video data among the graphics data further comprises:
determining that a window display area is a video display area when the number of bitmap blits for the window display area has reached a pre-determined number.

### Claim 6 (depends on 1)

The method of claim 1, wherein the video data is compressed at a higher compression rate than a standard or initial compression rate of the video data and the non-video graphics data used prior to determining that the graphics data has reached the threshold bandwidth.

### Claim 7 (depends on 1)

The method of claim 1, wherein the video data is detected at a driver for graphics data processing at a virtual machine (VM) on the server.

### Claim 8

A method for adaptive bandwidth management to handle graphics for a virtual desktop infrastructure (VDI), the method comprising:
tracking, at a driver for graphics rendering at a virtual machine (VM), a number of bitmap blits for window display areas of an application that displays graphics data on a remote user device, wherein a bitmap blit is a computer graphics operation in which multiple bitmaps are combined into one bitmap using a raster operator, and wherein the graphics data includes at least some non-video graphics data, wherein tracking the number of bitmap blits comprises recording, in a table, a number of bitmap blits detected in a given window display area during a period, and determining that video data is present in the window display area during the period when the number of bitmap blits recorded in the table has reached a pre-determine number;
upon detecting that the number of bitmap blits of a window display area has reached the pre-determined number, identifying the graphics data for the window display area as video data;
tracking a bandwidth of the graphics data;
upon detecting that the bandwidth has reached a threshold, increasing a compressing rate of the video data to a pre-determined rate; and
sending the graphics data including the video data compressed at the pre-determined rate to the remote user device.

### Claim 9 (depends on 8)

The method of claim 8, wherein the bandwidth of the video data is tracked after identifying the video data, and wherein the compression rate of the video data is increased when the bandwidth of the video data has reached the threshold.

### Claim 10 (depends on 8)

The method of claim 8, wherein the bandwidth of the graphics data including the video data is tracked, and wherein the compression rate of the video data is increased when the bandwidth of the graphics data including the video data has reached the threshold.

### Claim 11 (depends on 8)

The method of claim 8 further comprising hashing the number of bitmap blits for each window display area of the application on the remote user device to a table entry at the VM.

### Claim 12 (depends on 11)

The method of claim 11 further comprising resetting the number of bitmap blits to zero in the table entry for a corresponding window display area when there is no change in the number of bitmap blits over a pre-determined period of time.

### Claim 13 (depends on 12)

The method of claim 12 further comprising:
identifying the graphics data for the corresponding window display area as non-video data; and
resuming compression of the graphics data at a lower or standard compression rate for the corresponding window display area.

### Claim 14 (depends on 8)

The method of claim 8, wherein the graphics data includes video data that is initially compressed before the bandwidth reaches the threshold at a compression rate substantially less than the pre-determined rate that is used to compress the video data after the bandwidth reaches the threshold.

### Claim 15

A network component configured for adaptive bandwidth management for graphics rendering, the network component comprising:
a virtual machine (VM);
a processor; and
a computer readable storage medium storing programming for execution by the processor, the programming including instructions to:
determine that graphics data transmitted from the VM to a remote user device has reached a threshold bandwidth;
upon determining that the graphics data has reached the threshold bandwidth, detect video data among the graphics data by using a table to track a number of bitmap blits for window display areas of an application, wherein a bitmap blit is a computer graphics operation in which multiple bitmaps are combined into one bitmap using a raster operator, and wherein the graphics data includes at least some non-video graphics data, wherein the instructions to detect the video data by using the table to track the number of bitmap blits includes instructions to record, in the table, a number of bitmap blits detected in a given window display area during a period, and to determine that video data is present in the window display area during the period when the number of bitmap blits recorded in the table exceeds a threshold; and
upon detecting the video data among the graphics data, compress the video data at a higher compression rate than the non-video graphics data before transmitting the video data with the non-video graphics data to the remote user device.

### Claim 16 (depends on 15)

The network component of claim 15, wherein the VM comprises:
a graphics processing unit (GPU) configured for rendering the graphics data including the video data; and
a driver configured to serve as an interface between the GPU and the application, and wherein the application displays the graphics data including the video data in a window on the remote user device.

### Claim 17 (depends on 15)

The network component of claim 15, wherein the programming includes further instructions to:
determine whether the transmitted graphics data or video data has reached a tolerated bandwidth level; and
upon determining that the transmitted graphics data or video data has reached the tolerated bandwidth level, stop the higher compression rate of the video data.

### Claim 18 (depends on 15)

The network component of claim 15, wherein the instructions to detect the video data further includes instructions to:
determine that a window display area is a video display area when the number of bitmap blits for the same window display area has reached a pre-determined number.
