# US 2013/0155086 A1 · Method and apparatus for providing local screen data to a sink device

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

- Number: US 2013/0155086 A1
- Document ID: US20130155086A1
- Status: Published application
- Kind: A1
- Application number: 13/327,079
- Filed: 2011-12-15
- Published: 2013-06-20
- Earliest claimed: 2011-12-15
- Assignees: Advance Micro Devices, Inc.
- Inventors: Daryl G. Sartain; Daniel A. Ivanciw
- Web page: https://patentgrep.com/patent/US20130155086A1

## CPC

- G09G 5/393: Arrangements for updating the contents of the bit-mapped memory
- G09G 5/006: {Details of the interface to the display terminal (specific for a display terminal using a CRT G09G1/167; using a flat panel G09G3/2096; circuits for interfacing with colour displays G09G5/04)}
- H04N 21/4122: {additional display device, e.g. video projector (digital output for controlling a plurality of local displays G06F3/1423)}
- H04N 21/4363: Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- G09G 5/12: Synchronisation between the display unit and other units, e.g. other display units, video-disc players
- G09G 2350/00: Solving problems of bandwidth in display systems
- G09G 2370/025: LAN communication management
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method and apparatus is provided for providing local screen data of a source device, such as a personal computer, to a sink device, such as a television, game console, or home theatre system, at a rate determined by the sink device. In one example, the method and apparatus responds to requests from the sink device to provide local screen data by serving the local screen data to the sink device from a circular buffer. The local screen data is written to the circular buffer in FIFO order based on the requests from the sink device, and read from the circular buffer based on the requests.

## Claims

### Claim 1

A method of providing local screen data to a sink device, comprising:
responding to requests from the sink device to provide local screen data at a rate determined by the sink device by serving the local screen data to the sink device from a circular buffer.

### Claim 2 (depends on 1)

The method of claim 1, wherein responding to requests further comprises:
controlling writing the local screen data to the circular buffer in FIFO order based on the requests; and
controlling reading of the local screen data from the circular buffer based on the requests.

### Claim 3 (depends on 1)

The method of claim 1, wherein responding to requests further comprises capturing the local screen data from a display device, compressing the captured local screen data, and formatting the compressed local screen data.

### Claim 4 (depends on 1)

The method of claim 1, wherein serving the local screen data comprises maintaining a desired latency between local screen data written to the circular buffer and local screen data read from the circular buffer.

### Claim 5 (depends on 1)

The method of claim 1, wherein responding to requests further comprises interpreting a read pointer from a media server in communication with the sink device.

### Claim 6 (depends on 5)

The method of claim 5, wherein interpreting a read pointer comprises determining whether a request has been made to continue receiving current local screen data, stop receipt of the local screen data, pause receipt of the local screen data, receive local screen data preceding the current local screen data, or receive local screen data following the current local screen data.

### Claim 7 (depends on 6)

The method of claim 6, wherein interpreting a read pointer comprises responding to a request to stop receipt of the local screen data by discontinuing writing local screen data to the circular buffer.

### Claim 8 (depends on 6)

The method of claim 6, wherein interpreting a read pointer comprises responding to a request to pause receipt of the local screen data by continuing to increment an internal read pointer associated with the circular buffer and continuing to write local screen data to the circular buffer.

### Claim 9 (depends on 6)

The method of claim 6, wherein interpreting a read pointer comprises responding to a request to pause receipt of the local screen data by maintaining a location of an internal read pointer associated with the circular buffer and continuing to write local screen data to the circular buffer.

### Claim 10 (depends on 6)

The method of claim 6, wherein interpreting a read pointer comprises responding to a request to receive local screen data preceding the current local screen data by decrementing an internal read pointer associated with the circular buffer.

### Claim 11 (depends on 6)

The method of claim 6, wherein interpreting a read pointer comprises responding to a request to receive local data following the current local screen data by incrementing an internal read pointer associated with the circular buffer.

### Claim 12 (depends on 5)

The method of claim 5, wherein interpreting a read pointer comprises:
determining a frame rate of consumption of the sink device from the read pointer; and
managing writing of local screen data to the circular buffer based on the frame rate.

### Claim 13 (depends on 12)

The method of claim 12, wherein managing writing of local screen data comprises increasing the frequency of writing fully decodable frames of local screen data to the circular buffer.

### Claim 14

A computer-readable storage medium storing instructions that, when executed by a processor in a source device, cause the processor to:
respond to requests from a sink device to provide local screen data at a rate determined by the sink device by serving the local screen data to the sink device from a circular buffer.

### Claim 15 (depends on 14)

The computer-readable storage medium of claim 14, wherein the instructions, when executed by the processor, further cause the processor to:
control writing the local screen data to the circular buffer in FIFO order based on the requests; and
control reading of the local screen data from the circular buffer based on the requests.

### Claim 16 (depends on 14)

The computer-readable storage medium of claim 14, wherein the instructions, when executed by the processor, further cause the processor to:
capture the local screen data from a display device, compress the captured local screen data, and format the compressed local screen data.

### Claim 17 (depends on 14)

The computer-readable storage medium of claim 14, wherein the instructions, when executed by the processor, further cause the processor to:
maintain a desired latency between local screen data written to the circular buffer and local screen data read from the circular buffer.

### Claim 18 (depends on 14)

The computer-readable storage medium of claim 14, wherein the instructions, when executed by the processor, further cause the processor to:
interpret a read pointer from a media server in communication with the sink device.

### Claim 19 (depends on 14)

The computer-readable storage medium of claim 14, wherein the instructions, when executed by the processor, further cause the processor to:
determine whether the sink device has requested to continue receiving current local screen data, stop receipt of the local screen data, pause receipt of the local screen data, receive local screen data preceding the current local screen data, or receive local screen data following the current local screen data.

### Claim 20 (depends on 18)

The computer-readable storage medium of claim 18, wherein the instructions, when executed by the processor to interpret the read pointer, further cause the processor to:
determine a frame rate of consumption of the sink device from the read pointer; and
manage writing of local screen data to the circular buffer based on the frame rate.

### Claim 21 (depends on 20)

The computer-readable storage medium of claim 20, wherein the instructions, when executed by the processor to manage writing of local screen data to the circular buffer, further cause the processor to:
increase the frequency of writing fully decodable frames of local screen data to the circular buffer.

### Claim 22

An apparatus for providing local screen data to a sink device, comprising:
a local screen data control system including
a circular buffer, and
a controller operative to respond to requests from the sink device to provide local screen data at a rate determined by the sink device by making the local screen data available to the sink device from a circular buffer.

### Claim 23 (depends on 22)

The apparatus of claim 22, further comprising:
a processing module;
wherein the controller is further operative to control writing of the local screen data from the processing module to the circular buffer in FIFO order based on the requests, and
control reading of the local screen data from the circular buffer based on the requests.

### Claim 24 (depends on 22)

The apparatus of claim 22, wherein the processing module is operative to capture the local screen data from a display device, compress the captured local screen data, and format the compressed local screen data.

### Claim 25 (depends on 22)

The apparatus of claim 22, wherein the controller is further operative to maintain a desired latency between local screen data written to the circular buffer and local screen data made available to the sink device from the circular buffer.

### Claim 26 (depends on 22)

The apparatus of claim 22, wherein the controller is further operative to respond to requests by interpreting a read pointer from a media server in communication with the sink device.

### Claim 27 (depends on 22)

The apparatus of claim 22, wherein the controller is further operative to interpret the read pointer by determining whether the sink device has requested to continue receiving current local screen data, stop receipt of the local screen data, pause receipt of the local screen data, receive local screen data preceding the current local screen data, or receive local screen data following the current local screen data.

### Claim 28 (depends on 22)

The apparatus of claim 22, wherein the controller is further operative to interpret the read pointer by determining a frame rate of consumption of the sink device from the read pointer, and managing writing of local screen data from the processing module to the circular buffer based on the frame rate.
