Encoding an audio stream
First Claim
1. A method of encoding an audio stream comprising:
- receiving, at an audio encoder executed on a processor, an audio stream to be transmitted to a receiving device via a communications channel, the processor having an amount of available processing resources;
determining an available bandwidth of the communications channel;
comparing the determined bandwidth to a bandwidth threshold;
determining a measure of processor load that corresponds to the amount of available processing resources;
allocating a portion of the available processing resources to the audio encoder based on the determined bandwidth of the communications channel and the determined processor load,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, andwherein the portion of the available processing resources allocated to the audio encoder is greater if the determined bandwidth is below the bandwidth threshold and the processor load is below a processor load threshold than if the determined bandwidth is below the bandwidth threshold and the processor load is above the processor load threshold;
encoding, by the audio encoder, the audio stream using the allocated portion of processing resources; and
transmitting the encoded audio stream for receipt by the receiving device via the communications channel;
wherein multiple audio encoders are executed on the processor, wherein each of the audio encoders is allocated a respective portion of the available processing resources which that audio encoder uses to encode a respective audio stream for transmission for receipt by a respective receiving device via a respective communications channel; and
wherein the allocating includes, in response to the processor load increasing to the processor load threshold, identifying a subset of the audio encoders whose respective communications channels have the 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.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
17 Claims
-
1. A method of encoding an audio stream comprising:
-
receiving, at an audio encoder executed on a processor, an audio stream to be transmitted to a receiving device via a communications channel, the processor having an amount of available processing resources; determining an available bandwidth of the communications channel; comparing the determined bandwidth to a bandwidth threshold; determining a measure of processor load that corresponds to the amount of available processing resources; allocating a portion of the available processing resources to the audio encoder based on the determined bandwidth of the communications channel and the determined processor load, 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, and wherein the portion of the available processing resources allocated to the audio encoder is greater if the determined bandwidth is below the bandwidth threshold and the processor load is below a processor load threshold than if the determined bandwidth is below the bandwidth threshold and the processor load is above the processor load threshold; encoding, by the audio encoder, the audio stream using the allocated portion of processing resources; and transmitting the encoded audio stream for receipt by the receiving device via the communications channel; wherein multiple audio encoders are executed on the processor, wherein each of the audio encoders is allocated a respective portion of the available processing resources which that audio encoder uses to encode a respective audio stream for transmission for receipt by a respective receiving device via a respective communications channel; and wherein the allocating includes, in response to the processor load increasing to the processor load threshold, identifying a subset of the audio encoders whose respective communications channels have the 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer system comprising:
-
a network interface for communicating with a receiving device via a communications channel; a bandwidth determiner configured to; determine an available bandwidth of the communications channel; and determining a measure of processor load that corresponds to an amount of available processing resources; an audio encoder executed on a processor of the computer system and configured to receive an audio stream to be transmitted to the receiving device via the communications channel, the processor having the amount of available processing resources; and a resource allocator configured to compare the determined bandwidth to a bandwidth threshold, and to allocate, to the audio encoder based on the determined bandwidth of the communications channel and the determined processor load, a portion of the available processing resources, 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, wherein the portion of the available processing resources allocated to the audio encoder is greater if the determined bandwidth is below the bandwidth threshold and the processor load is below a processor load threshold than if the determined bandwidth is below the bandwidth threshold and the processor load is above the processor load threshold, wherein the audio encoder is configured to encode the audio stream using the allocated portion of processing resources, and wherein the network interface is configured to transmit the encoded audio stream for receipt by the receiving device via the communications channel; wherein multiple audio encoders are executed on the processor, wherein each of the audio encoders is allocated a respective portion of the available processing resources which that audio encoder uses to encode a respective audio stream for transmission for receipt by a respective receiving device via a respective communications channel; and wherein the resource allocator is further configured to, in response to the processor load increasing to the processor load threshold, identifying a subset of the audio encoders whose respective communications channels have the 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. - View Dependent Claims (16)
-
-
17. A computer readable storage device storing instructions that are executable by a processing system to perform operations including:
-
determining an available bandwidth of a communications channel via which an audio stream is to be transmitted to a receiving device; comparing the determined bandwidth to a bandwidth threshold; determining a measure of processor load that corresponds to an amount of available processing resources; and allocating a portion of the available processing resources to an audio encoder based on the determined bandwidth of the communications channel and the determined processor load, thereby causing the audio encoder to encode the audio stream using the allocated portion of the processing resources for transmission to the receiving device via the communications channel, wherein the allocated portion is greater if the determined bandwidth is below the bandwidth threshold than if the determined bandwidth is above the bandwidth threshold, and wherein the portion of the available processing resources allocated to the audio encoder is greater if the determined bandwidth is below the bandwidth threshold and the processor load is below a processor load threshold than if the determined bandwidth is below the bandwidth threshold and the processor load is above the processor load threshold; wherein multiple audio encoders are executed on the processor, wherein each of the audio encoders is allocated a respective portion of the available processing resources which that audio encoder uses to encode a respective audio stream for transmission for receipt by a respective receiving device via a respective communications channel; and wherein the allocating includes, in response to the processor load increasing to the processor load threshold, identifying a subset of the audio encoders whose respective communications channels have the 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.
-
Specification