Adaptation logic for varying a bitrate
AssigneeBitmovin, Inc.
InventorsChristopher Mueller, Stefan Lederer, Christian Timmerer
Life of this patent
Estimating the term…
Abstract
A reduction in bitrate oscillation penalties is achieved by determining an oscillation measure measuring a balance of bitrate increase and bitrate decrease of the varied bitrate at which recently retrieved segments of the sequence of segments have been retrieved and setting the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation measure.
Claims21
Apparatus for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the apparatus comprising:
- an oscillation value determiner configured to evaluate bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to provide an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- and
- a setter configured to set the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- wherein the setter comprises a presetter and a compensator,
- wherein the presetter preliminarily sets the bitrate at which the current segment is to be retrieved using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- wherein the presetter is configured to compute a quality level restriction ξ for the current segment based on the buffer fill status,
- wherein the presetter is configured to restrict, in preliminarily setting the bitrate at which the current segment is to be retrieved, a set of available bitrates to ones out of this set, being lower than ξ,
- wherein the presetter is configured to compute the quality level restriction ξ according to either one of
- ξ(si)=a+δi×b
- ξ(si)=a×eδi×b
- ξ(si)=a×logb(δi×c)
- where iε[1,N] represents the segment index of the current segment, δi a current value of the buffer fill status, and a,b,c are constants,
- wherein the compensator, in a case that the oscillation value is below a predetermined oscillation threshold, leaves the preliminarily set bitrate unamended so as to become the bitrate set by the setter,
- wherein the compensator, in a case that the oscillation value exceeds the oscillation threshold, sets the bitrate at which the current and subsequent segments of the sequence of segments are to be retrieved using a second manner running sequentially through a low bitrate mode and a high bitrate mode, and
- wherein the compensator, in the low bitrate mode, freezes the bitrate to a first bitrate and, in the high bitrate mode, freezes the bitrate to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner,
- wherein the apparatus is implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
Apparatus for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the apparatus comprising:
- an oscillation value determiner configured to evaluate bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to provide an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- and
- a setter configured to set the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- wherein the setter comprises a presetter and a compensator,
- wherein the presetter preliminarily sets the bitrate at which the current segment is to be retrieved using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- wherein the presetter is configured to compute a worst case buffer value δwcb indicating a minimum buffer fill status which shall be available prior to a reception of the current segment i based on
- δ
- wcb
- =
- θ
- i
- ×
- t
- i
- min
- where min is a value representing a minimum throughput, ti is the time duration of the current segment and θ is an available bitrate for the current segment,
- wherein the presetter is configured to restrict, in preliminarily setting the bitrate at which the current segment is to be retrieved, restrict a set of available bitrates to ones out of this set, for which δwcb is below the buffer fill state,
- wherein the compensator, in a case that the oscillation value is below a predetermined oscillation threshold, leaves the preliminarily set bitrate unamended so as to become the bitrate set by the setter,
- wherein the compensator, in a case that the oscillation value exceeds the oscillation threshold, sets the bitrate at which the current and subsequent segments of the sequence of segments are to be retrieved using a second manner running sequentially through a low bitrate mode and a high bitrate mode, and
- wherein the compensator, in the low bitrate mode, freezes the bitrate to a first bitrate and, in the high bitrate mode, freezes the bitrate to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner,
- wherein the apparatus is implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
Apparatus for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the apparatus comprising:
- an oscillation value determiner configured to evaluate bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to provide an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- and
- a setter configured to set the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- wherein the oscillation value determiner is configured to determine the oscillation value by computing a value for a deviation between a weighted sum of a value of a bitrate change strength at bitrate change events of the varied bitrate at which the recently retrieved segments of the sequence of segments have been retrieved, at immediately following segments of the sequence of segments, without taking the bitrate change direction into account, and the weighted sum of the value of the bitrate change strength at the bitrate change events of the varied bit rate at the immediately following segments of the sequence of segments, with taking the bitrate change direction into account,
- wherein the setter comprises a presetter and a compensator,
- wherein the presetter preliminarily sets the bitrate at which the current segment is to be retrieved using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- wherein the compensator, in a case that the oscillation value is below a predetermined oscillation threshold, leaves the preliminarily set bitrate unamended so as to become the bitrate set by the setter,
- wherein the compensator, in a case that the oscillation value exceeds the oscillation threshold, sets the bitrate at which the current and subsequent segments of the sequence of segments are to be retrieved using a second manner running sequentially through a low bitrate mode and a high bitrate mode, and
- wherein the compensator, in the low bitrate mode, freezes the bitrate to a first bitrate and, in the high bitrate mode, freezes the bitrate to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner,
- wherein the apparatus is implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
Apparatus for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the apparatus comprising:
- an oscillation value determiner configured to evaluate bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to provide an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- and
- a setter configured to set the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- wherein the oscillation value determiner is configured to compute, as the oscillation value, ρi,j according to
- A
- =
- ∑
- k
- =
- i
- j
-
- Γ
- k
- ×
- t
- k
- β
- ×
-
- θ
- k
- -
- μ
- i
- ,
- j
-
- α
- /
- ∑
- K
- =
- i
- j
-
- t
- k
- B
- =
- ∑
- k
- =
- i
- j
-
- Φ
- k
- ×
- t
- k
- β
- ×
-
- θ
- k
- -
- μ
- i
- ,
- j
-
- α
- /
- ∑
- K
- =
- i
- j
-
- t
- k
- ρ
- i
- ,
- j
- =
- {
- 1
- -
- B
- /
- A
- if
-
-
- A
- >
- 0
- 0
- otherwise
-
-
- ϕ
- k
- =
- {
- 1
- if
-
-
- θ
- k
- >
- θ
- k
- -
- 1
- -
- 1
- if
-
-
- θ
- k
- <
- θ
- k
- -
- 1
- 0
- otherwise
-
-
- Γ
- k
- =
- {
- 1
- if
-
-
-
- Δ
-
- =
- 1
- 1
- if
-
-
-
- Δ
-
- >
- 1
- ,
- θ
- k
- ≠
- θ
- k
- -
- 1
- 0
- otherwise
-
-
- Δ
- =
- {
- (
- θ
- i
- ,
- t
- i
- )
- ,
- (
- θ
- i
- +
- 1
- ,
- t
- i
- +
- 1
- )
- ,
- …
-
- ,
- (
- θ
- j
- -
- 1
- ,
- t
- j
- -
- 1
- )
- ,
- (
- θ
- j
- ,
- t
- j
- )
- }
-
-
- with
-
-
- i
- ,
- j
- ∈
- ℕ
- wherein indices i, j, k denote the i-th, j-th and k-th segments of the sequence of segments, lying within a predetermined sliding time window preceding the current segment, each segment i having length ti and being retrieved at bitrate θk, and with μi,j being a measure for a central tendency of the bitrate at which the k-th segments between the i-th and j-th segments, both inclusively, have been retrieved;
- wherein the setter comprises a presetter and a compensator,
- wherein the presetter preliminarily sets the bitrate at which the current segment is to be retrieved using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- wherein the compensator, in a case that the oscillation value is below a predetermined oscillation threshold, leaves the preliminarily set bitrate unamended so as to become the bitrate set by the setter,
- wherein the compensator, in a case that the oscillation value exceeds the oscillation threshold, sets the bitrate at which the current and subsequent segments of the sequence of segments are to be retrieved using a second manner running sequentially through a low bitrate mode and a high bitrate mode, and
- wherein the compensator, in the low bitrate mode, freezes the bitrate to a first bitrate and, in the high bitrate mode, freezes the bitrate to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner,
- wherein the apparatus is implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
Retrieving method for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the retrieving method comprising:
- evaluating bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to determine an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- setting the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- setting the bitrate at which the current segment of the sequence of segments is to be retrieved, in a case that the oscillation value is below a predetermined oscillation threshold, using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server, computing for the first manner a quality level restriction for the current segment based on the buffer fill status,
- restricting for the first manner a set of available bitrates to ones out of this set, being lower than ξ,
- wherein the quality level restriction ξ is computed according to either one of
- ξ(si)=a+δi×b
- ξ(si)=a×eδi×b
- ξ(si)=a×logb(δi×c)
- where iε[1,N] represents the segment index of the current segment, δi a current value of the buffer fill status, and a,b,c are constants, and
- setting the bitrate at which the current segment and subsequent segments of the sequence of segments are to be retrieved, in a case that the oscillation value exceeds the oscillation threshold, using a second manner running sequentially through a low bitrate mode and a high bitrate mode,
- wherein, in the low bitrate mode, the bitrate is frozen to a first bitrate and, in the high bitrate mode, the bitrate is frozen to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner.
Retrieving method for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the retrieving method comprising:
- evaluating bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to determine an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- and
- setting the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- setting the bitrate at which the current segment of the sequence of segments is to be retrieved, in a case that the oscillation value is below a predetermined oscillation threshold, using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- computing for the first manner a worst case buffer value δwcb indicating a minimum buffer fill status which shall be available prior to a reception of the current segment i based on
- δ
- wcb
- =
- θ
- i
- ×
- t
- i
- min
- where min is a value representing a minimum throughput, ti is the time duration of the current segment and θ is an available bitrate for the current segment,
- restricting for the first manner a set of available bitrates to ones out of this set, for which δwcb is below the buffer fill state, and
- setting the bitrate at which the current segment and subsequent segments of the sequence of segments are to be retrieved, in a case that the oscillation value exceeds the oscillation threshold, using a second manner running sequentially through a low bitrate mode and a high bitrate mode,
- wherein, in the low bitrate mode, the bitrate is frozen to a first bitrate and, in the high bitrate mode, the bitrate is frozen to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner.
Retrieving method for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the retrieving method comprising:
- evaluating bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to determine an oscillation value indicating a balance of bitrate increase and bitrate decrease of the bitrate changes;
- wherein the oscillation value is determined by computing a value for a deviation between a weighted sum of a value of a bitrate change strength at bitrate change events of the varied bitrate at which the recently retrieved segments of the sequence of segments have been retrieved, at immediately following segments of the sequence of segments, without taking the bitrate change direction into account, and the weighted sum of the value of the bitrate change strength at the bitrate change events of the varied bit rate at the immediately following segments of the sequence of segments, with taking the bitrate change direction into account,
- setting the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- setting the bitrate at which the current segment of the sequence of segments is to be retrieved, in a case that the oscillation value is below a predetermined oscillation threshold, using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- setting the bitrate at which the current segment and subsequent segments of the sequence of segments are to be retrieved, in a case that the oscillation value exceeds the oscillation threshold, using a second manner running sequentially through a low bitrate mode and a high bitrate mode,
- wherein, in the low bitrate mode, the bitrate is frozen to a first bitrate and, in the high bitrate mode, the bitrate is frozen to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner.
Retrieving method for retrieving segments of a sequence of segments of an information content from a server so as to be reproduced by a client with varying bitrate, the retrieving method comprising:
- evaluating bitrate changes at which recently retrieved segments of the sequence of segments have been retrieved in order to determine an oscillation value indicating-a balance of bitrate increase and bitrate decrease of the bitrate changes;
- wherein the oscillation value ρi,j is determined according to
- A
- =
- ∑
- k
- =
- i
- j
-
- Γ
- k
- ×
- t
- k
- β
- ×
-
- θ
- k
- -
- μ
- i
- ,
- j
-
- α
- /
- ∑
- K
- =
- i
- j
-
- t
- k
- B
- =
- ∑
- k
- =
- i
- j
-
- Φ
- k
- ×
- t
- k
- β
- ×
-
- θ
- k
- -
- μ
- i
- ,
- j
-
- α
- /
- ∑
- K
- =
- i
- j
-
- t
- k
- ρ
- i
- ,
- j
- =
- {
- 1
- -
- B
- /
- A
- if
-
-
- A
- >
- 0
- 0
- otherwise
-
-
- ϕ
- k
- =
- {
- 1
- if
-
-
- θ
- k
- >
- θ
- k
- -
- 1
- -
- 1
- if
-
-
- θ
- k
- <
- θ
- k
- -
- 1
- 0
- otherwise
-
-
- Γ
- k
- =
- {
- 1
- if
-
-
-
- Δ
-
- =
- 1
- 1
- if
-
-
-
- Δ
-
- >
- 1
- ,
- θ
- k
- ≠
- θ
- k
- -
- 1
- 0
- otherwise
-
-
- Δ
- =
- {
- (
- θ
- i
- ,
- t
- i
- )
- ,
- (
- θ
- i
- +
- 1
- ,
- t
- i
- +
- 1
- )
- ,
- …
-
- ,
- (
- θ
- j
- -
- 1
- ,
- t
- j
- -
- 1
- )
- ,
- (
- θ
- j
- ,
- t
- j
- )
- }
-
-
- with
-
-
- i
- ,
- j
- ∈
- ℕ
- wherein indices i, j, k denote the i-th, j-th and k-th segments of the sequence of segments, lying within a predetermined sliding time window preceding the current segment, each segment i having length ti and being retrieved at bitrate θk, and with μi,j being a measure for a central tendency of the bitrate at which the k-th segments between the i-th and j-th segments, both inclusively, have been retrieved;
- and
- setting the bitrate at which a current segment of the sequence of segments is to be retrieved depending on the oscillation value and to be buffered in a buffer of the client,
- setting the bitrate at which the current segment of the sequence of segments is to be retrieved, in a case that the oscillation value is below a predetermined oscillation threshold, using a first manner depending on at least one of a buffer fill status of the buffer buffering the sequence of segments and a retrieval throughput at which the sequence of segments are retrieved from the server,
- setting the bitrate at which the current segment and subsequent segments of the sequence of segments are to be retrieved, in a case that the oscillation value exceeds the oscillation threshold, using a second manner running sequentially through a low bitrate mode and a high bitrate mode,
- wherein, in the low bitrate mode, the bitrate is frozen to a first bitrate and, in the high bitrate mode, the bitrate is frozen to a second bitrate higher than the first bitrate, thus, leading to less variations of the bitrate than compared to the first manner.
Dependencies are inferred from the claim text.