US2019259404A1PendingUtilityA1

Encoding an audio stream

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Jan 7, 2016Filed: May 6, 2019Published: Aug 22, 2019
Est. expiryJan 7, 2036(~9.4 yrs left)· nominal 20-yr term from priority
G10L 19/22G10L 19/24H04L 43/0888G10L 19/002G10L 19/167G06F 9/5038H04L 65/80H04L 43/16H04L 65/607H04L 65/4069H04L 65/602H04L 65/762H04L 65/70H04L 65/61
54
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
1 - 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.