# US 12,113,694 B2 · Screen projection data transmission method and apparatus, electronic device, and storage medium

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

- Number: US 12,113,694 B2
- Document ID: US12113694B2
- Status: Granted
- Kind: B2
- Application number: 18/549,068
- Filed: 2022-09-19
- Published: 2024-05-23
- Granted: 2024-10-08
- Earliest claimed: 2021-10-25
- Assignees: Beijing Bytedance Network Technology Co., Ltd.
- Applicants: Beijing Bytedance Network Technology Co., Ltd.
- Inventors: Zhenhua Yu; Xianchao Shen
- Web page: https://patentgrep.com/patent/US12113694B2

## CPC

- H04L 43/0894: Packet rate
- H04N 21/43637: {involving a wireless protocol, e.g. Bluetooth®, RF or wireless LAN [IEEE 802.11] (arrangements for wireless networking or broadcasting of information in indoor or near-field type systems H04B10/114)}
- G06F 3/1454: {involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay}
- H04L 43/0841: {Round trip packet loss}
- H04N 21/43615: {Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals (home Audio Video Interoperability [HAVI] data switching networks H04L12/2805)}
- H04N 21/440263: {by altering the spatial resolution, e.g. for displaying on a connected PDA}
- H04N 21/440281: {by altering the temporal resolution, e.g. by frame skipping (television signal recording using magnetic recording on tape for reproducing at a rate different from the recording rate H04N5/783)}
- H04N 21/44227: {Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network (configuring of peripheral devices in general G06F9/4411; monitoring connectivity in data switched networks H04L43/0811)}
- H04N 21/4621: {Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen (arrangements for using the results of monitoring on user's side in broadcast systems H04H60/65; flow control in packet networks H04L47/10)}
- H04N 21/643: Communication protocols {(network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP], H04L65/65)}
- G09G 2350/00: Solving problems of bandwidth in display systems
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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)

## Abstract

Provided are a screen casting data transmission method and apparatus, an electronic device and a storage medium. The screen casting data transmission method includes: receiving feedback information which is sent by a target data reception terminal according to received screen casting data, and determining a data round-trip time of the screen casting data according to information content of a preset data transmission field in transmission control protocol (TCP) header information in the feedback information; estimating a network bandwidth according to a value change of the data round-trip time, and determining an adjustment strategy for a screen casting data encoding parameter based on a network bandwidth estimation result and a current data sending bandwidth; and adjusting the screen casting data encoding parameter, encoding to-be-sent screen casting data according to the adjusted encoding parameter, and performing transmission.

## Claims

### Claim 1

A screen casting data transmission method, comprising:
receiving feedback information which is sent by a target data reception terminal according to received screen casting data, and determining a data round-trip time of the screen casting data according to information content of a preset data transmission field in transmission control protocol (TCP) header information in the feedback information;
estimating a network bandwidth according to a value change of the data round-trip time, and determining an adjustment strategy for a screen casting data encoding parameter based on a network bandwidth estimation result and a current data sending bandwidth; and
adjusting the screen casting data encoding parameter according to the adjustment strategy, encoding to-be-sent screen casting data according to the adjusted screen casting data encoding parameter, and completing data transmission.

### Claim 2 (depends on 1)

The method according to claim 1, before receiving the feedback information, further comprising:
adding information content corresponding to a preset data transmission field to TCP header information of the screen casting data, and sending the screen casting data to the target data reception terminal according to a TCP.

### Claim 3 (depends on 1)

The method according to claim 1, wherein determining the data round-trip time of the screen casting data according to the information content of the preset data transmission field in the TCP header information in the feedback information comprises:
identifying a first count value and a second count value in the preset data transmission field; and
in a case where the first count value and the second count value are the same, determining the data round-trip time of the screen casting data according to a sending moment of the screen casting data and a reception moment when the feedback information is received.

### Claim 4 (depends on 1)

The method according to claim 1, before determining the adjustment strategy for the screen casting data encoding parameter, further comprising:
in a process of sending the screen casting data, timing a time for calling a data sending interface and sending the screen casting data to determine screen casting data sending duration; and
determining the current data sending bandwidth according to the screen casting data sending duration and a data volume of the screen casting data.

### Claim 5 (depends on 1)

The method according to claim 1, wherein estimating the network bandwidth according to the value change of the data round-trip time, and determining the adjustment strategy for the screen casting data encoding parameter based on the network bandwidth estimation result and the current data sending bandwidth comprises:
estimating a change degree of the network bandwidth according to a change degree of the data round-trip time; and
in a case where the current data sending bandwidth is greater than or equal to a current data encoding bitrate, matching a corresponding preset screen casting data encoding parameter adjustment strategy according to the change degree of the network bandwidth.

### Claim 6 (depends on 5)

The method according to claim 5, wherein the screen casting data encoding parameter comprises a data encoding bitrate, resolution and a frame rate, and in the preset screen casting data encoding parameter adjustment strategy, priority of adjusting the data encoding bitrate is higher than at least one of priority of adjusting the resolution or priority of adjusting the frame rate.

### Claim 7 (depends on 5)

The method according to claim 5, further comprising:
in a case where the current data sending bandwidth is less than the current data encoding bitrate, suspending encoding of the to-be-sent screen casting data until sending of encoded screen casting data in a screen casting data sending buffer queue is completed.

### Claim 8

An electronic device, comprising:
at least one processor; and
a storage apparatus configured to store at least one program;
wherein the at least one program, when executed by the at least one processor, causes the at least one processor to perform:
receiving feedback information which is sent by a target data reception terminal according to received screen casting data, and determining a data round-trip time of the screen casting data according to information content of a preset data transmission field in transmission control protocol (TCP) header information in the feedback information;
estimating a network bandwidth according to a value change of the data round-trip time, and determining an adjustment strategy for a screen casting data encoding parameter based on a network bandwidth estimation result and a current data sending bandwidth; and
adjusting the screen casting data encoding parameter according to the adjustment strategy, encoding to-be-sent screen casting data according to the adjusted screen casting data encoding parameter and completing data transmission.

### Claim 9

A non-transitory storage medium comprising a computer-executable instruction, wherein the computer-executable instruction, when executed by a computer processor, is configured to execute:
receiving feedback information which is sent by a target data reception terminal according to received screen casting data, and determining a data round-trip time of the screen casting data according to information content of a preset data transmission field in transmission control protocol (TCP) header information in the feedback information;
estimating a network bandwidth according to a value change of the data round-trip time, and determining an adjustment strategy for a screen casting data encoding parameter based on a network bandwidth estimation result and a current data sending bandwidth; and
adjusting the screen casting data encoding parameter according to the adjustment strategy, encoding to-be-sent screen casting data according to the adjusted screen casting data encoding parameter and completing data transmission.

### Claim 10 (depends on 2)

The method according to claim 2, wherein determining the data round-trip time of the screen casting data according to the information content of the preset data transmission field in the TCP header information in the feedback information comprises:
identifying a first count value and a second count value in the preset data transmission field; and
in a case where the first count value and the second count value are the same, determining the data round-trip time of the screen casting data according to a sending moment of the screen casting data and a reception moment when the feedback information is received.

### Claim 11 (depends on 8)

The electronic device according to claim 8, wherein the at least one program, when executed by the at least one processor, causes the at least one processor to, before performing receiving the feedback information, further perform:
adding information content corresponding to a preset data transmission field to TCP header information of the screen casting data, and sending the screen casting data to the target data reception terminal according to a TCP.

### Claim 12 (depends on 8)

The electronic device according to claim 8, wherein the at least one program, when executed by the at least one processor, causes the at least one processor to perform determining the data round-trip time of the screen casting data according to the information content of the preset data transmission field in the TCP header information in the feedback information in the following way:
identifying a first count value and a second count value in the preset data transmission field; and
in a case where the first count value and the second count value are the same, determining the data round-trip time of the screen casting data according to a sending moment of the screen casting data and a reception moment when the feedback information is received.

### Claim 13 (depends on 8)

The electronic device according to claim 8, wherein the at least one program, when executed by the at least one processor, causes the at least one processor to, before performing determining the adjustment strategy for the screen casting data encoding parameter, further perform:
in a process of sending the screen casting data, timing a time for calling a data sending interface and sending the screen casting data to determine screen casting data sending duration; and
determining the current data sending bandwidth according to the screen casting data sending duration and a data volume of the screen casting data.

### Claim 14 (depends on 8)

The electronic device according to claim 8, wherein the at least one program, when executed by the at least one processor, causes the at least one processor to perform estimating the network bandwidth according to the value change of the data round-trip time, and determining the adjustment strategy for the screen casting data encoding parameter based on the network bandwidth estimation result and the current data sending bandwidth in the following way:
estimating a change degree of the network bandwidth according to a change degree of the data round-trip time; and
in a case where the current data sending bandwidth is greater than or equal to a current data encoding bitrate, matching a corresponding preset screen casting data encoding parameter adjustment strategy according to the change degree of the network bandwidth.

### Claim 15 (depends on 14)

The electronic device according to claim 14, wherein the screen casting data encoding parameter comprises a data encoding bitrate, resolution and a frame rate, and in the preset screen casting data encoding parameter adjustment strategy, priority of adjusting the data encoding bitrate is higher than at least one of priority of adjusting the resolution or priority of adjusting the frame rate.

### Claim 16 (depends on 14)

The electronic device according to claim 14, wherein the at least one program, when executed by the at least one processor, causes the at least one processor to further perform:
in a case where the current data sending bandwidth is less than the current data encoding bitrate, suspending encoding of the to-be-sent screen casting data until sending of encoded screen casting data in a screen casting data sending buffer queue is completed.

### Claim 17 (depends on 9)

The non-transitory storage medium according to claim 9, wherein the computer-executable instruction, when executed by the computer processor, is configured to, before executing receiving the feedback information, further execute:
adding information content corresponding to a preset data transmission field to TCP header information of the screen casting data, and sending the screen casting data to the target data reception terminal according to a TCP.

### Claim 18 (depends on 9)

The non-transitory storage medium according to claim 9, wherein the computer-executable instruction, when executed by the computer processor, is configured to execute determining the data round-trip time of the screen casting data according to the information content of the preset data transmission field in the TCP header information in the feedback information in the following way:
identifying a first count value and a second count value in the preset data transmission field; and
in a case where the first count value and the second count value are the same, determining the data round-trip time of the screen casting data according to a sending moment of the screen casting data and a reception moment when the feedback information is received.

### Claim 19 (depends on 9)

The non-transitory storage medium according to claim 9, wherein the computer-executable instruction, when executed by the computer processor, is configured to, before executing determining the adjustment strategy for the screen casting data encoding parameter, further execute:
in a process of sending the screen casting data, timing a time for calling a data sending interface and sending the screen casting data to determine screen casting data sending duration; and
determining the current data sending bandwidth according to the screen casting data sending duration and a data volume of the screen casting data.

### Claim 20 (depends on 9)

The non-transitory storage medium according to claim 9, wherein the computer-executable instruction, when executed by the computer processor, is configured to execute estimating the network bandwidth according to the value change of the data round-trip time, and determining the adjustment strategy for the screen casting data encoding parameter based on the network bandwidth estimation result and the current data sending bandwidth in the following way:
estimating a change degree of the network bandwidth according to a change degree of the data round-trip time; and
in a case where the current data sending bandwidth is greater than or equal to a current data encoding bitrate, matching a corresponding preset screen casting data encoding parameter adjustment strategy according to the change degree of the network bandwidth.
