Encoding an audio stream
Abstract
An audio stream is encoded for transmission to a receiving device via a communications channel. The to-be transmitted audio stream is received at an audio encoder executed on a processor. The processor has an amount of available processing resources. An available bandwidth of the communications channel is determined. Based on the determined bandwidth, a portion of the available processing resources is allocated to the audio encoder. The allocated portion is greater if the determined bandwidth is below a bandwidth threshold. The audio encoder encodes the audio stream using the allocated portion of processing resources, and transmits the encoded audio stream to the receiving device via the communications channel.
Claims
exact text as granted — not AI-modified1 - 20 . (canceled)
21 . A method of encoding audio streams comprising:
for each of a plurality of audio encoders executed on one or more processors, the one or more processors having an amount of available processing resources:
receiving, at the audio encoder, an audio stream to be transmitted to a receiving device via a communications channel;
determining an available bandwidth of the communications channel;
comparing the determined bandwidth to a bandwidth threshold;
allocating a portion of the available processing resources to the audio encoder based at least in part on the determined bandwidth of the communications channel, wherein the allocated portion of the available processing resources is greater if the determined bandwidth is below the bandwidth threshold than if the determined bandwidth is above the bandwidth threshold;
encoding, by the audio encoder, the audio stream using the allocated portion of processing resources; and
transmitting the encoded audio stream to the receiving device via the communications channel; and
wherein the allocating is performed for each of the plurality of audio encoders to allocate to each of the plurality of audio encoders a respective portion of the amount of available processing resources used to encode the audio stream for transmission to the receiving device via the communications channel.
22 . The method of claim 21 , further comprising:
identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths among the plurality of audio encoders, wherein available processing resources are prioritized for allocation to the subset of the plurality of audio encoders.
23 . The method of claim 21 , further comprising:
identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths, wherein a greater portion of the available processing resources is allocated to each of the identified audio encoders than is allocated to any of the other audio encoders.
24 . The method of claim 21 , wherein the allocating is performed for each of the plurality of audio encoders, comprising:
in response to the available processing resources decreasing to an availability threshold, identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths, wherein a greater portion of the available processing resources is allocated to each of the identified audio encoders than is allocated to any of the other audio encoders.
25 . The method of claim 21 , wherein the allocating step is performed by selecting based on the determined bandwidth one of a plurality of encoding modes of the audio encoder having different complexities, and configuring the encoder to operate in the selected encoding mode to encode the audio stream;
wherein a higher complexity one of the encoding modes requiring the greater portion of the available processing resources is selected if the determined bandwidth is below the bandwidth threshold.
26 . The method of claim 25 , wherein:
in response to an increase in the determined bandwidth occurring after said allocation, the allocated portion of the processing resources is reduced; and the portion of the available processing resources allocated to the audio encoder is reduced by switching, in response to the increase in the determined bandwidth, the audio encoder to a lower complexity one of the encoding modes requiring only the reduced portion of the available processing resources.
27 . The method of claim 21 , wherein in response to an increase in the determined bandwidth occurring after said allocation, the allocated portion of the processing resources is reduced.
28 . The method of claim 21 , wherein the portion of the processing resources allocated to the audio encoder is changed at a rate no greater than a maximum allocation change rate that is independent of the available bandwidth.
29 . The method of claim 21 , further comprising, for each of the plurality of audio encoders executed on the one or more processors:
determining a measure of processor load that corresponds to the amount of available processing resources; wherein allocating the portion of the available processing resources to the audio encoder is also based on the determined processor load.
30 . The method of claim 21 , wherein the plurality of audio encoders encode a plurality of audio streams that are part of a same conference call.
31 . A computer system comprising:
a network interface for communicating with receiving devices via communications channels; one or more processors having an amount of available processing resources, the one or more processors configured to perform operations for each of a plurality of audio encoders, the operations comprising:
receiving, at the audio encoder, an audio stream to be transmitted to a receiving device via a communications channel;
determining an available bandwidth of the communications channel;
comparing the determined bandwidth to a bandwidth threshold;
allocating a portion of the available processing resources to the audio encoder based at least in part on the determined bandwidth of the communications channel, wherein the allocated portion of the available processing resources is greater if the determined bandwidth is below the bandwidth threshold than if the determined bandwidth is above the bandwidth threshold;
encoding, by the audio encoder, the audio stream using the allocated portion of processing resources; and
transmitting the encoded audio stream to the receiving device via the communications channel; and
wherein the allocating is performed for each of the plurality of audio encoders to allocate to each of the plurality of audio encoders a respective portion of the amount of available processing resources used to encode the audio stream for transmission to the receiving device via the communications channel.
32 . The computer system of claim 31 , the operations further comprising:
identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths among the plurality of audio encoders, wherein available processing resources are prioritized for allocation to the subset of the plurality of audio encoders.
33 . The computer system of claim 31 , the operations further comprising:
identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths, wherein a greater portion of the available processing resources is allocated to each of the identified audio encoders than is allocated to any of the other audio encoders.
34 . The computer system of claim 31 , wherein the allocating is performed for each of the plurality of audio encoders, comprising:
in response to the available processing resources decreasing to an availability threshold, identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths, wherein a greater portion of the available processing resources is allocated to each of the identified audio encoders than is allocated to any of the other audio encoders.
35 . The computer system of claim 31 , wherein the allocating step is performed by selecting based on the determined bandwidth one of a plurality of encoding modes of the audio encoder having different complexities, and configuring the encoder to operate in the selected encoding mode to encode the audio stream;
wherein a higher complexity one of the encoding modes requiring the greater portion of the available processing resources is selected if the determined bandwidth is below the bandwidth threshold.
36 . The computer system of claim 35 , wherein:
in response to an increase in the determined bandwidth occurring after said allocation, the allocated portion of the processing resources is reduced; and the portion of the available processing resources allocated to the audio encoder is reduced by switching, in response to the increase in the determined bandwidth, the audio encoder to a lower complexity one of the encoding modes requiring only the reduced portion of the available processing resources.
37 . A computer readable storage device storing instructions that are executable by a processing system to perform operations comprising:
for each of a plurality of audio encoders executed on one or more processors, the one or more processors having an amount of available processing resources:
receiving, at the audio encoder, an audio stream to be transmitted to a receiving device via a communications channel;
determining an available bandwidth of the communications channel;
comparing the determined bandwidth to a bandwidth threshold;
allocating a portion of the available processing resources to the audio encoder based at least in part on the determined bandwidth of the communications channel, wherein the allocated portion of the available processing resources is greater if the determined bandwidth is below the bandwidth threshold than if the determined bandwidth is above the bandwidth threshold;
encoding, by the audio encoder, the audio stream using the allocated portion of processing resources; and
transmitting the encoded audio stream to the receiving device via the communications channel; and
wherein the allocating is performed for each of the plurality of audio encoders to allocate to each of the plurality of audio encoders a respective portion of the amount of available processing resources used to encode the audio stream for transmission to the receiving device via the communications channel.
38 . The computer readable storage device of claim 37 , the operations further comprising:
identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths among the plurality of audio encoders, wherein available processing resources are prioritized for allocation to the subset of the plurality of audio encoders.
39 . The computer readable storage device of claim 37 , the operations further comprising:
identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths, wherein a greater portion of the available processing resources is allocated to each of the identified audio encoders than is allocated to any of the other audio encoders.
40 . The computer readable storage device of claim 37 , wherein the allocating is performed for each of the plurality of audio encoders, comprising:
in response to the available processing resources decreasing to an availability threshold, identifying a subset of the plurality of audio encoders whose respective communications channels have lowest available bandwidths, wherein a greater portion of the available processing resources is allocated to each of the identified audio encoders than is allocated to any of the other audio encoders.Join the waitlist — get patent alerts
Track US2019259404A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.