Patent Publication Number: US-10311880-B2

Title: System for perceived enhancement and restoration of compressed audio signals

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. application Ser. No. 14/844,425 filed Sep. 3, 2015, now U.S. Pat. No. 9,576,584 issued Feb. 21, 2017, which is a continuation of U.S. application Ser. No. 13/842,479 filed Mar. 15, 2013, now U.S. Pat. No. 9,135,920 issued Sep. 15, 2015, which, in turn, claims the benefit of U.S. provisional application Ser. No. 61/730,053 filed Nov. 26, 2012, the disclosures of which are hereby incorporated in their entirety by reference herein. 
    
    
     TECHNICAL FIELD 
     The present invention relates to audio signal processing and more particularly to audio signal enhancement and restoration. 
     BACKGROUND 
     Compressed audio signals are signals which have undergone some form of data compression by a perceptual audio codec. Perceptual audio codecs reduce the amount of data used to store, transfer, or transmit an audio signal by discarding components of the audio signal that are perceived to be less audible or less perceptually important. The data compression process often introduces undesirable audible differences between the original (uncompressed) audio signal and the compressed audio signal. Different perceptual audio codecs may employ different strategies for discarding portions of the original audio signal, but the perceived characteristics of the audible differences are typically similar. 
     SUMMARY 
     A system for perceived enhancement and restoration of compressed audio signals includes a Signal Enhancer system, which modifies a compressed audio signal such that signal components and characteristics which may have been discarded or altered in the compression process are perceived to be enhanced or restored in the processed output signal. Some aspects of the Signal Enhancer include that; it may extend the bandwidth of a compressed audio signal; it may restore missing or lost in-band signal harmonics; it may enhance transients; it may restore dry signal components; it may restore reverb signal components; it may restore masked signal components; and it may phase-align harmonic signal components. In addition, the Signal Enhancer may operate on individual spatial slices originating from a stereo or multi-channel audio signal. The Signal Enhancer may also operate on the Mid-Side components of a stereo signal. 
     Other systems, methods, features and advantages will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views. 
         FIG. 1  is a block diagram that includes an example Signal Enhancer system used in conjunction with a perceptual audio encoder and decoder. 
         FIG. 2  is a block diagram that includes an example of a perceptual audio decoder integrated into the Signal Enhancer system. 
         FIG. 3  is a block diagram of an example of the Signal Enhancer system. 
         FIG. 4  is a block diagram of an example of the Signal Enhancer system operating on Mid-Side portions of a stereo signal. 
         FIG. 5  is a block diagram of an example of separate Signal Enhancer modules operating on individual spatial slices of an audio signal. 
         FIG. 6  depicts the components of an example impulse response with representation of block-based decomposition. 
         FIG. 7  is an example block diagram of the Reverb Fill module illustrated in  FIG. 3 . 
         FIG. 8  is an example estimate of sample components of an input reverberation series of samples at a given frequency. 
         FIG. 9  is an example block diagram of the Signal Quality Analyzer, the Treatment Level Adjuster, and the Display Module. 
         FIG. 10  is an example display of an output signal with bandwidth enhancement signal treatment. 
         FIGS. 11 a  and 11 b    depict example spectral views (frequency-domain) to illustrate compression by the Signal Enhancer system. 
         FIGS. 12 a  and 12 b    depict example spectral views to illustrate transient enhancement by the Signal Enhancer system. 
         FIG. 13  is an example computing system. 
     
    
    
     DETAILED DESCRIPTION 
     As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention that may be embodied in various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention. 
     Compressed audio signals are signals containing audio content, which have undergone some form of data compression, such as by a perceptual audio codec. Common types of perceptual audio codecs include MP3, AAC, Dolby Digital, and DTS. These perceptual audio codecs reduce the size of an audio signal by discarding a significant portion of the audio signal. Perceptual audio codecs can be used to reduce the amount of space (memory) required to store an audio signal, or to reduce the amount of bandwidth required to transmit or transfer audio signals. It is not uncommon to compress an audio signal by 90% or more. Perceptual audio codecs can employ a model of how the human auditory system perceives sounds. In this way a perceptual audio codec can discard those portions of the audio signal which are deemed to be either inaudible or least relevant to perception of the sound by a listener. As a result, perceptual audio codecs are able to reduce the size of an audio signal while still maintaining relatively good perceived audio quality with the remaining signal. In general, the perceived quality of a compressed audio signal can be dependent on the bitrate of the compressed signal. Lower bitrates can indicate that a larger portion of the original audio signal was discarded and therefore, in general, the perceived quality of the compressed audio signal can be poorer. 
     There are numerous types of perceptual audio codecs and each type can use a different set of criteria in determining which portions of the original audio signal will be discarded in the compression process. Perceptual audio codecs can include an encoding and decoding process. The encoder receives the original audio signal and can determine which portions of the signal will be discarded. The encoder can then place the remaining signal in a format that is suitable for compressed storage and/or transmission. The decoder can receive the compressed audio signal, decode it, and can then convert the decoded audio signal to a format that is suitable for audio playback. In most perceptual audio codecs the encoding process, which can include use of a perceptual model, can determine the resulting quality of the compressed audio signal. In these cases the decoder can serve as a format converter that converts the signal from the compressed format (usually some form of frequency-domain representation) to a format suitable for audio playback. 
     The Signal Enhancer system can modify a compressed audio signal that has been processed by a perceptual audio codec such that signal components and characteristics which may have been discarded or altered in the compression process are perceived to be restored in the processed output signal. As used herein, the term audio signal may refer to either an electrical signal representative of audio content, or an audible sound, unless described otherwise. 
     When audio signals are compressed using a perceptual audio codec it is impossible to retrieve the discarded signal components. However, the Signal Enhancer system can analyze the remaining signal components in a compressed audio signal, and generate new signal components to perceptually replace the discarded components. 
       FIG. 1  is a block diagram that includes an example of a Signal Enhancer system  110 . The Signal Enhancer system  110  can operate in the frequency domain or the time domain. The Signal Enhancer system  110  may include a Sampler Module  112 . The Sampler Module  112  may receive the input signal (X) in real time, and divide the input signal (X) into samples. During operation in the frequency domain, the Sampler Module  112  may collect sequential time-domain samples, a suitable windowing function is applied (such as the root-Hann window), and the windowed samples are converted to sequential bins in the frequency domain, such as using a FFT (Fast Fourier Transform). Similarly, as a final step in the Signal Enhancer system  110 , the enhanced frequency-domain bins can be converted by the Sampler Module  112  to the time domain using an inverse-FFT (inverse Fast Fourier Transform), and a suitable complementary window is applied (such as a root-Hann window), to produce a block of enhanced time-domain samples. An overlap of a predetermined amount, such as at least 50%, can be used to add and window the time-domain samples prior to converting them to the frequency domain. At an output on an output line  105  of the Signal Enhancer system  110 , a similar predetermined overlap, such as at least 50%, can be used when constructing the enhanced time-domain samples following conversion from the frequency-domain to the time-domain. Alternatively, the Signal Enhancer system  110  can operate in the time domain using the sequential blocks of time domain samples, and the converters may be eliminated from the Sampler Module  112 . In order to simplify the discussion and figures, further discussion and illustration of the Sampler Module  112  as well as time-to-frequency and frequency-to-time conversion is omitted. Thus, as described herein, sequential samples or a sequence of samples may interchangeably refer to a time series sequence of time domain samples, or a time series sequence of frequency domain bins corresponding to time series receipt of an input signal (X) that has been sampled by the Sampler Module  112 . 
     In  FIG. 1 , the Signal Enhancer t  10  is illustrated as being used in conjunction with a perceptual audio encoder  101  and a perceptual audio decoder  103 . An original audio signal (Z) can be provided to the perceptual audio encoder  101  on an audio signal input line  100 . The perceptual audio encoder  101  may discard audio signal components, to produce a compressed audio bitstream (Q) on a compressed bitstream line  102 . The perceptual audio decoder  103  may decode the compressed audio bitstream (Q) to produce an input signal (X) on an input signal line  104 . The input signal (X) may be an audio signal in a format suitable for audio playback. The Signal Enhancer system  110  may operate to divide the input signal (X) into a sequence of samples in order to enhance the input signal (X) to produce an output signal (Y) on an output signal line  105 . Side-chain data may contain information related to processing of the input signal (X) such as, indication of: the type of audio codec used, the codec manufacturer, the bitrate, stereo versus joint-stereo encoding, the sampling rate, the number of unique input channels, the coding block size, and a song/track identifier. In other examples, any other information related to the audio signal (X) or the encoding/decoding process may be included as part of the side chain data. The side chain data may be provided to the Signal Enhancer system  110  from the perceptual audio decoder  103  on a side chain data line  106 . Alternatively, or in addition, the side chain data may be included as part of the input signal (X). 
       FIG. 2  is a block diagram of an example of the Signal Enhancer system t  10  used in conjunction with a perceptual audio encoder and decoder. In this case the perceptual audio decoder  103  can be incorporated as part of the Signal Enhancer system  110 . As a result, the Signal Enhancer system  110  may operate directly on the compressed audio bitstream (Q) received on the compressed bitstream line  102 . Alternatively, in other examples, the Signal Enhancer system  110  may be included in the perceptual audio decoder  103 . In this configuration the Signal Enhancer system  110  may have access to the details of compressed audio bitstream (Q)  102 . 
       FIG. 3  is a block diagram of an example of the Signal Enhancer system  110 . In  FIG. 3 , the Signal Enhancer system  110  includes a Signal Treatment Module  300  that may receive the input signal (X) on the input signal line  104 . The Signal Treatment Module  300  may produce a number of individual and unique Signal Treatments (ST 1 , ST 2 , ST 3 , ST 4 , ST 5 , ST 6 , and ST 7 ) on corresponding signal treatment lines  310 . Although seven Signal Treatments are illustrated, fewer or greater numbers (n) of signal treatments are possible in other examples. The relative energy levels of each of the Signal Treatments (STn) may be individually adjusted by the treatment gains (g 1 , g 2 , g 3 , g 4 , g 5 , g 6 , and g 7 )  315  prior to being added together at a first summing block  321  to produce a total signal treatment (STT)  323 . The level of the total signal treatment (STT)  323  may be adjusted by the total treatment gain (gT)  320  prior to being added to the input signal (X)  104  at a second summing block  322 . 
     The Signal Treatment Module  300  may include one or more treatment modules ( 301 ,  302 ,  303 ,  304 ,  305 ,  306 , and  307 ), which operate on individual sample components of sequential samples of the input signal (X) to produce the Signal Treatments ( 310 ) sequentially on a sample-by-sample basis for each of the respective components. The individual sample component of the sequential samples may relate to different characteristics of the audio signal. Alternatively, or in addition, the Signal Treatment Module  300  may include additional or fewer treatment modules  300 . The illustrated modules may be independent, or may be sub modules that are formed in any of various combinations to create modules. 
       FIG. 4  is an example of the Signal Enhancer system  110  operating on Mid-Side components of the input signal (X), such as extracted by a Mid-Side component module  400 . The term “Mid-Side” refers to audio information in a stereo audio signal in which the audio information that is common to both a left and right stereo channel is considered “Mid” signal components of the audio information and the “Side” signal components of the audio information is audio information that is differs between the left and right stereo channels. Perceptual audio codecs can operate on the Mid-Side components of an audio signal in order to improve performance of the perceptual audio codecs. In this situation, the encoder can discard more of the Side signal component while retaining more of the Mid signal component. As such, in this situation, optimization of operation of the Signal Enhancer system  110  may be improved if the Signal Enhancer system  110  operates on the Mid-Side signal components of a stereo input signal (X) rather than directly on the Left and Right channels of the stereo signal. 
     In  FIG. 4  a stereo to Mid-Side module  400  may convert the stereo input signal X to a Mid-Side signal configuration Xms, which may in turn be provided to the Signal Enhancer system  110  for processing on a Mid-Side signal line  401 . The Signal Enhancer system  110  may operate on the Mid-Side signal Xms to produce an Enhanced Mid-Side signal (Yms). The Enhanced Mid-Side signal (Yms) may be supplied to a Mid-Side to Stereo module  403  on an enhanced Mid-Side signal line  402 . The Mid-Side to Stereo module  403  may convert the Enhanced Mid-Side signal (Yms) to a stereo (Left and Right channels) output signal (Y) supplied on the output line  105 . 
       FIG. 5  is an example of a set of “n” Signal Enhancer systems  110  operating on a set of “n” spatial slice streams (XSS 1 , XSS 2 , XSS 3 , . . . , XSSn) on a spatial slice stream line  501 , which may be derived from a Spatial Slice Decomposition module  500 . The Spatial Slice Decomposition module  500  may receive a stereo or multi-channel audio input signal (X) on the input signal line  104  and produce a set of spatial slice streams. The spatial slice streams may contain the outputs of a spatial filterbank which decomposes the input signal based on the spatial location of audio signal sources within a perceived stereo or multi-channel soundstage. One possible method for decomposing an input signal into spatial slices to produce spatial slice streams  501  is described in U.S. patent application Ser. No. 12/897,709 entitled “SYSTEM FOR SPATIAL EXTRACTION OF AUDIO SIGNALS”, which is herein incorporated by reference in its entirety. 
     In  FIG. 5  each of the “n” Signal Enhancers  110  produces an enhanced output stream (YSS 1 , YSS 2 , YSS 3 , . . . , YSSn) on an enhanced output stream line  502 . The “n” output streams are combined at a summing module  503  to produce the output signal (Y) on the output line  105 . Improved performance of the system may be obtained when operating separate Signal Enhancer systems  110  on individual spatial slice streams since each Signal Enhancer system  110  may operate on more isolated sample components of the audio input signal  104 , and may thus be better able to derive appropriate Signal Treatments (ST 1 , ST 2 , ST 3 , ST 4 , ST 5 , ST 6 , and ST 7 ) for each spatial slice stream (XSSn). Any number of different Signal Treatments (ST 1 , ST 2 , ST 3 , ST 4 , ST 5 , ST 6 , and ST 7 ) may be independently derived for different sample components included in samples of each of the respective spatial slice streams (XSSn). 
     In  FIG. 3 , the Signal Treatment Module  300  may include one or more treatment modules ( 301 ,  302 ,  303 ,  304 ,  305 ,  306 , and  307 ) to derive Signal Treatments (ST 1 , ST 2 , ST 3 , ST 4 , ST 5 , ST 6 , and ST 7 ) for individual sample components of respective sequential samples of either an audio signal, or a spatial slice stream produced from an audio signal. Each of the treatment modules ( 301 , 302 ,  303 ,  304 ,  305 ,  306 , and  307 ) may derive Signal Treatments (ST 1 , ST 2 , ST 3 , ST 4 , ST 5 , ST 6 , and ST 7 ) for different characteristics related to the audio signal or spatial stream. Example audio signal characteristics include bandwidth, harmonics, transients, expansion, reverberation, masking and harmonic phase alignment. In other examples, signal treatments may be derived for additional or fewer characteristics related to an audio signal. Signal treatments may be derived for missing parts of the audio signal that correspond to the characteristic of the respective treatment module. Accordingly, the signal treatments may effectively supply replacement portions of various different characteristics of the audio signal that are identified as missing from individual sample components in a series of samples. Thus, some of the sample components in a series where lost parts of a respective characteristic are identified may have signal treatments applied, while other sample components in the sequence where no missing parts of the respective characteristic are identified may have no signal treatments applied. 
     With regard to the characteristic of bandwidth being a missing part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, is that they may limit the bandwidth of a compressed signal by discarding signal components above some predetermined threshold. For example, a perceptual audio codec may consider all frequency components above a predetermined frequency, such as above 12 kHz, to be less perceptually important and thus discard them. The Bandwidth Extension module  301  may operate on the input signal (X) to generate signal components, or signal treatments (ST 1 ), above such a predetermined cut-off frequency (Fx). The Bandwidth Extension module  301  may analyze the input signal (X) to determine the cut-off frequency (Fx) of the input signal, if one exists. Knowledge of the cut-off frequency (Fx) may be used to guide the generation of a Signal Treatment stream (ST 1 ) with new signal components above the predetermined cut-off frequency (Fx) to compensate for the absence of this characteristic in the corresponding sample components of the audio signal. 
     Alternatively, or in addition, in cases where side-chain information  106  is available from the perceptual audio decoder  103 , as shown in  FIG. 1 , the cut-off frequency (Fx) may be provided to the Bandwidth Extension module  301 . In other cases, where the perceptual audio decoder  103  and the Signal Enhancer system  110  are integrated, such as in the example of  FIG. 2 , the cut-off frequency (Fx) may be provided by the perceptual audio decoder  103  directly to the Bandwidth Extension module  301 . 
     With regard to the characteristic of harmonics being a missing or lost part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, may discard certain “middle harmonics” within the compressed signal at a given point in time within the signal. For example, at some point in time, a perceptual audio codec may retain the fundamental frequency component of a particular sound source along with several lower order harmonics. The perceptual audio codec may also preserve some or all of the highest order harmonics of the signal, while discarding one or more of the middle harmonics of the sound source. The Inband Harmonic Fill module  302  may analyze the input signal (X)  104  to search for events where the perceptual audio codec has discarded one or more middle harmonics characteristics of the audio signal. The Inband Harmonic Fill module  302  may operate to generate a Signal Treatment stream (ST 2 ) with new middle harmonics to apply to the audio signal in response to this characteristic missing from the sample components of the audio signal. 
     With regard to the characteristic of transients being a missing part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, may cause a “smearing” of transient signals. This type of coding artifact can be described as “pre-echo” and can most readily be heard when the transient signal has a sharp attack and is relatively loud in relation to the other signal components at the time of the transient event. Pre-echo tends to cause a perceived dulling of the transient signal components. The Transient Enhancement module  303  may seek to identify this characteristic as missing from component samples of the audio signal, and derive a signal treatment to restore the perceived sharp attack of transient signal components. The Transient Enhancement module  303  may analyze the input signal (X) and may identify transient events and transient signal components to identify the missing characteristic. The Transient Enhancement module  303  may operate to generate a Signal Treatment stream (ST 3 ) containing new transient signal components for application to the audio signal in order to enhance the perception of the onsets of existing transient signal components. 
     An example method for detecting transients in an audio signal may include the following activities. The magnitudes of the FFT bins for the current block of time-domain input signal samples are computed and are stored in a history buffer. The magnitudes of the current set of FFT bins are compared to the magnitudes of a past set of FFT bins on a bin-by-bin basis, where the current set and the past set represent a series of sample components of a respective series of samples. The magnitudes of the past set of FFT bins were previously stored in the history buffer and are retrieved for this comparison. The number of bins for which the magnitude of the current FFT bin exceeds the magnitude of the past FFT bin by a predetermined threshold, such as a Magnitude Threshold, is counted. If the count exceeds a determined Count Threshold, then it is determined that the current block of time-domain samples contains a transient event. A predetermined value, such as 20 dB, may be suitable for the Magnitude Threshold for detecting transients. The past FFT bins can be taken from one or two blocks behind the current block of samples. That is, the history buffer can represent a delay of one or two processing blocks in sequential processing of sample components of a sample. 
     With regard to the characteristic of expansion being a missing or lost part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, may cause a perceived narrowing of the stereo soundstage perceived by a listener when the audio signal is produced as an audible sound. That is, sounds which are perceived to be located to the extreme left or right in the original uncompressed audio signal may be attenuated relative to other sounds during the compression process. As a result, the resulting audio signal may be perceived to be more “monophonic” and less “stereophonic”. The Soundstage Enhancement module  304  may identify missing or lost parts of the audio signal related to this characteristic in a series of sample components, and amplify signal components which are perceived to be located to the extreme left or right in the input signal (X) as generated signal treatments. For example, the Soundstage Enhancement module  304  may operate to extract extreme left or right signal components and generate a Signal Treatment stream (ST 4 ) containing amplified versions of these signal components. One possible method for extracting extreme left or right signal components is described U.S. patent application Ser. No. 12/897,709 entitled “SYSTEM FOR SPATIAL EXTRACTION OF AUDIO SIGNALS”, which is herein incorporated by reference in its entirety. 
     With regard to the characteristic of reverberation being a missing or lost part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, is that they may cause a perceived reduction in the “ambience” or “reverberation” characteristics in the audio signal. This reduction of reverberation characteristic may result in a perceived “dulling” of the overall sound, as well as a perceived loss of detail in the sound due to the lost part of the audio signal. The reduction of reverberation may also reduce the perceived size and width of the overall sound field. The Reverb Fill module  305  may operate to decompose the input signal (X) into dry and reverberant signal components. The Reverb Fill module  305  may then operate to identify the missing part of the audio signal in a corresponding sample component, increase the perceived level of the reverberation in the sample component, and generate a Signal Treatment stream (ST 5 ) that may contain new reverberant signal components, and may contain amplified reverberant signal components for application to only those sample components of a sequence of samples in which the part of the audio signal is determined to be missing. 
     A possible method for decomposing the input signal (X) into dry and reverberant signal components is described in U.S. Pat. No. 8,180,067 entitled “SYSTEM FOR SELECTIVELY EXTRACTING COMPONENTS OF AN AUDIO INPUT SIGNAL,” and U.S. Pat. No. 8,036,767 entitled “SYSTEM FOR EXTRACTING AND CHANGING THE REVERBERANT CONTENT OF AN AUDIO INPUT SIGNAL,” both of which are herein incorporated by reference in their entirety. 
     With regard to the characteristic of mask signals being a missing or lost part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, may cause a perceived reduction in the clarity and low-level details in the signal. This may be caused by the perceptual audio codec discarding signal components which, according to, for example, a perceptual model, are believed to be inaudible to most listeners. Typically the perceptual model will identify certain first signal components as inaudible if there are other dominant signal components that may mask the first signal components. That is, due to the masking properties of the human auditory system, the dominant signal components may (mask) render the first signal components inaudible. However, each listener&#39;s masking properties are somewhat different, and the perceptual model in the perceptual audio codec can only approximate the masking properties of one listener. As a result, the perceptual audio codec may discard certain signal components which are audible to some listeners. 
     The Masked Signal Fill module  306  may operate to identify the missing parts of the corresponding sample components of an audio signal, and amplify low-level signal components so that they are just at the threshold of being masked. The Masked Signal Fill module  306  may receive the input signal (X) and apply a perceptual model to determine the “simultaneous masking threshold” for each frequency. The simultaneous masking threshold indicates the level at which the perceptual model determines that the signal component at a certain frequency is masked by the signal components at other frequencies. For example, a signal component at 1100 Hz may be inaudible if there is a sufficiently loud signal component at 1000 Hz. In this example, the simultaneous masking threshold indicates the level at which signal components at other frequencies (such as 1100 Hz) will be masked by the signal component at 1000 Hz. Therefore, if the level of the signal component at 1100 Hz falls below the simultaneous masking threshold, then the perceptual model determines that this signal component will be masked (inaudible). 
     Continuing with this example, if the Masked Signal Fill module  306  determines that the signal component at 1100 Hz falls below the simultaneous masking threshold and thereby identify lost parts of the corresponding sample components of audio signal, the Masked Signal Fill module  306  may generate a Signal Treatment stream (ST 6 ) that may contain an amplified version of the signal component at 1100 Hz such that the signal component at 1100 Hz reaches the simultaneous masking threshold. Similarly, the Masked Signal Fill module  306  may perform this operation for signal components at all frequencies to identify missing parts of corresponding sample components, such that it may generate a Signal Treatment stream (ST 6 ) containing amplified signal components at various frequencies so the signal components at all frequencies may reach the simultaneous masking threshold. 
     An example of a perceptual model for determining the simultaneous masking threshold is described in U.S. Pat. No. 8,180,067 entitled ‘SYSTEM FOR SELECTIVELY EXTRACTING COMPONENTS OF AN AUDIO INPUT SIGNAL,’ and U.S. Pat. No. 8,036,767 entitled “SYSTEM FOR EXTRACTING AND CHANGING THE REVERBERANT CONTENT OF AN AUDIO INPUT SIGNAL,” both of which are herein incorporated by reference in their entirety. In general, the perceptual model may perform smoothing based on at least one of temporal-based auditory masking estimates, and frequency-based auditory masking estimates during generation of component samples over time (such as over a number of snapshots of a component sample for a series of samples). 
     The phases of the fundamental and harmonic components of a harmonically rich signal can tend to track each other over time. That is the fundamental and harmonic components of a harmonically rich signal can tend to be aligned in some way. With regard to the characteristic of harmonics phase alignment being a missing or lost part of an audio signal, some perceptual audio codecs, including those operating at relatively low bitrates, may cause the phases of the harmonics of a given sound source to lose their alignment with respect to phase. This loss of phase alignment as a missing part of sample components can occur on at least the higher-order harmonics of a signal. This loss of phase alignment may be perceived by the listener in different ways. One common result of a loss of phase alignment is “swooshing” sound which is typically audible in the higher frequencies. The Harmonic Phase Alignment module  307  may operate to force harmonically related signal components to be phase-aligned over time. The Harmonic Phase Alignment module  307  may analyze the input signal (X) and look for tonal signal components (as opposed to transient or noise-like signal components) and determine if the tonal components are harmonically related. In addition, the Harmonic Phase Alignment module  307  may determine if the phases of any harmonically related tonal components are aligned over time. Where the characteristics in the corresponding sample components are identified as missing part of the audio signal, namely phase alignment of harmonically related tonal components, the phases of any harmonics which are not in alignment may be adjusted. The Harmonic Phase Alignment module  307  may generate a Signal Treatment stream (ST 7 ) that may contain a phase-aligned version of these unaligned tonal components. Alternatively, or in addition, the Harmonic Phase Alignment module  307  may provide some other form of alignment of the tonal components. 
     If the input signal (X)  104  is stereo or multichannel, then it may be decomposed into spatial slices  501  prior to being processed by the Signal Enhancer  110  as described with reference to  FIG. 5 . A system and method for decomposing a signal into spatial slices is described in U.S. patent application Ser. No. 12/897,709 entitled “SYSTEM FOR SPATIAL EXTRACTION OF AUDIO SIGNALS”, which is herein incorporated by reference in its entirety. Decomposing the input signal into spatial slices may allow more precise application of the various treatments ( 301 ,  302 ,  303 ,  304 ,  304 ,  305 ,  306 , and,  307 ) to the signal components contained in each of the spatial slices (XSS 1 , XSS 2 , XSS 3 , . . . , XSSn)  501 . For example, if a transient signal is located within a given spatial slice, then the Transient Enhancement treatment  303  may only be applied in that spatial slice, while not affecting the non-transient signal components in the other spatial slices. 
     Once the appropriate treatments have been applied to each of the spatial slices, the enhanced output streams (YSS 1 , YSS 2 , YSS 3 , . . . , YSSn)  502  from each of the spatial slices may be combined at a summing module  503  to produce the composite output signal (Y) on the output line  105 . 
     The various treatments applied to the signal components in a given spatial slice may vary, over time as the content of the input signal (X) changes. Using the above example, the Transient Enhancement treatment  303  may only be applied to some of the sample components in a given spatial slice during times when a transient signal component has been detected in that spatial slice. 
     Audio signals such as music or speech typically contain some amount of reverberation. This reverberation may be due to the room (e.g. a concert hall) in which the audio signal was recorded, or it may be added electronically. The source of the reverberation is referred to as a reverberant system. The characteristics of the reverberation are determined by the impulse response of the reverberant system. The impulse response of the reverberant system can be divided into a set of blocks. The Impulse Response Estimator  910  operates on the input signal to produce a perceptually relevant estimate of the frequency domain representation of the impulse response. Generally, the impulse response estimator may operate on the input signal to produce a block-based estimate of the impulse response. The block-based estimate of the impulse response consists of a plurality of block estimates which correspond to frequency domain estimates of the impulse response. 
       FIG. 6  is an example of an impulse response. The first vertical line represents a direct sound component  602  while the remaining lines represent reflections. The height of each line indicates its amplitude and its location on the time axis (t) indicates its time-of-arrival at a sound measurement device, such as a microphone. As time goes on, the number of reflections increases to the point where it is no longer possible to identify individual reflections. Eventually the reflections evolve into a diffuse exponentially decaying system. This is typically referred to as the reverberant tail  604  of the impulse response. 
     The so-called early reflections  606  arrive soon after the direct sound component  602  and have a different perceptual effect than the reverberant tail. These early reflections provide perceptual cues regarding the size of the acoustic space and the distance between the source of the audio signal and the microphone. The early reflections  606  are also important in that they can provide improved clarity and intelligibility to a sound. The reverberant tail also provides perceptual cues regarding the acoustic space. 
     An impulse response can also be viewed in the frequency domain by calculating its Fourier transform (or some other transform), and so a reverberant system can be described completely in terms of its frequency domain representation H(ω). The variable ω indicates frequency. The Fourier representation of the impulse response provides both a magnitude response and a phase response. Generally speaking the magnitude response provides information regarding the relative levels of the different frequency components in the impulse response, while the phase response provides information regarding the temporal aspects of the frequency components. 
     The Reverb Fill Module  305  may produce a frequency domain estimate of the estimate of the magnitude of the reverberant energy in the input signal. This estimate of the magnitude of the reverberant energy is subtracted from the input signal, thus providing an estimate of the magnitude of the dry audio signal component of the input signal. The phase of the reverberant input signal is used to approximate the phase of an original dry signal. As used herein, the term “dry signal,” “dry signal component,” “dry audio signal component,” or “direct signal component” refers to an audio signal or a portion of an audio signal having almost no reverberant energy present in the audio signal. Thus the original dry signal may have almost no reverberant energy since it consists almost entirely of the direct sound impulse  602 . As used herein, the terms “reverberant energy,” “reverberant input signal,” “reverberant component,” “reverberant signal component,” “reverberation component,” or “reverberation signal component” refer to the early reflections, and the reverberant tail of an audio signal. In addition, with respect to audio signals, as used herein, the term “component” or “components” refer to one or more components. 
     If the phase of the reverberant input signal is used to approximate the phase of an original dry signal using the entire impulse response as a whole, then it is likely that severe time-domain artifacts would be audible in the processed signal. Therefore, the Reverb Fill Module  305  can divide the estimate of the overall impulse response into blocks  608 , and processing can be performed in a block-based manner. The pre-determined length of the blocks  608  can be short enough that the human ear does not perceive any time-domain artifacts due to errors in the phase of the processed output signals. 
     Two factors combine to determine the rate at which a reverberant input signal decays at a given frequency. The first factor is the rate of decay of the dry (i.e. non-reverberant) sound soume, and the second is the rate of decay of the reverberant system. While the rate of decay of the reverberant system at a given frequency is relatively constant over time, the rate of decay of the dry sound source varies continuously. The fastest rate of decay that is possible for the input signal (X) occurs when the dry sound source stops at a given frequency, and the decay of the signal is due entirely to the decay of the reverberant system. In the example of  FIG. 6 , the dry sound source may stop at the time of early reflections  606 , for example. The rate of decay of the reverberant system at a given frequency can be determined directly by the impulse response of the reverberant system at that frequency. Therefore, the input signal (X) should not decay at a rate that is faster than the rate dictated by the impulse response of the reverberant system. 
       FIG. 7  shows a more detailed view of the Reverb Fill module  305 . The Reverb Fill module  305  receives the input signal (X)  104  and may provide a signal treatment  310  ST 5  as an output. An Impulse Response Estimator  710 , a Reverb Drop-out Detector Module  711  and a Reverb Drop-out Fill Module  712 , and a Decompose Processor module  713  may be included in the Reverb Fill module  305 . In other examples, fewer or greater numbers of modules may be described to accomplish the functionality discussed. 
     The Impulse Response Estimator  710  may be used to derive an estimate of the impulse response of the reverberant system of the input signal (X). One possible method for estimating the impulse response of a reverberant system of an input signal (X) is described in U.S. Pat. No. 8,180,067 entitled “SYSTEM FOR SELECTIVELY EXTRACTING COMPONENTS OF AN AUDIO INPUT SIGNAL,” and U.S. Pat. No. 8,036,767 entitled “SYSTEM FOR EXTRACTING AND CHANGING THE REVERBERANT CONTENT OF AN AUDIO INPUT SIGNAL,” both of which are herein incorporated by reference in their entirety. 
       FIG. 8  is an example of an estimate of a reverberation component of an audio signal that can be estimated by the Reverb Fill module  305 . The Decompose Processor module  713  may operate on the input signal (X) to derive an Input Reverb Component  802 , which is one of the previously discussed sample components of the input signal. The Input Reverb Component  802  may consist of an estimate of the reverberant component (reverberation) or characteristic of the input signal. One possible method for deriving the Input Reverb Component  802  of an input signal (X) is described in U.S. Pat. No. 8,180,067 entitled “SYSTEM FOR SELECTIVELY EXTRACTING COMPONENTS OF AN AUDIO INPUT SIGNAL,” and U.S. Pat. No. 8,036,767 entitled “SYSTEM FOR EXTRACTING AND CHANGING THE REVERBERANT CONTENT OF AN AUDIO INPUT SIGNAL,” both of which are herein incorporated by reference in their entirety. An Expected Decay Rate  806  may be directly determined for each sequential sample from the impulse response by the Decompose Processor module  713 . In  FIG. 8 , the Input Reverb Component  802  is illustrated as a sequence of sample components at a given frequency over a period of time (t). It can be seen that the Input Reverb Component  802  grows (increases) at some points in time and decays at other points in time. 
     Referring to  FIGS. 7 and 8 , the Reverb Drop-out Detector  711  may compare the decay rate of the Input Reverb Component  802  to the Expected Decay Rate  806  at different points in time. The Reverb Drop-out Detector  711  may identify in the individual sample components one or more Reverb Drop-outs  804  as missing or lost parts of the audio signal, where the Input Reverb Component  802  falls below the Expected Decay Rate  806 . The Reverb Drop-out Fill Module  712  may operate to produce a reverb fill treatment, as a signal treatment to compensate for the lost energy due to the Reverb Drop-out  804 . As illustrated in  FIG. 8 , the signal treatment is only applied to those sample components in which part of the audio signal is missing. Accordingly, as a sequence of sample components are being sequentially processed, the signal treatment may be selectively applied to only those sample components identified as having missing or lost parts of the input signal. 
       FIG. 9  is a block diagram example of the Signal Enhancer module  110  coupled with an Enhancement Controller Module  900 . The Enhancement Controller Module  900  may include a Treatment Level Adjuster module  901 , a Signal Quality Analyzer module  902 , and a Display module  906 . During operation, the Signal Treatment Module  300  may provide Treatment Requirement Indicators to the Signal Quality Analyzer  902 . The Treatment Requirement Indicators can provide relevant information from the various treatment modules ( 301 ,  302 ,  303 ,  304 ,  305 ,  306 , and  307 ) regarding the amount of signal treatment that is required due to identified missing parts of the input signal (X). 
     As one example of a possible Treatment Requirement Indicator, the Bandwidth Extension module  301  ( FIG. 3 ) may provide an estimate of the cut-off frequency (Fx) of the input signal (X). Lower values for the cut-off frequency may suggest that the Perceptual Audio Encoder  101  acted more aggressively on the Original Audio Signal (Z)  100  ( FIG. 1 ), and therefore the input Signal (X) may be missing a significant portion of the high frequency part of the signal resulting in poorer perceived quality by a listener if the audio signal were played back. Alternatively, or in addition, the Bandwidth Extension treatment module  301  may provide an estimate of the ratio of the missing energy of the signal above the cut-off frequency that was discarded by the Perceptual Audio Encoder t 01  versus the energy of the signal that was retained. Larger values for this ratio may suggest that a more significant portion of the Original Audio Signal (Z)  100  is missing (was discarded) and therefore the Input Signal (X) may have poorer perceived quality by a listener if the audio signal were played back. 
     As another example, the Inband Harmonic Fill module  302  ( FIG. 3 ) may provide an indication of how frequently middle (inband) harmonics have been discarded and are missing from the audio signal. Alternatively, or in addition, the Inband Harmonic Fill module  302  may provide an estimate of the energy of the discarded harmonics. Greater levels of missing (discarded) inband harmonic energy may indicate that the input signal (X) has poorer perceived quality by a listener if the audio signal were played back. 
     As another example, the Reverb Fill module  305  may provide a measure of the reverberant energy in the input signal (X), as well as an estimate of the lost reverberant energy that was discarded by the Perceptual Audio Encoder  101 . Greater levels of missing reverberant energy may indicate that the input signal (X) has poorer perceived quality by a listener if the audio signal were played back. 
     As yet another example, the Soundstage Expansion module  304  ( FIG. 3 ) may provide an estimate of the amount of missing or lost Side (left minus right) energy and Mid (left plus right) energy that was discarded by the Perceptual Audio Encoder  101 . Alternatively, or in addition, the Soundstage Expansion module  304  may provide a measure of the energy of extreme left or right signal components relative to the total energy of the input signal (X). Lower levels of extreme left or right signal energy may indicate that parts are missing from the input signal  104  resulting in poorer perceived quality by a listener if the audio signal were played back. 
     As another example, the Transient Enhancement module  303  may provide an indication of missing parts of the audio signal by indicating how frequently transients occur in the input signal (X)  104 . As another example, the Masked Signal Fill  306  module may examine the input signal (X) and provide an indication of how frequently signal components that fell below the simultaneous masking threshold were discarded and are therefore missing from the audio signal. If signal components are frequently missing (discarded) then this may indicate that the input signal (X) may have poorer perceived quality by a listener if the audio signal were played back. 
     As another example, the Harmonic Phase Alignment module  307  ( FIG. 3 ) may examine the input signal (X) and provide an indication of how frequently harmonically related signal components are not phase-aligned. Alternatively, or in addition, the Harmonic Phase Alignment module  307  may provide a measure of the energy of the harmonic components that are not phase aligned. Higher levels of harmonic components that are not phase-aligned may suggest that parts of the input signal (X) t 04  are lost, which may have poorer perceived quality by a listener if the audio signal were played back. 
     The Signal Quality Analyzer  902  may receive the Treatment Requirement Indicators and derive Signal Quality Indicators. Alternatively, or in addition, the Signal Quality Analyzer  902  may receive Meta-data from a recta-data buffer  905 . The Meta-data may provide a direct indication of the perceived quality of the input signal (X). The Meta-data included in the meta-data buffer  905  may be provided by the Perceptual Audio Decoder  103 , the audio signal, or some other source. Alternatively, the meta-data may be provided directly to the Signal Quality Analyzer  902 , and the meta-data buffer  905  may omitted. The Metadata may provide information regarding the origin and characteristics of the input signal including but not limited to the cut-off frequency (Fx), the length of the current processing block used by the Perceptual Audio Encoder  101 , the bitrate of the input signal (X), and/or the sampling rate of the input signal (X). 
     Using one or more of the received Treatment Requirement Indicators and/or the Metadata, the Signal Quality Analyzer  902  may derive an estimate of the perceived overall quality of the input signal (X). Alternatively, or in addition, Signal Quality Analyzer  902  may derive estimates of the perceived quality of the input signal with respect to the individual signal treatments. 
     The relative energy levels of the Signal Treatments  310  that the Signal Enhancer module  110  applies to the input signal (X) may be varied depending on the relative quality of the input signal and/or the sample components of the input signal. For example, in situations where the quality of the input signal (X) is relatively good, then the relative energy levels of the Signal Treatments  310  may be reduced. Similarly, in situations where the quality of the input signal (X) is relatively poor, then the relative energy levels of the Signal Treatments  310  may be correspondingly increased. The Treatment Level Adjuster  901  may independently alter the relative energy levels of the Signal Treatments  310  by increasing or decreasing one or more of the treatment gains (g 1 , g 2 , g 3 , g 4 , g 5 , g 6 , and g 7 )  315 . Alternatively, or in addition, the Treatment Level Adjuster  901  may alter the total relative energy level of the Signal Treatments  310  by increasing or decreasing the total treatment gain (gT)  320 . 
     The Treatment Level Adjuster  901  may receive as parameters one or more Signal Quality Indicators from the Signal Quality Analyzer  902 . The Treatment Level Adjuster  901  may use one or more of the available Signal Quality Indicators  903  to independently determine the appropriate values for each of the individual treatment gains (g 1 , g 2 , g 3 , g 4 , g 5 , g 6 , and g 7 )  315 , as well as the appropriate value for the total treatment gain (gT)  320 . Alternatively, or in addition, the Signal Quality Analyzer  1002  may use Meta-data that may provide a direct indication of the perceived quality of the input signal (X) to determine the appropriate values for each of the individual treatment gains (g 1 , g 2 , g 3 , g 4 , g 5 , g 6 , and g 7 )  315 , as well as the appropriate value for the total treatment gain (gT)  320 . In this way, the levels of the various Signal Treatments  310  may be automatically adjusted to match the requirements of the input signal (X). 
     The Treatment Level Adjuster module  901  may also consider other parameters when determining the individual treatment gains and the total treatment gain. Thus, for example, certain of the individual treatment gains may be decreased and certain other of the individual treatment gains may be increased by the Treatment Level Adjuster module  901  based on the parameters. Such parameters may include metadata of the input signal, such as a genre of the audio signal be produced, such that, for example, for a rock music genre the transient treatment level gain may be increased to emphasize drums, and classical music genre, the reverberation treatment level gain may be increased to emphasize the music hall effect. In another example, treatment gains may be adjusted when the input signal is talk versus music. Any number of treatment level gains and parameters may be used in other examples. The gain adjustments by the Treatment Level Adjuster module  901  may also be rules based, such as when there is treatment of the characteristic of reverberation above a predetermined threshold, gain for the characteristic of transient enhancement may be correspondingly reduced based on, for example a ratio. User settings may also be applied to the Treatment Level Adjuster module  901  to effect the amount of treatment gains that are selectively applied under certain conditions or modes of operation. 
     The Display Module  906  may provide a visual representation of the quality of the input signal (X), the output signal (Y), as well as different aspects of performance and/or operation of the Signal Enhancer module  110 . As shown in  FIG. 9 , the Display Module  906  may receive and display one or more of the Signal Treatments (ST 1 , ST 2 , ST 3 , ST 4 , ST 5 , ST 6 , and ST 7 )  310 . For example, the Display Module  906  may display the Signal Treatment ST 1  due to the Bandwidth Extension module  301 . In this case, the Display Module  906  may produce a visual display of a spectral representation of the new signal components above the cut-off frequency (Fx) which have been generated by the Bandwidth Extension module  301 . Alternatively, or in addition, the Display Module  906  may display a spectral or time domain representation of the output signal (Y) which includes all of the applied Signal Treatments  310 . Alternatively, or in addition, the Display Module  906  may receive one or more Signal Quality Indicators from the Signal Quality Analyzer  902 . The Display Module  906  may in turn produce a visual representation of the quality of the input signal (X). The Display Module  906  may also produce a visual representation of the overall level of the Signal Treatments  310  being applied to the input signal (X). The Display Module  906  may also produce a visual representation of the quality of the output signal (Y). Thus, a user viewing the display may be provided a visual indication of the quality of the input signal (X), and also the extent to which, or level, that the treatment signals are being applied. 
       FIG. 10  is an example display of an output signal (Y) in which the signal treatment of bandwidth enhancement is indicated. In  FIG. 10 , above a cutoff frequency of about 12 kHz, a portion of an input signal (X)  1002  has been discarded during previous encoding, as indicated by the portion of the input signal (X)  1002  being in a range of −120 to −150 dB. The Bandwidth Extension module  301  may identify parts of the audio signal are missing or lost and provide a signal treatment  1004  over the same range of frequencies. The signal treatment  1004  can be applied to the untreated part of the input signal (X)  1002 . Accordingly, a user can view a display and be provided with an indication of not only the quality of what the untreated output signal would have looked like, but also the level and extent of treatment being provided by the signal enhancer system  110 . In other examples, other forms of displays may be created to indicate any of one or more treatments being applied. 
       FIGS. 11 a  and 11 b    illustrate example results of the operation of the Bandwidth Extension module  301 .  FIG. 11 a    shows a spectral view (frequency-domain) of a short block of an audio signal before and after it has been compressed by a perceptual audio codec. The curve of the original signal is shown, where it can be seen that significant signal energy continues up to the Nyquist frequency. The compressed audio signal curve shows this same signal after it has been compressed by a perceptual audio codec. In  FIG. 11 a   , it can be seen that, above a certain cut-off frequency (Fx), the signal components have been discarded, and what remains is simply low-level noise. 
       FIG. 11 b    shows a spectral view of an example of a short block of a compressed audio signal before and after it has been processed by the Bandwidth Extension module  301 . Here the compressed audio signal is illustrated with the signal components above the cut-off frequency (Fx) discarded. The curve of the same compressed audio signal after it has been processed by the Bandwidth Extension module  301  is included in  FIG. 11 b   . It can be seen that new signal components have been generated above the cut-off frequency (Fx). These new signal components have been generated based on, and/or using at least some of the signal components below the cut-off (Fx). 
       FIGS. 12 a  and 12 b    illustrate example operation of the Transient Enhancement module  303 .  FIG. 12 a    shows a time-domain view of a transient signal component. The upper panel of  FIG. 12 a    shows the original signal. It can be seen that the start signal is nearly silent and is followed by a sharp transient signal, which decays over time. The lower panel of  FIG. 12 a    shows a similar transient signal component after it has been compressed by a perceptual audio codec. It can be seen that the transient is no longer sharply defined. Moreover, the compressed audio signal now has energy arriving before the actual transient. This is an example of the so-called “pre-echo” which was described earlier. 
       FIG. 12 b    shows a time-domain view of an example transient signal component before and after it has been processed by the Transient Enhancement module  303 . The upper panel of  FIG. 12 b    shows a compressed audio signal having numerous transients over time. It can be seen that the transients are not very pronounced in the signal. The lower panel of  FIG. 12 b    shows the same transient signal after it has been processed by the Transient Enhancement module  303 , where the onsets of the individual transients are now sharply defined and easily visible. 
       FIG. 13  is an example computing system  1300 . The computer system  1300  may include a set of instructions that can be executed to cause the computer system  1300  to perform any one or more of the methods or computer based functions described. The computer system  1300  may operate as a standalone device, may be part of another device, or may be connected, such as using a network, to other computer systems or peripheral devices. 
     In a networked deployment, the computer system  1300  may operate in the capacity of a server or as a client user computer in a server-client user network environment, as a peer computer system in a peer-to-peer (or distributed) network environment, or in various other ways. The computer system  1300  can also be implemented as or incorporated into various devices, such as a telematics system, for example, in a vehicle. In other examples, any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine may be used. The computer system  1300  may be implemented using electronic devices that provide voice, audio, video or data communication. While a single computer system  1300  is illustrated, the term “system” may include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions. 
     The computer system  1300  may include a processor  1302 , such as a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), or some combination of different or the same processors. The processor  1302  may be a component in a variety of systems. For example, the processor  1302  may be part of a head unit or amplifier in a vehicle. The processor  1302  may be one or more general processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, digital circuits, analog circuits, combinations thereof, or other now known or later developed devices for analyzing and processing data. The processor  1302  may implement a software program, such as code generated manually or programmed. 
     The processor  1302  may operate and control at least a portion of the system. The term “module” may be defined to include one or more executable modules. The modules may include software, hardware, firmware, or some combination thereof executable by a processor, such as processor  1302 . Software modules may include instructions stored in memory, such as memory  1304 , or another memory device, that may be executable by the processor  1302  or other processor. Hardware modules may include various devices, components, circuits, gates, circuit boards, and the like that are executable, directed, or controlled for performance by the processor  1302 . 
     The computer system t  300  may include a memory  1304 , such as a memory  1304  that can communicate via a bus  1308 . The memory  1304  may be a main memory, a static memory, or a dynamic memory. The memory  1304  may include, but is not limited to computer readable storage media such as various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, magnetic tape or disk, optical media and the like. In one example, the memory  1304  includes a cache or random access memory for the processor  1302 . In alternative examples, the memory  1304  may be separate from the processor  1302 , such as a cache memory of a processor, the system memory, or other memory. The memory  1304  may include an external storage device or database for storing data. Examples include a hard drive, compact disc (“CD”), digital video disc (“DVD”), memory card, memory stick, floppy disc, universal serial bus (“USB”) memory device, or any other device operative to store data. 
     The computer system  1300  may or may not further include a display unit  1310 , such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a projector, or other now known or later developed display device for outputting determined information. The display  1310  may act as an interface for the user to control the functioning of the processor  1302 , or specifically as an interface with the software stored in the memory  1304 . 
     The computer system  1300  may include an input device  1312  configured to allow a user to interact with any of the components of computer system. The input device  1312  may be a microphone to receive voice commands, a keypad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display, remote control or any other device operative to interact with the computer system  1300 . A user of the system may, for example, input criteria or conditions to be considered by the system and/or the telematics system. 
     The computer system  1300  may include computer-readable medium that includes instructions or receives and executes instructions responsive to a propagated signal so that a device connected to a network  1326  can communicate voice, video, audio, images or any other data over the network  1326 . The instructions may be transmitted or received over the network  1326  via a communication port or interface  1320 , or using a bus  1308 . The communication port or interface  1320  may be a part of the processor  1302  or may be a separate component. The communication port  1320  may be created in software or may be a physical connection in hardware. The communication port  1320  may be configured to connect with a network  1326 , external media, the display  1310 , or any other components in the computer system  1300 , or combinations thereof. The connection with the network  1326  may be a physical connection, such as a wired Ethernet connection or may be established wirelessly. The additional connections with other components of the computer system  1300  may be physical connections or may be established wirelessly. The network  1326  may alternatively be directly connected to the bus  1308 . 
     The network  1326  may include wired networks, wireless networks, Ethernet AVB networks, or combinations thereof. The wireless network may be a cellular telephone network, an 802.11, 802.16, 802.20, 802.1Q or WiMax network. Further, the network  1326  may be a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to TCP/IP based networking protocols. One or more components of the system may communicate with each other by or through the network  1326 . 
     While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention. Additionally, the features of various implementing embodiments may be combined to form further embodiments of the invention.