Patent Description:
Audio systems, such as vehicle and automobile audio systems, may share various output transducers (e.g., loudspeakers) among multiple subsystems that implement varying features. For example, an audio system may play entertainment audio (such as occupant-selected audio like radio stations, streaming music, etc.), navigation prompts, warning audio (such as blind-spot or lane drift warnings), incoming telephone calls, and the like. Some example vehicle systems may also generate cancelation signals intended to reduce undesired acoustic energy, such as road noise and/or engine noise, and/or may generate enhancement sounds such as engine harmonic enhancement or other sound effects. Accommodating all such audio demands through common output transducers (e.g., loudspeakers) may overload one or more loudspeakers, which may accommodate only a limited signal voltage or total power, for instance. Accordingly, there is a need to balance the available power limit (e.g., headroom) among multiple audio signals.

<CIT> discloses a multi-band audio compressor that may provide speaker protection.

Aspects and examples are directed to systems and methods that provide dynamic headroom management for balancing the needs of multiple audio signals or functions through one or more common output transducers, hereafter referred to as loudspeakers (but may take any of varying forms). Examples disclosed herein detect when headroom is being exhausted and may prioritize one audio signal over another by, e.g., attenuating (decreasing the amplitude) of a lower priority signal. Various examples may provide adjustment of multiple signals to balance the available headroom among any number of signals. For example, when entertainment audio demand is high (e.g., volume turned up), an anti-noise signal provided by an RNC system may be reduced (attenuated) to avoid overdriving a loudspeaker.

The present invention relates to a method of managing audio headroom and a dynamic headroom management system as recited in the independent claims. Advantageous embodiments are recited in the dependent claims.

Still other aspects, examples, and advantages of these exemplary aspects and examples are discussed in detail below.

Various aspects of at least one example are discussed below with reference to the accompanying figures, which are not intended to be drawn to scale. In the figures, identical components illustrated in various figures may be represented by a like reference character or numeral. In the figures:.

Aspects of the present disclosure are directed to audio systems and methods that provide signals to one or more loudspeakers to transduce a plurality of audio signals into acoustic energy in an environment such as an occupant compartment of a vehicle. The audio systems and methods herein limit a combination of the audio signals to an available power-handling capability of the loudspeakers while dynamically adjusting the audio signals to control a distribution of power allocated to the individual audio signals. Various examples include a limiter that may adjust an output signal, in some cases on a sample-by-sample basis, to prevent a total output voltage from exceeding a voltage limit of a loudspeaker. The limiter may indicate, e.g., via an output flag, each time the output signal is adjusted (or "limited").

A block diagram of an example dynamic headroom management system or algorithm for one speaker is illustrated in <FIG> and described in more detail below. A combiner sums a first input audio signal A with a second input audio signal B to produce a combined signal Sin, which is an input to a limiter block. The limiter limits the combined signal below a predetermined threshold to provide a limited output signal Sout to the speaker. The limiter may send a limiter flag to a dynamic headroom management control block whenever the limiter limits (or adjusts) the combined signal. The dynamic headroom management control block may adjust one of the input audio signals (audio signal B in this example), illustrated in this example by a gain applied to the second audio signal B. Accordingly, the second audio signal B may be reduced (attenuated) such that the limiter block may cease having to apply a limit to the combined signal. In various examples, the dynamic headroom management control block may monitor or compute a limiter hit rate and may adjust, determine, or select the gain accordingly.

In various examples, the dynamic headroom management control block may provide a flag to indicate that it has applied an attenuation to the second input audio signal B. For example, the audio signal B may be an output of an adaptive system, such as an RNC system, and it may be desirable to pause or freeze adaptation so long as an attenuation is applied to the RNC system's output signal. Otherwise the RNC system may adapt to try and increase its share of the headroom, e.g., by increasing the amplitude of the RNC output signal, in competition with the gain (attenuation) applied by the dynamic headroom management control block. Accordingly, in some examples, an exterior system (not shown) may receive the flag from the dynamic headroom management control block and may control adaptation (or other functionality) that influences the input audio signal to which the attenuation is applied.

As discussed above, <FIG> illustrates such an example system <NUM> and includes inputs <NUM> to receive the input audio signals, a combiner <NUM> that combines the audio signals, such as by adding the audio signals to provide a combined audio signal <NUM>, a limiter <NUM> that receives the combined audio signal <NUM> and provides an output signal <NUM> to a loudspeaker <NUM>. The limiter <NUM> also indicates when it is limiting the output signal <NUM> via a flag <NUM> (e.g., a limiter flag), which is provided to a controller <NUM>. The controller <NUM> may adjust <NUM> one of the input audio signals, such as by applying a gain, which may be an attenuating gain, i.e., having a gain factor less than one. Finally, the controller <NUM> may also provide a flag <NUM> to indicate when the audio signal is being adjusted, such as by application of anything other than a unity gain. In some examples the audio signal may be attenuated and the flag <NUM> may be considered an attenuation flag. In certain examples the attenuation flag may indicate whenever the gain is below some gain threshold, such as below <NUM> or below <NUM>.

In various examples, the limiter <NUM> may be a sample-by-sample limiter that operates on a digital signal on a sample-by-sample basis to ensure that voltages provided to the loudspeaker <NUM> do not exceed a certain limit.

<FIG> illustrates an example flow diagram <NUM> that may be executed by the example limiter <NUM>. As above, the primary role of a limiter <NUM> is to prevent an output signal from exceeding a certain voltage, e.g., to protect a downstream electrical component, such as the loudspeaker <NUM>. In general, the limiter <NUM> provides an output signal that matches an input signal unless the input signal exceeds a threshold, in which case the limiter adjusts the output signal to ensure that it does not exceed some upper limit. The example flow diagram <NUM> works on a sample-by-sample basis and limits the output signal below a predetermined upper limit. With continued reference to <FIG>, a sample of the input signal, which may be a sample of the combined audio signal <NUM> (see <FIG>), is received (block <NUM>) and compared to a threshold (block <NUM>). If the input sample exceeds the threshold, a value for an output sample is determined (block <NUM>) by a limiting function, Sout = limit(Sin). The limiting function may be any function, many of which are well known in the art, but generally will provide an output sample value lower than the input sample value and only up to a certain maximum upper limit. In some examples, the limiting function may provide hard clipping by setting the output sample to the threshold value whenever the input sample is equal to or greater than the threshold value. In other examples, the limiting function may provide gradually tapered output samples based upon the input sample up to the upper limit, e.g., for an ever-increasing input signal the output signal may exponentially approach the upper limit. Details of any particular limiting function are not presented herein as many such examples exist in the prior art.

Continuing with reference to the example flow diagram <NUM> of <FIG>, triggering of the limiting function of block <NUM> indicates that the combined audio signal <NUM> has run out of headroom, which may be interpreted as at least one of the audio signals at inputs <NUM> of the combined audio signal <NUM> consuming too much headroom for the audio system overall. Accordingly, a flag <NUM> (e.g., flag = <NUM>) is sent to the dynamic headroom management (DHM) control block, e.g., the controller <NUM> of <FIG>, at block <NUM>. Additionally, the limiting function of block <NUM> causes a non-linear relationship between the input and output signals of the limiter <NUM> and, accordingly, any adaptation being performed by external sources of the audio signals at inputs <NUM> should be halted (block <NUM>), which may be achieved by sending a flag to the external system. For example, adaptive filters may operate with feedback microphones to determine linear relationships in various systems, such as road noise and/or engine harmonic cancelation systems, but the limiting function of block <NUM> represents non-linear processing that would otherwise cause such cancelation systems to improperly adapt. The example flow diagram <NUM> continues by proceeding to the next sample (block <NUM>).

Returning to block <NUM>, if the input sample does not exceed the threshold, the value for the output sample is set equal to the input sample (block <NUM>), e.g., it is passed through the limiter <NUM> without alteration or adjustment. Alternately stated, no limiting function is triggered when the input sample does not exceed the threshold. Accordingly, no flag <NUM> is indicated (e.g., flag = <NUM>) to the DHM control (e.g., controller <NUM> of <FIG>) (block <NUM>), and adaptation of any adaptive system may continue (block <NUM>).

In some examples, a limiter, such as the limiter <NUM> of <FIG>, may act on the combined audio signal <NUM> thereby without knowledge of the individual audio signal inputs <NUM>. In other examples, a limiter may be applied to one of the audio signal inputs <NUM>, effectively forcing the limited input audio signal to be lower priority, e.g., with lower upper limit, prior to being combined with one or more of the other audio signal inputs <NUM>. In such examples, a further limiter, which may be applied external to the system <NUM>, may be included to ensure that a final output signal does not exceed a limit.

In various examples, the controller <NUM>, also referred to herein as the dynamic headroom management control block, may receive the limiter flag <NUM> at every sample, and may compute a limiter hit rate (or simply "hit rate") over a predefined duration to determine whether an adjustment should be made to one or more of the audio signal inputs <NUM>. For example, if the limiter flag <NUM> only occasionally indicates that the limiter <NUM> made an adjustment to the output signal <NUM>, a high value of the combined audio signal <NUM> may only be temporary, or may be only a few samples, and there may be no need to adjust any of the audio signals at inputs <NUM>. However, if the limiter flag <NUM> indicates a series of adjustments to the output signal <NUM> over time, the high value of the combined audio signal <NUM> may justify adjusting down (attenuating) one or more of the audio signals at inputs <NUM>. In various examples, a selected one or more of the audio signals at inputs <NUM> may be adjusted down by applying a gain <NUM>, which may be based upon the computed limiter hit rate. In general, the adjustment due to a high limiter hit rate is an attenuation, meaning a value of the gain <NUM> of less than unity.

In various examples, the limiter hit rate is computed over a predefined duration. In order to ensure a fast update of the hit rate while maintaining a low memory requirement, the hit rate duration may be partitioned into Nsub subblocks and the number of limiter hits, e.g., instances of the flag <NUM> being set (e.g., flag = <NUM>), is computed for each subblock as shown in the following figure.

In some examples, two counters may be used to compute the number of hits in the last subblock. The first one goes from <NUM> to Hit Rate Duration/Nsub and the second one counts the number of hits over the subblock duration. The number of hits is then used to update the buffer and the two counters are reset.

The limiter hit rate may then be computed as: <MAT> where Nhits(nDHM) is the total number of limiter hits at the current update.

An efficient implementation of the limiter hit rate computation may include a circular buffer to store the number of hits per subblock and two additions to compute the total number of hits over the duration, such as: <MAT> where Nhits(nDHM - <NUM>) is the total number of hits at the previous update, N<NUM> is the first inserted value in the buffer, and Ncurrent is the last computed value which will replace N<NUM> in the buffer.

In various examples, the adjustment gain <NUM> may be determined by the controller <NUM> based upon the limiter hit rate. In accord with the above, the limiter hit rate is a fractional value, bounded between <NUM> and <NUM>. In some examples, this range may be partitioned into three regions. A first region between <NUM> and r<NUM> (a low hit rate), a second region between r<NUM> and r<NUM> (a mid-range hit rate), and a third region between r<NUM> and <NUM> (a high hit rate). When the limiter hit rate is low, e.g., within the first region, the controller <NUM> may increase the adjustment gain <NUM> up until it reaches unity. When the limiter hit rate is mid-range or high, e.g., when it lies in the second or third region, the controller <NUM> may reduce the adjustment gain <NUM> down, potentially until it reaches <NUM>. Accordingly, the controller <NUM> over time may try to return the adjustment gain <NUM> to unity whenever the limiter hit rate is low and may reduce the adjustment gain <NUM> (e.g., increase attenuation) of a selected one (or more) of the audio signals at inputs <NUM> whenever the limiter hit rate is mid-range or high.

In some examples, the controller <NUM> may reduce the adjustment gain <NUM> down more quickly when the limiter hit rate is in the high region than when in the mid-range region. In some examples, the controller <NUM> may determine a rate of adjustment of the adjustment gain <NUM> based upon the value of the limiter hit rate, as described in greater detail below.

In certain examples, the adjustment gain <NUM> may be updated in accord with the following equation: <MAT> StepUmax and StepDmax denote the maximum step up and maximum step down in the gain update, respectively. The parameter αattack is chosen to control how quickly the adjustment gain <NUM> is reduced. The level adjustment Ladjust may be used to control the rate of adjustment based upon the value of the hit rate, e.g., a higher hit rate causing the rate of adjustment to be more drastic or rapid. In various examples, other functions may be used to compute the adjustment gain <NUM>. In some examples, the level adjustment Ladjust may be linearly increasing in the second region and may maintain a maximum value of unity in the third region, as follows: <MAT>.

In various examples, other functions may be used to compute Ladjust.

Additionally, the controller <NUM> may provide the flag <NUM> as an indicator to other systems, such as the source(s) of one or more of the audio signals at inputs <NUM>, whenever the controller <NUM> applies an adjustment gain <NUM> other than unity, or in some instances, whenever the adjustment gain <NUM> is some threshold level below unity. For example, the flag <NUM> may be used by another system, such as an adaptive noise cancelation system, e.g., to freeze adaptation for a duration while its anti-noise signal is being attenuated, e.g., an adjustment gain <NUM> below unity is being applied.

The above described systems and methods were described for two signals, such as entertainment audio and road noise cancelation. However, they may be modified and extended to cover a multitude of signals such as entertainment audio, phone, announcements, road noise cancelation, engine harmonic enhancement, and engine harmonic cancelation. In various examples, additional input audio signals may be accommodated by cascading a plurality of the example system <NUM> (e.g., <FIG>), such as illustrated in <FIG> (which may be extended to any number of 'serial' systems having a limiter and gain control), or by stacking a plurality of the example system <NUM>, e.g., in 'parallel,' such as illustrated in one example in <FIG>, which may include additional system <NUM> to combine the various outputs.

Additionally, various examples may implement a more integrated system, such as the example multi-input system 100a illustrated in <FIG>. The example system 100a is similar to the example system <NUM> in <FIG>, having a number of audio signal inputs <NUM>. The examples system 100a includes a controller 150a capable of applying respective adjustment gains 160a, 160b, 160c, to individual ones of the audio signal inputs <NUM>. Similar to the above descriptions, the controller 150a may select and apply adjustment gains <NUM> based upon a limiter flag <NUM> indicating when the limiter <NUM> limits the combined input signal <NUM>. The controller 150a may be configured to select and apply various of the adjustment gains <NUM> in various ways according to varying needs and/or system implementations of (a) the systems that provide the audio signals to the inputs <NUM> and/or (b) the system overall.

Additionally, the above described systems and methods are illustrated for a single speaker channel and can easily be extended to multiple speakers. A limiter threshold can be defined for each speaker channel, and gain adjustments may be applied per loudspeaker channel. In some examples, it may be desirable to have a single gain adjustment among all loudspeaker channels because, for instance, certain applications (such as noise cancelation and/or arraying loudspeakers) may rely upon acoustic signals from various loudspeakers combining properly at a listener's ears. In such cases, a gain adjustment at one loudspeaker independent of another loudspeaker may deteriorate the proper combination of acoustic signals. Accordingly, a multi-loudspeaker system may tie all the systems <NUM> together and apply a constant gain, which may be the most attenuating gain selected by any of the systems <NUM>, to maintain balance between the loudspeaker channels.

Functions, methods, and/or components of the methods and systems disclosed herein according to various aspects and examples may be implemented or carried out in a digital signal processor (DSP) and/or other circuitry, analog or digital, suitable for performing signal processing and other functions in accord with the aspects and examples disclosed herein. Additionally or alternatively, a microprocessor, a logic controller, logic circuits, field programmable gate array(s) (FPGA), application-specific integrated circuit(s) (ASIC), general computing processor(s), micro-controller(s), and the like, or any combination of these, may be suitable, and may include analog or digital circuit components and/or other components with respect to any particular implementation.

Functions and components disclosed herein may operate in the digital domain, the analog domain, or a combination of the two, and certain examples include analog-to-digital converter(s) (ADC) and/or digital-to-analog converter(s) (DAC) where appropriate, despite the lack of illustration of ADC's or DAC's in the various figures. Further, functions and components disclosed herein may operate in a time domain, a frequency domain, or a combination of the two, and certain examples include various forms of Fourier or similar analysis, synthesis, and/or transforms to accommodate processing in the various domains.

Any suitable hardware and/or software, including firmware and the like, may be configured to carry out or implement components of the aspects and examples disclosed herein, and various implementations of aspects and examples may include components and/or functionality in addition to those disclosed. Various implementations may include stored instructions for a digital signal processor and/or other circuitry to enable the circuitry, at least in part, to perform the functions described herein.

Claim 1:
A method (<NUM>) of managing audio headroom, the method comprising:
receiving a first input signal (<NUM>-B);
receiving a second input signal (<NUM>-A);
combining (<NUM>) the first and second input signals to provide a combined signal (<NUM>);
comparing (<NUM>) the combined signal to a threshold value;
providing (<NUM>) the combined signal as an output signal (<NUM>) if the combined signal is less than the threshold value;
providing (<NUM>) an adjusted signal as the output signal if the combined signal is greater than the threshold value, the adjusted signal being based on the combined signal and adjusted by means of a limiter (<NUM>) to ensure it does not exceed a certain voltage; and
adjusting a gain (<NUM>) applied to the first input signal based upon the combined signal being greater than the threshold value, while not adjusting a gain applied to the second input signal.