IP Library Granted Patent US 10,560,700
Granted Patent B1
US 10,560,700 · App. 16/419,227 · Granted Feb 11, 2020

Adjusting encoding frame size based on available network bandwidth

Inventor: Charles F. Good (Cincinnati, OH)
Assignee: Wowza Media Systems, LLC
H04N19/152H04N19/184H04N19/196
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 10,560,700
App. No.
16/419,227
Granted
Feb 11, 2020
Kind
B1
Abstract

A method includes reducing, at an encoder, an encoding bit rate of video data in response to a first indication of available bandwidth for transmission of the encoded video data. The method includes reducing an encoding frame size of the video data in response to the encoding bit rate falling below a first threshold. The method also includes increasing the encoding bit rate in response to a second indication of the available bandwidth. The method further includes increasing the encoding frame size in response to the encoding bit rate rising above a second threshold. The second threshold is greater than the first threshold.

Claims (38)

1. A method of encoding video data, the method comprising:

performing a first operation, at an encoder, to increase an encoding bit rate of video data in response to a first indication of available bandwidth for transmission of encoded video data;

increasing an encoding frame size of the video data in response to the encoding bit rate rising above a first threshold;

performing a second operation to increase the encoding bit rate in response to a second indication of the available bandwidth; and

increasing the encoding frame size in response to the encoding bit rate rising above a second threshold, the second threshold greater than the first threshold, wherein one or both of the first threshold and the second threshold is based on a window size.

2. The method of claim 1 , wherein the second operation is performed after performing the first operation, and wherein the encoding frame size is increased from a first frame size to a third frame size in response to the encoding bit rate rising above the first threshold.

3. The method of claim 1 , wherein the first threshold is based further on a bit rate threshold, and further comprising reducing the encoding bit rate in response to a third indication of the available bandwidth.

4. The method of claim 3 , further comprising reducing the encoding frame size in response to the encoding bit rate falling below a third threshold, the third threshold less than the first threshold.

5. The method of claim 4 , wherein the encoding frame size is reduced from a third frame size to a first frame size in response to the encoding bit rate falling below the third threshold.

6. The method of claim 4 , wherein the third threshold and the first threshold are based on a bit rate threshold and the window size, and wherein the bit rate threshold corresponds to a midpoint between the third threshold and the first threshold.

7. The method of claim 6 , wherein the window size corresponds to a difference between the first threshold and the third threshold.

8. The method of claim 4 , wherein the third indication of the available bandwidth corresponds to an amount of encoded data in a write buffer exceeding a first backlog threshold.

9. The method of claim 8 , wherein the first indication of available bandwidth corresponds to the amount of encoded data in the write buffer falling below a second backlog threshold.

10. The method of claim 1 , further comprising transmitting a stream of encoded data to a remote device over a network connection.

11. A device comprising an encoder, the encoder configured to:

perform a first increase of an encoding bit rate of video data in response to a first indication of available bandwidth for transmission of encoded video data;

increase an encoding frame size of the video data in response to the encoding bit rate rising above a first threshold;

perform a second increase of the encoding bit rate in response to a second indication of the available bandwidth; and

increase the encoding frame size in response to the encoding bit rate rising above a second threshold, the second threshold greater than the first threshold, wherein one or both of the first threshold and the second threshold is based on the window size.

12. The device of claim 11 , further comprising a write buffer coupled to the encoder, wherein the first indication of the available bandwidth corresponds to an amount of encoded data in the write buffer.

13. The device of claim 12 , wherein the encoder is configured to perform the second increase after performing the first increase, and further comprising a network interface configured to transmit a stream of the encoded data from the write buffer to a remote device.

14. The device of claim 11 , wherein the encoder includes a frame size selector configured to select a frame size based on a comparison of the encoding bit rate to one or more bit rate thresholds.

15. The device of claim 14 , wherein the encoder further:

is configured to reduce the encoding bit rate in response to a third indication of the available bandwidth and to reduce the encoding frame size in response to the encoding bit rate falling below a third threshold that is less than the first threshold; and

includes a bit rate threshold generator configured to determine the third threshold and the first threshold based on a bit rate threshold and window size.

16. A computer-readable storage device storing instructions that, when executed by a processor, cause the processor to initiate or perform operations comprising:

performing a first increase, at an encoder, of an encoding bit rate of video data in response to a first indication of available bandwidth for transmission of encoded video data;

increasing an encoding frame size of the video data in response to the encoding bit rate rising above a first threshold;

performing a second increase of the encoding bit rate in response to a second indication of the available bandwidth; and

increasing the encoding frame size in response to the encoding bit rate rising above a second threshold, the second threshold greater than the first threshold, wherein one or both of the first threshold and the second threshold is based on a window size.

17. The computer-readable storage device of claim 16 , wherein execution of the instructions causes the processor to perform the second increase after performing the first increase, and wherein the operations include transmitting a stream of encoded data to a remote device over a network connection.

18. The computer-readable storage device of claim 16 , wherein the instructions when executed further cause the processor to:

reduce the encoding frame size from a first frame size to a second frame size in response to the encoding bit rate falling below a third threshold; and

increase the encoding frame size from the second frame size to the first frame size in response to the encoding bit rate rising above the first threshold.

19. The computer-readable storage device of claim 16 , wherein the operations further include:

reducing the encoding bit rate in response to a third indication of the available bandwidth; and

reducing the encoding frame size in response to the encoding bit rate falling below a third threshold, the third threshold less than the first threshold.

20. The computer-readable storage device of claim 19 , wherein the third indication of the available bandwidth corresponds to an amount of encoded data in a write buffer exceeding a first backlog threshold.

Assignments (2)
SECURITY INTEREST Recorded May 28, 2021
From: WOWZA MEDIA SYSTEMS, LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 056422/0263 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2019
From: GOOD, CHARLES F.
To: WOWZA MEDIA SYSTEMS, LLC
Reel/Frame 049252/0513 →
Continuity (1)
Continuation 16037786 · Jul 17, 2018