IP Library Granted Patent US 10,356,452
Granted Patent B2
US 10,356,452 · App. 15/627,739 · Granted Jul 16, 2019

Ensuring a target average bit rate in a multiplexed environment

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,356,452
App. No.
15/627,739
Granted
Jul 16, 2019
Kind
B2
Abstract

Ensuring a long-term average bitrate for channels of a statistical multiplexing meets or exceeds a specified limit. An arbitrary target average bitrate for each of a set of channels of the statistical multiplexer is received. The long-term average bit rate for each channel of the statistical multiplexer is tracked. For each allocation cycle of the statistical multiplexer, bitrates to each encoder are assigned by splitting a bit allocation pool of the statistical multiplexer into a first portion and a second portion. The first portion is allocated to maximize video quality and the second portion is allocated to minimize a gap between the set of channels that are below their arbitrary target average bitrate based on the long-term average bit rate for the set of channels. Thereafter, the bit rates allocated from the first and second portions are distributed to the encoders encoding/transcoding the set of channels.

Claims (51)

1. A non-transitory computer-readable storage medium that stores one or more sequences of instructions for ensuring a long-term average bitrate for channels of a statistical multiplexing does not exceed a specified limit, which when executed by one or more processors, cause:

receiving an arbitrary target average bitrate for each channel of a set of channels of the statistical multiplexer;

tracking the long-term average bit rate for each of the set of channels of the statistical multiplexer;

for each allocation cycle of the statistical multiplexer, assigning bitrates to one or more encoders processing the set of channels of the statistical multiplexer by performing:

splitting a bit allocation pool of said statistical multiplexer into a first portion and a second portion, wherein the first portion is distributed amongst the set of channels to maximize video quality of the set of channels, and wherein said second portion is distributed amongst the set of channels to minimize a gap between the set of channels that are below their arbitrary target average bitrate based on the long-term average bit rate for the set of channels,

allocating available bit rates from said first portion to said one or more encoders processing said set of channels of said statistical multiplexer, and

allocating available bit rates from said second portion to said one or more encoders processing said set of channels of said statistical multiplexer; and

wherein over a course of allocation cycles of the statistical multiplexer, assigning bitrates to each of the set of channels of the statistical multiplexer comprises:

initially splitting the bit allocation pool of said statistical multiplexer such that a greater share of the bit allocation pool is assigned to the first portion and a lesser share of the bit allocation pool is assigned to the second portion; and

upon determining that, for a particular threshold of time, the long-term average bit rate for a particular channel is less than the target average bit rate for said particular channel, splitting the bit allocation pool of said statistical multiplexer such that a greater share of the bit allocation pool is assigned to the second portion and a lesser share of the bit allocation pool is assigned to the first portion.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the proportion of how said bit allocation pool is split between said first portion and said second portion varies from one allocation cycle to the next allocation cycle.

3. The non-transitory computer-readable storage medium of claim 1 , wherein execution of the one or more sequences of instructions further cause:

assigning a particular arbitrary target average bit rate to a particular program based on a remaining bit rate that remains after all of a set of arbitrary target average bit rates provided by a user are assigned to other programs besides the particular program.

4. The non-transitory computer-readable storage medium of claim 1 , wherein allocating available bit rates from said second portion to said one or more encoders is performed such that priority is assigned to a particular encoder processing a particular channel having a long-term average bit rate that has fallen furthest behind from the arbitrary target average bitrate associated with the particular channel.

5. The non-transitory computer-readable storage medium of claim 1 , wherein

tracking the long-term average bit rate for each of the set of channels is performed by applying exponential smoothing or running-average approximation to bitrate allocations to each channel of the set of channels.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the duration of time to reach the average bit rate depends on the complexity of the content in the set of channels and on a convergence aggressiveness parameter.

7. An apparatus for ensuring a long-term average bitrate for channels of a statistical multiplexing does not exceed a specified limit, comprising:

one or more processors; and

one or more non-transitory computer-readable storage mediums storing one or more sequences of instructions, which when executed, cause:

receiving an arbitrary target average bitrate for each channel of a set of channels of the statistical multiplexer;

tracking the long-term average bit rate for each of the set of channels of the statistical multiplexer; and

for each allocation cycle of the statistical multiplexer, assigning bitrates to one or more encoders processing the set of channels of the statistical multiplexer by performing:

splitting a bit allocation pool of said statistical multiplexer into a first portion and a second portion, wherein the first portion is distributed amongst the set of channels to maximize video quality of the set of channels, and wherein said second portion is distributed amongst the set of channels to minimize a gap between the set of channels that are below their arbitrary target average bitrate based on the long-term average bit rate for the set of channels,

allocating available bit rates from said first portion to said one or more encoders processing said set of channels of said statistical multiplexer, and

allocating available bit rates from said second portion to said one or more encoders processing said set of channels of said statistical multiplexer; and

wherein over a course of allocation cycles of the statistical multiplexer, assigning bitrates to each of the set of channels of the statistical multiplexer comprises:

initially splitting the bit allocation pool of said statistical multiplexer such that a greater share of the bit allocation pool is assigned to the first portion and a lesser share of the bit allocation pool is assigned to the second portion; and

upon determining that, for a particular threshold of time, the long-term average bit rate for a particular channel is less than the target average bit rate for said particular channel, splitting the bit allocation pool of said statistical multiplexer such that a greater share of the bit allocation pool is assigned to the second portion and a lesser share of the bit allocation pool is assigned to the first portion.

8. The apparatus of claim 7 , wherein the proportion of how said bit allocation pool is split between said first portion and said second portion varies from one allocation cycle to the next allocation cycle.

9. The apparatus of claim 7 , wherein execution of the one or more sequences of instructions further cause:

assigning a particular arbitrary target average bit rate to a particular program based on a remaining bit rate that remains after all of a set of arbitrary target average bit rates provided by a user are assigned to other programs besides the particular program.

10. The apparatus of claim 7 , wherein allocating available bit rates from said second portion to said one or more encoders is performed such that priority is assigned to a particular encoder processing a particular channel having a long-term average bit rate that has fallen furthest behind from the arbitrary target average bitrate associated with the particular channel.

11. The apparatus of claim 7 , wherein tracking the long-term average bit rate for each of the set of channels is performed by applying exponential smoothing or running-average approximation to bitrate allocations to each channel of the set of channels.

12. The apparatus of claim 7 , wherein the duration of time to reach the average bit rate depends on the complexity of the content in the set of channels and on a convergence aggressiveness parameter.

13. A method for ensuring a long-term average bitrate for channels of a statistical multiplexing does not exceed a specified limit, comprising:

receiving an arbitrary target average bitrate for each channel of a set of channels of the statistical multiplexer;

tracking the long-term average bit rate for each of the set of channels of the statistical multiplexer; and

for each allocation cycle of the statistical multiplexer, assigning bitrates to one or more encoders processing the set of channels of the statistical multiplexer by performing:

splitting a bit allocation pool of said statistical multiplexer into a first portion and a second portion, wherein the first portion is distributed amongst the set of channels to maximize video quality of the set of channels, and wherein said second portion is distributed amongst the set of channels to minimize a gap between the set of channels that are below their arbitrary target average bitrate based on the long-term average bit rate for the set of channels,

allocating available bit rates from said first portion to said one or more encoders processing said set of channels of said statistical multiplexer, and

allocating available bit rates from said second portion to said one or more encoders processing said set of channels of said statistical multiplexer; and

wherein over a course of allocation cycles of the statistical multiplexer, assigning bitrates to each of the set of channels of the statistical multiplexer comprises:

initially splitting the bit allocation pool of said statistical multiplexer such that a greater share of the bit allocation pool is assigned to the first portion and a lesser share of the bit allocation pool is assigned to the second portion; and

upon determining that, for a particular threshold of time, the long-term average bit rate for a particular channel is less than the target average bit rate for said particular channel, splitting the bit allocation pool of said statistical multiplexer such that a greater share of the bit allocation pool is assigned to the second portion and a lesser share of the bit allocation pool is assigned to the first portion.

14. The method of claim 13 , wherein the proportion of how said bit allocation pool is split between said first portion and said second portion varies from one allocation cycle to the next allocation cycle.

15. The method of claim 13 , further comprising:

assigning a particular arbitrary target average bit rate to a particular program based on a remaining bit rate that remains after all of a set of arbitrary target average bit rates provided by a user are assigned to other programs besides the particular program.

16. The method of claim 13 , wherein allocating available bit rates from said second portion to said one or more encoders is performed such that priority is assigned to a particular encoder processing a particular channel having a long-term average bit rate that has fallen furthest behind from the arbitrary target average bitrate associated with the particular channel.

17. The method of claim 13 , wherein tracking the long-term average bit rate for each of the set of channels is performed by applying exponential smoothing or running-average approximation to bitrate allocations to each channel of the set of channels.

18. The method of claim 13 , wherein the duration of time to reach the average bit rate depends on the complexity of the content in the set of channels and on a convergence aggressiveness parameter.

Assignments (4)
SECURITY INTEREST Recorded Dec 21, 2023
From: HARMONIC INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066090/0906 →
RELEASE OF SECURITY INTEREST Recorded Dec 21, 2023
From: JPMORGAN CHASE BANK, N.A.
To: HARMONIC INC.
Reel/Frame 066092/0633 →
SECURITY INTEREST Recorded Dec 20, 2019
From: HARMONIC INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 051395/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2017
From: STAVI, YOED; NITZAN, RAZ
To: HARMONIC, INC.
Reel/Frame 042757/0205 →