IP Library Granted Patent US 9,602,918
Granted Patent B2
US 9,602,918 · App. 13/780,728 · Granted Mar 21, 2017

Stream caching for audio mixers

Inventors: Lars Henrik Ellner (Mountain View, CA); Turaj Zakizadeh Shabestary (Mountain View, CA); Niklas Enbom (Mountain View, CA)
Assignee: GOOGLE INC.
H04R3/00G10L19/008G10L25/78H04M1/60H04R2499/11
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 9,602,918
App. No.
13/780,728
Granted
Mar 21, 2017
Kind
B2
Abstract

Methods and systems are provided for reusing audio streams in an audio mixing environment such that processing resources are not wasted on encoding the same audio streams multiple times. Instead, processing resources are conserved without comprising audio quality. The methods described herein are particularly useful when a participant transitions from using a shared encoder to using the participant's own encoder, and when the participant transitions from using the participant's own encoder to using a shared encoder.

Claims (39)

1. A method for sharing encoded audio, the method comprising:

encoding, by an audio mixing apparatus, audio signals to send to a first client using a first encoder and audio signals to send to a second client using a second encoder;

determining that there is an absence of audible distortions resulting from the encoding of the audio signals to send to the first client using the first encoder and the encoding of the audio signals to send to the second client using the second encoder; and

responsive to the determination of the absence of audible distortions, sending the audio signals encoded using the second encoder to both the first client and the second client, wherein the audio signals encoded using the second encoder are sent to the first client in place of the audio signals encoded using the first encoder.

2. The method of claim 1 , further comprising:

receiving, at the audio mixing apparatus, audio signals from a plurality of clients in communication with the audio mixing apparatus;

performing a mixing algorithm on the received audio signals to generate a plurality of mixed audio signals; and

sending each of the plurality of mixed audio signals to one or more of the plurality of clients.

3. The method of claim 2 , wherein the mixing algorithm is performed based on voice activity detected in the received audio signals.

4. The method of claim 1 , further comprising:

buffering audio frames to send to the first client until an encoder state of the first encoder is similar to an encoder state of the second encoder; and

responsive to determining that the encoder state of the first encoder is similar to the encoder state of the second encoder, sending the audio signals encoded using the second encoder to both the first client and the second client, wherein the audio signals encoded using the second encoder are sent to the first client in place of the audio signals encoded using the first encoder.

5. The method of claim 1 , wherein determining that the first encoder and the second encoder are in similar encoder states includes determining that the first encoder and the second encoder are both producing encoded audio frames that correspond to the same audio samples.

6. The method of claim 1 , further comprising:

storing audio frames of the audio signals to send to the first client;

determining that the stored audio frames of the audio signals to send to the first client correspond to audio frames of the audio signals to send to the second client; and

reproducing an encoder state of the second encoder for use by the first encoder.

7. The method of claim 1 , wherein the first encoder and the second encoder are synchronized with respect to buffered audio.

8. A system for sharing encoded audio, the system comprising:

at least one processor; and

a non-transitory computer-readable medium coupled to the at least one processor having instructions stored thereon that, when executed by the at least one processor, causes the at least one processor to:

encode audio signals to send to a first client using a first encoder and encode audio signals to send to a second client using a second encoder;

determine that there is an absence of audible distortions resulting from the encoding of the audio signals to send to the first client using the first encoder and the encoding of the audio signals to send to the second client using the second encoder; and

responsive to the determination of the absence of audible distortions, send the audio signals encoded using the second encoder to both the first client and the second client, wherein the audio signals encoded using the second encoder are sent to the first client in place of the audio signals encoded using the first encoder.

9. The system of claim 8 , wherein the at least one processor is further caused to:

receive audio signals from a plurality of clients in communication with each other over a network;

perform a mixing algorithm on the received audio signals to generate a plurality of mixed audio signals; and

send each of the plurality of mixed audio signals to one or more of the plurality of clients.

10. The system of claim 9 , wherein the mixing algorithm is performed based on voice activity detected in the received audio signals.

11. The system of claim 8 , wherein the at least one processor is further caused to:

buffer audio frames to send to the first client until an encoder state of the first encoder is similar to an encoder state of the second encoder; and

responsive to determining that the encoder state of the first encoder is similar to the encoder state of the second encoder, send the audio signals encoded using the second encoder to both the first client and the second client, wherein the audio signals encoded using the second encoder are sent to the first client in place of the audio signals encoded using the first encode.

12. The system of claim 8 , wherein the at least one processor is further caused to:

determine that the first encoder and the second encoder are both producing encoded audio frames that correspond to the same audio samples.

13. The system of claim 8 , wherein the at least one processor is further caused to:

store audio frames of the audio signals to send to the first client;

determine that the stored audio frames of the audio signals to send to the first client correspond to audio frames of the audio signals to send to the second client; and

reproduce an encoder state of the second encoder for use by the first encoder.

14. The system of claim 8 , wherein the first encoder and the second encoder are synchronized with respect to buffered audio.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044097/0658 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2013
From: ELLNER, LARS HENRIK; SHABESTARY, TURAJ ZAKIZADEH; ENBOM, NIKLAS
To: GOOGLE INC.
Reel/Frame 029915/0274 →
Continuity (1)
Related Publication 20150201274A1 · Jul 16, 2015