Patent Description:
In the field of audio coding and decoding and also in signal processing in general, it is of interest to find and identify peak structures of a signal. For example, the distribution of peak structures of the signal can be used in determining a coding scheme to use in encoding/decoding as various coding schemes are better to use for periodic peak distributions whereas other coding schemes are better to use for sparse peak distributions. If the signal is a frequency spectrum, the peaks indicate the frequency and magnitude of sinusoidal components of the signal to be analyzed.

Finding peaks in a discretely sampled signal may pose some problems due to the fact that the underlying peak may be located between the sample points of the signal. One way to solve this is to use interpolation that tries to estimate the underlying peak using the neighboring sample points [See <NUM>, Eric Jacobsen, "On Location Interpolation of DFT Outputs"]. One way to implement this interpolation is to apply a low-pass filter to the signal. Peaks that are spread over several sample points may then contribute to an aggregated peak value.

A simple example of such a filter could be a Hanning window of length <NUM>, h = [<NUM><NUM><NUM>], or a normalized Hanning window <MAT>. Another example could be a triangular shaped filter such as h<NUM> = [<NUM><NUM><NUM><NUM><NUM><NUM><NUM>].

A drawback with the filtering method is that the peaks in signals are reduced. This is illustrated in the article entitled "<NPL>. This article describes numerous and complex operations to eliminate peak attenuation and requires that peaks of interest have similar morphology, thus being limited to situations where the audio signal have similar types and breadth of peaks. In operation, add back the difference signal (difference between the original signal and the filtered signal) is added back to the filtered signal with some masking applied, gain estimated and applied and further filtering and addition operations to obtain a signal with peaks closer to the original signal than the filtered signal. <NPL>, proposes an onset detection scheme which utilizes the enhanced difference filter to improve the detection function by accentuating the peaks at the uprising margins of energy, and the adjustment approach for onset locations to compensate the peak shifts. A binary classifier based on GMM is further used to combine relevant features of adjacent peaks so as to make more reliable final decisions.

A drawback with the filtering method is that narrow peaks may be suppressed more than broader peaks. This penalizes narrow peaks that may come from underlying peaks that are close to a sample point and hence has a smaller spread. It may also be disadvantageous for functions that typically yield both narrow and broad peak structures, where the narrow peaks would be penalized.

An advantage that may be achieved using the inventive concepts described herein is that the both the broad peaks and the narrow peaks of the original signal can be identified and the magnitude of the narrow peaks relative to the broad peaks can be determined.

According to a first aspect, there is provided a method of encoding an audio signal. The method comprises receiving an analysis signal of the audio signal and a low pass filtered analysis signal, responsive to determining to use a combined signal to identify broad peaks and narrow peaks combining the filtered signal with the analysis signal to generate a combined signal by finding a maximum absolute value of the filtered signal and the analysis signal at each index i. The method comprises identifying broad peaks and narrow peaks of the combined signal.

According to a second aspect, there is provided an audio encoder adapted to perform the method according to the first aspect.

According to a third aspect, there is provided a method of decoding an encoded audio signal. The method comprises receiving an analysis signal of the audio signal and a low pass filtered analysis signal, responsive to determining to use a combined signal to identify broad peaks and narrow peaks combining the filtered signal with the analysis signal to generate a combined signal by finding a maximum absolute value of the filtered signal and the analysis signal at each index i. The method comprises identifying broad peaks and narrow peaks of the combined signal.

According to a fourth aspect, there is provided an audio decoder adapted to perform the method according to the third aspect.

Prior to describing the embodiments in further detail, <FIG> illustrates an example of an operating environment of an encoder <NUM> that may be used to encode bitstreams as described herein. The encoder <NUM> receives audio from network <NUM> and/or from storage <NUM> and encodes the audio into bitstreams as described below and transmits the encoded audio to decoder <NUM> via network <NUM>. Storage device <NUM> may be part of a storage depository of multichannel audio signals such as a storage repository of a store or a streaming audio service, a separate storage component, a component of a mobile device, etc. The decoder <NUM> may be part of a device <NUM> having a media player <NUM>. The device <NUM> may be a mobile device, a set-top device, a desktop computer, and the like.

<FIG> is a block diagram illustrating elements of encoder <NUM> configured to encode audio frames according to some embodiments of inventive concepts. As shown, encoder <NUM> may include a network interface circuitry <NUM> (also referred to as a network interface) configured to provide communications with other devices/entities/functions/etc. The encoder <NUM> may also include processor circuitry <NUM> (also referred to as a processor) coupled to the network interface circuitry <NUM>, and a memory circuitry <NUM> (also referred to as memory) coupled to the processor circuit. The memory circuitry <NUM> may include computer readable program code that when executed by the processor circuitry <NUM> causes the processor circuit to perform operations according to embodiments disclosed herein.

According to other embodiments, processor circuitry <NUM> may be defined to include memory so that a separate memory circuit is not required. As discussed herein, operations of the encoder <NUM> may be performed by processor <NUM> and/or network interface <NUM>. For example, processor <NUM> may control network interface <NUM> to transmit communications to decoder <NUM> and/or to receive communications through network interface <NUM> from one or more other network nodes/entities/servers such as other encoder nodes, depository servers, etc. Moreover, modules may be stored in memory <NUM>, and these modules may provide instructions so that when instructions of a module are executed by processor <NUM>, processor <NUM> performs respective operations.

<FIG> is a block diagram illustrating elements of decoder <NUM> configured to decode audio frames according to some embodiments of inventive concepts. As shown, decoder <NUM> may include a network interface circuitry <NUM> (also referred to as a network interface) configured to provide communications with other devices/entities/functions/etc. The decoder <NUM> may also include a processor circuitry <NUM> (also referred to as a processor) coupled to the network interface circuit <NUM>, and a memory circuitry <NUM> (also referred to as memory) coupled to the processor circuit. The memory circuitry <NUM> may include computer readable program code that when executed by the processor circuitry <NUM> causes the processor circuit to perform operations according to embodiments disclosed herein.

According to other embodiments, processor circuitry <NUM> may be defined to include memory so that a separate memory circuit is not required. As discussed herein, operations of the decoder <NUM> may be performed by processor <NUM> and/or network interface <NUM>. For example, processor circuitry <NUM> may control network interface circuitry <NUM> to receive communications from encoder <NUM>. Moreover, modules may be stored in memory <NUM>, and these modules may provide instructions so that when instructions of a module are executed by processor circuitry <NUM>, processor circuitry <NUM> performs respective operations.

As previously indicated, a drawback with the low-pass filtering method is that narrow peaks may be suppressed. This penalizes narrow peaks that may come from underlying peaks that are close to a sample point and hence has a smaller spread. It may also be disadvantageous for functions that typically yield both narrow and broad peak structures, where the narrow peaks would be penalized. An illustration of this issue can be found in <FIG>, where a narrow peak <NUM> of an original signal <NUM> is suppressed in the filtered signal <NUM> and a broad peak <NUM> is kept at a higher magnitude in the filtered signal <NUM>. In the original analysis signal <NUM>, a narrow peak <NUM> can be found at index <NUM> and a broad peak <NUM> with a lower maximum can be found at index <NUM>. Applying a low-pass filter of the form [<NUM><NUM><NUM>] yields the filtered analysis signal <NUM>, where the narrow peak at index <NUM> has now been suppressed and the maximum now is found at index <NUM>. Note that the filtered analysis signal has been delay compensated such that the peak indices correspond to the indices of the non-filtered signal (i.e., the analysis signal <NUM>).

In various embodiments of inventive concepts described below, a filtered version of an analysis signal is "combined" with the original signal using a maximum function or a maximum absolute value function. An advantage that may be acquired using the various embodiments of inventive concepts is that both the broad peaks and the narrow peaks of the original signal can be identified without penalizing the narrow peaks of the original signal. An illustration of an analysis signal, a filtered signal and a combined signal can be found in <FIG>.

In the description that follows, peaks of a signal are defined as signal extrema of a signal with limited length. They may be positive or negative extrema. The peaks may have magnitude that are relatively large, i.e. by being larger than the neighboring values. Such a comparison may be based on comparing the possible peak values to a low-pass filtered version of the function. It could also be based on a relative distance to a reference level, such as a noise floor level of the signal or the average level of the signal.

Referring to <FIG> and <FIG>, operations of an encoder <NUM> and/or a decoder <NUM> (implemented using the structure of the block diagrams of <FIG>, respectively) will now be discussed with reference to the flow chart of <FIG> according to some embodiments of inventive concepts. For example, modules may be stored in memory <NUM> of <FIG> or memory <NUM> of <FIG>, and these modules may provide instructions so that when the instructions of a module are executed by respective encoder/decoder processing circuitry <NUM>, <NUM>, processing circuitry <NUM>, <NUM> performs respective operations of the flow chart.

In the description that follows, the encoder <NUM> shall be used to describe the inventive concepts. The decoder <NUM> may also perform the embodiments of inventive concepts described below.

In some embodiments of inventive concepts, there may be some instances where the magnitude of the narrow peak <NUM> in the filtered signal is not used in controlling the encoder <NUM> or decoder <NUM>. Thus, in block <NUM>, the processing circuitry <NUM> receives an analysis signal of an audio signal and a filtered analysis signal, the analysis signal to be analyzed for peaks. The filtered signal may be received from the low-pass filter <NUM>. In block <NUM>, the processing circuitry <NUM> determines whether or not to use a combined signal to identify broad peaks and narrow peaks of an analysis signal. The determination to use the combined signal in various embodiments is based on receiving an indicator. The indicator may be generated by an analysis block operating on e.g. the audio signal or the analysis signal, indicating whether narrow peaks of the analysis signal should be preserved or not.

As an example, the input signal to be analyzed for peaks is denoted x(i), where x(i) is the value of the analysis function at index i. The analysis signal x(i) may for instance be a frequency spectrum, where the peaks may represent sinusoid components. The sinusoid components may for instance be used by an audio encoder operating in the sinusoidal encoding paradigm. Another example is an error concealment unit in an audio decoder, generating concealment audio in the sinusoidal synthesis paradigm. Yet another example is an inter-channel time difference (ITD) analysis of a parametric stereo encoder, where the ITD is identified by locating the peak of a cross-correlation spectrum.

The analysis signal x(i) is input to a filter, such as a low-pass filter <NUM>, to generate the filtered analysis signal xf(i). The filter may for instance be an FIR (finite impulse response) filter in the form of a normalized Hanning filter of length <NUM>: h<NUM> = [<NUM><NUM><NUM>]. Note that in various embodiments of inventive concepts, any low-pass filter structure may be used, as long as it fulfils the purpose of averaging broad peaks spreading over several indices. It is beneficial to compensate for any delay introduced by the filter, such that the location of peak indices of xf(i) matches the location of peak indices of the original signal x(i). For h<NUM>, this means shifting the output result one sample backwards in time, which is possible if the entire analysis signal is available at the time of the analysis. This is typically the case for an audio encoder operating on a frame basis.

In many instances, the filtered signal received has narrow peaks <NUM> that are suppressed such that broad peaks <NUM> are at a higher magnitude than the narrow peaks <NUM> that are suppressed. In other words, the original signal has narrow peaks <NUM> with a magnitude higher than the magnitude of the broad peaks <NUM>. Thus, receiving the filtered signal in some embodiments includes receiving a filtered signal which has narrow peaks <NUM> that are suppressed (see <FIG>) and broad peaks that are at a higher magnitude than the narrow peaks that are suppressed. In other embodiments, the narrow peaks <NUM> are suppressed but may still have a higher magnitude than the broad peaks <NUM>.

In block <NUM>, the processing circuitry <NUM>, responsive to determining to use a combined signal to identify broad peaks and narrow peaks, combines the filtered analysis signal <NUM> with the analysis signal <NUM> to generate the combined signal <NUM> (see <FIG>) using a maximum function that provides at least one of a maximum positive value at each index i of the combined signal and a maximum negative value at each index i of the combined signal.

In block <NUM>, the processing circuitry <NUM> runs peak detection on the combined signal. In block <NUM>, responsive to determining not to use the combined signal, runs peak detection on the filtered analysis signal <NUM>.

The indicator in some embodiments may control a switch <NUM> that in one position connects the low-pass filter <NUM> to the peak detector <NUM> and in another position connects the combined signal being output from maximum absolute magnitude combiner <NUM>, where each point of the signal selecting depending on the maximum absolute value of the signals at that point. The switch <NUM> in some embodiments is located before the peak detector <NUM> as illustrated in <FIG>. This enables both the filtered analysis signal and combined signal to be analyzed to determine whether or not to use the combined signal. The switch <NUM> in other embodiments is located between the low pass filter <NUM> and peak detector <NUM> as illustrated in <FIG>. The embodiment illustrated in <FIG> can reduce computations as the combined signal computations may not be computed in various embodiments when the combined signal is not being used.

In various embodiments of inventive concepts, the original analysis signal x(i) and the low-pass filtered analysis signal xf(i) are combined using the maximum absolute value at each index i. Generating the combined signal using the maximum absolute value at each index i is generated in accordance with <MAT> where x(i) is the analysis signal and xf(i) is the filtered signal.

A weighting function may be used when combining the original analysis and the filtered analysis signal. Thus, generating the combined signal using the maximum absolute value at each index i is generated in accordance with <MAT> where x(i) is the analysis signal, xf(i) is the filtered signal, and β is a weight. β can be in a range of [<NUM>-<NUM>) in some embodiments.

In other embodiments of inventive concepts, only the positive peaks are of interest. In this case, the absolute function may be omitted and the combination of the original and filtered signal are used to generate the combined signal that identifies only positive peaks. Thus, generating the combined signal that identifies only positive peaks is generated in accordance with <MAT> where x(i) is the analysis signal and xf(i) is the filtered signal.

A weighting function may be used when combining the original analysis and the filtered analysis signal. Thus, generating the combined signal to identify only positive peaks is generated in accordance with <MAT> where x(i) is the analysis signal, xf(i) is the filtered signal, and β is a weight. β can be in a range of [<NUM>-<NUM>) in some embodiments.

In yet another embodiment, the negative extrema are identified. In this case, the selection of elements of the combined signal uses the smallest value in accordance with <MAT> where x(i) is the analysis signal and xf(i) is the filtered signal.

Turning to <FIG> and <FIG>, in yet other embodiments, the original analysis signal is scaled with a factor γ before combining with the filtered signal. <MAT> where x(i) is the analysis signal, xf(i) is the filtered signal, and γ is a positive constant, where a suitable value of γ may be the maximum coefficient of the low-pass filter, e.g. γ = <NUM>. In other embodiments, the value of γ may in general be matching the maximum amplification of the low-pass filter when fed with an impulse (e.g., Dirac pulse of magnitude <NUM>).

It may further be advantageous from a complexity perspective to only insert the original values at the limited number of indices, for instance at the locations of the maxima before the filtering is applied. <MAT> where x(i) is the analysis signal, xf(i) is the filtered signal, γ is a positive constant, and Ipeak is a set of indices of at least one extreme point or maxima of the original signal x(i). The comparison and combination operation would then only need to be carried out for the indices in Ipeak.

The detected peaks are output from the peak detector <NUM> and other functions/components (not shown) of the encoder (or the decoder) are used to run peak analysis on the resulting signal.

Various operations from the flow chart of <FIG> may be optional with respect to some embodiments of communication devices and related methods. Regarding methods of example embodiments <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> (set forth below), for example, operations of blocks <NUM> and <NUM> of <FIG> may be optional.

<FIG> illustrates operations of the encoder <NUM> and/or the decoder <NUM> (implemented using the structure of the block diagrams of <FIG>, respectively) and will now be discussed with reference to the flow chart of <FIG> according to some embodiments of inventive concepts. For example, modules may be stored in memory <NUM> of <FIG> or memory <NUM> of <FIG>, and these modules may provide instructions so that when the instructions of a module are executed by respective encoder/decoder processing circuitry <NUM>, <NUM>, processing circuitry <NUM>, <NUM> performs respective operations of the flow chart.

Turning to <FIG>, in block <NUM>, the processing circuitry <NUM> or the processing circuitry <NUM> receives an analysis signal of an audio signal and a filtered analysis signal, the analysis signal to be analyzed for peaks. The filtered signal may be received from the low-pass filter <NUM>.

In block <NUM>, the processing circuitry <NUM> or the processing circuitry <NUM> shifts the filtered signal such that peak indices of the filtered signal match peak indices of the analysis signal. In block <NUM>, the processing circuitry <NUM> of the processing circuitry <NUM> combines the filtered signal with the analysis signal to generate a combined signal that provides at least one of a maximum positive value at each index i of the combined signal and a maximum negative value at each index i of the combined signal. In various embodiments, combining the signals may include weighting the signals as described herein. In other embodiments, combining the signals may include scaling the analysis signal as described herein.

In block <NUM>, the processing circuitry <NUM> or the processing circuitry <NUM> determines whether or not to use the combined signal to identify broad peaks and narrow peaks of an analysis signal of an audio signal. Determining whether or not to use the combined signal may be based on receiving a combined signal indicator that indicates whether to use the combined signal. The combined signal indicator may control a switch <NUM> (see <FIG> and <FIG>) that in one position connects the low-pass filter <NUM> to the peak detector <NUM> and in another position connects the combined signal being output from maximum absolute magnitude combiner <NUM>. The switch <NUM> in some embodiments is located before the peak detector <NUM> as illustrated in <FIG>. This enables both the filtered analysis signal and combined signal to be analyzed to determine whether or not to use the combined signal. The switch <NUM> in other embodiments is located between the low pass filter <NUM> and peak detector <NUM> as illustrated in <FIG>. The embodiment illustrated in <FIG> can reduce computations as the combined signal computations may not be computed in various embodiments when the combined signal is not being used.

In block <NUM>, responsive to determining to use the combined signal to identify broad and narrow peaks, the processing circuitry <NUM> or the processing circuitry <NUM> identifies broad peaks and narrow peaks of the combined signal wherein the broad peaks and narrow peaks are characterized by the index i and a magnitude.

In various other embodiments of inventive concepts, the combination signal is used only for the peaks of the analysis signal. Turning to <FIG>, in these various other embodiments, in block <NUM> the processing circuitry <NUM> or the processing circuitry <NUM> combines the filtered signal with the analysis signal only at locations of maxima of the analysis signal x(i) before the filtering of the analysis signal x(i). In block <NUM>, the processing circuitry <NUM> or the processing circuitry <NUM> uses the combined signal only at the locations of the maxima. In block <NUM>, the processing circuitry <NUM> or the processing circuitry <NUM> uses the filtered signal at all other locations.

Returning to <FIG>, in block <NUM>, responsive to determining not to use the combined signal to identify the broad peaks and the narrow peaks, the processing circuitry <NUM> or the processing circuitry <NUM> identifies broad peaks and narrow peaks of the filtered analysis signal wherein the broad peaks and narrow peaks are characterized by the index i and a magnitude.

Various operations from the flow chart of <FIG> may be optional with respect to some embodiments of encoders/decoders and related methods. Regarding methods of example embodiments <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> (set forth below), for example, operations of blocks <NUM> and <NUM> of <FIG> may be optional in these embodiments of inventive concepts.

<FIG> illustrates an embodiment where the decision of whether or not to use the combined signal is made prior to blocks <NUM> (shifting the filtered signal) and <NUM> (combining the filtered signal). Thus, the processing circuitry <NUM> or the processing circuitry <NUM> after receiving the filtered signal of the analysis signal, determines in block <NUM> whether or not to use a combined signal to identify broad peaks and narrow peaks. In this embodiment, computations and processor operations may be reduced as the shifting of the filtered signal and the combined signal computations need not be performed in various embodiments when the combined signal is not being used.

As can be seen, various embodiments of inventive concepts balance the narrow and broad peaks of an analysis signal by combining a filtered signal and non-filtered signal (i.e., an original signal) to generated a combined signal in which peak analysis is run on the combined signal.

Explanations are provided below for various abbreviations/acronyms used in the present disclosure.

Additional explanation is provided below.

The term "and/or" (abbreviated "/") includes any and all combinations of one or more of the associated listed items.

Claim 1:
A method of encoding an audio signal, the method comprising:
receiving (<NUM>, <NUM>) an analysis signal of the audio signal and a low pass filtered analysis signal;
responsive to determining to use a combined signal to identify broad peaks and narrow peaks (<NUM>, <NUM>, <NUM>) combining (<NUM>, <NUM>) the filtered signal with the analysis signal to generate the combined signal by finding a maximum absolute value of the filtered signal and the analysis signal at each index i; and
identifying (<NUM>, <NUM>) broad peaks and narrow peaks of the combined signal wherein the peaks are characterized by the index i and a magnitude.