Exemplary Embodiments relate to packet loss concealment, and more particularly, to a packet loss concealment method and apparatus and an audio decoding method and apparatus capable of minimizing deterioration of reconstructed sound quality when an error occurs in partial frames of an audio signal.
When an encoded audio signal is transmitted over a wired/wireless network, if partial packets are damaged or distorted due to a transmission error, an erasure may occur in partial frames of a decoded audio signal. If the erasure is not properly corrected, sound quality of the decoded audio signal may be degraded in a duration including a frame in which the error has occurred and an adjacent frame.
Regarding audio signal encoding, it is known that a method of performing time-frequency transform processing on a specific signal and then performing a compression process in a frequency domain provides good reconstructed sound quality. In the time-frequency transform processing, a modified discrete cosine transform (MDCT) is widely used. In this case, for audio signal decoding, the frequency domain signal is transformed to a time domain signal using inverse MDCT (IMDCT), and overlap and add (OLA) processing may be performed for the time domain signal. In the OLA processing, if an error occurs in a current frame, a next frame may also be influenced. In particular, a final time domain signal is generated by adding an aliasing component between a previous frame and a subsequent frame to an overlapping part in the time domain signal, and if an error occurs, an accurate aliasing component does not exist, and thus, noise may occur, thereby resulting in considerable deterioration of reconstructed sound quality.
When an audio signal is encoded and decoded using the time-frequency transform processing, in a regression analysis method for obtaining a parameter of an erasure frame by regression-analyzing a parameter of a previous good frame (PGF) from among methods for concealing an erased frame, concealment is possible by somewhat considering original energy for the erased frame, but an error concealment efficiency may be degraded in a portion where a signal is gradually increasing or is severely fluctuated. In addition, the regression analysis method tends to cause an increase in complexity when the number of types of parameters to be applied increases. In a repetition method for restoring a signal in an erased frame by repeatedly reproducing a PGF of the erased frame, it may be difficult to minimize deterioration of reconstructed sound quality due to a characteristic of the OLA processing. An interpolation method for predicting a parameter of an erased frame by interpolating parameters of a PGF and a next good frame (NGF) needs an additional delay of one frame, and thus, it is not proper to employ the interpolation method in a communication codec sensitive to a delay.
Thus, when an audio signal is encoded and decoded using the time-frequency transform processing, there is a need of a method for concealing an erased frame without an additional time delay or an excessive increase in complexity to minimize deterioration of reconstructed sound quality due to packet losses.
Exemplary Embodiments provide a packet loss concealment method and apparatus for more exactly concealing an erased frame adaptively to signal characteristics in a frequency domain or a time domain, with low complexity without an additional time delay.
Exemplary Embodiments also provide an audio decoding method and apparatus for minimizing deterioration of reconstructed sound quality due to packet losses, by more exactly reconstructing an erased frame adaptively to signal characteristics in a frequency domain or a time domain, with low complexity without an additional time delay.
Exemplary Embodiments also provide a non-transitory computer-readable storage medium having stored therein program instructions, which when executed by a computer, perform the packet loss concealment method or the audio decoding method.
According to an aspect of an exemplary embodiment, there is provided a method for time domain packet loss concealment, the method including checking whether a current frame is either an erased frame or a good frame after the erased frame, when the current frame is either the erased frame or the good frame after the erased frame, obtaining signal characteristics, selecting one of a phase matching tool and a smoothing tool based on a plurality of parameters including the signal characteristics, and performing a packet loss concealment processing on the current frame based on the selected tool.
According to another aspect of an exemplary embodiment, there is provided an apparatus for time domain packet loss concealment, the apparatus including a processor configured to check whether a current frame is either an erased frame or a good frame after the erased frame, when the current frame is either the erased frame or the good frame after the erased frame, obtain signal characteristics, select one of a phase matching tool and a smoothing tool based on a plurality of parameters including the signal characteristics, and perform a packet loss concealment processing on the current frame based on the selected tool.
According to an aspect of an exemplary embodiment, there is provided an audio decoding method including performing packet loss concealment processing in a frequency domain when a current frame is an erased frame, decoding spectral coefficients when the current frame is a good frame, performing time-frequency inverse transform processing on the current frame that is an erased frame after time-frequency inverse transforming or a good frame, checking whether a current frame is either an erased frame or a good frame after the erased frame, when the current frame is either the erased frame or the good frame after the erased frame, obtaining signal characteristics, selecting one of a phase matching tool and a smoothing tool based on a plurality of parameters including the signal characteristics, and performing a packet loss concealment processing on the current frame based on the selected tool.
According to an aspect of an exemplary embodiment, there is provided an audio decoding apparatus including a processor configured to perform packet loss concealment processing in a frequency domain when a current frame is an erased frame, decode spectral coefficients when the current frame is a good frame, perform time-frequency inverse transform processing on the current frame that is an erased frame after time-frequency inverse transforming or a good frame, check whether a current frame is either an erased frame or a good frame after the erased frame, when the current frame is either the erased frame or the good frame after the erased frame, obtain signal characteristics, select one of a phase matching tool and a smoothing tool based on a plurality of parameters including the signal characteristics, and perform a packet loss concealment processing on the current frame based on the selected tool.
According to exemplary embodiments, a rapid signal fluctuation in a frequency domain may be smoothed and an erased frame may be more accurately reconstructed adaptively to signal characteristics such as transient characteristic and a burst erasure period, with low complexity without an additional delay.
In addition, by performing smoothing processing in an optimal method according to signal characteristics in a time domain, a rapid signal fluctuation due to an erased frame in the decoded signal may be smoothed with low complexity without an additional delay.
In particular, an erased frame that is a transient frame or an erased frame constituting a burst error may be more accurately reconstructed, and as a result, influence affected to a good frame next to the erased frame may be minimized.
In addition, by copying a predetermined sized segment obtained based on phase matching from a plurality of previous frames stored in a buffer to a current frame that is an erased frame and performing smoothing processing between adjacent frames, the improvement of reconstructed sound quality for a low frequency band may be additionally expected.
The above and other features and advantages will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:
The present inventive concept may allow various kinds of change or modification and various changes in form, and specific exemplary embodiments will be illustrated in drawings and described in detail in the specification. However, it should be understood that the specific exemplary embodiments do not limit the present inventive concept to a specific disclosing form but include every modified, equivalent, or replaced one within the spirit and technical scope of the present inventive concept. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention with unnecessary detail.
Although terms, such as ‘first’ and ‘second’, can be used to describe various elements, the elements cannot be limited by the terms. The terms can be used to classify a certain element from another element.
The terminology used in the application is used only to describe specific exemplary embodiments and does not have any intention to limit the present inventive concept. Although general terms as currently widely used as possible are selected as the terms used in the present inventive concept while taking functions in the present inventive concept into account, they may vary according to an intention of those of ordinary skill in the art, judicial precedents, or the appearance of new technology. In addition, in specific cases, terms intentionally selected by the applicant may be used, and in this case, the meaning of the terms will be disclosed in corresponding description of the invention. Accordingly, the terms used in the present inventive concept should be defined not by simple names of the terms but by the meaning of the terms and the content over the present inventive concept.
An expression in the singular includes an expression in the plural unless they are clearly different from each other in a context. In the application, it should be understood that terms, such as ‘include’ and ‘have’, are used to indicate the existence of implemented feature, number, step, operation, element, part, or a combination of them without excluding in advance the possibility of existence or addition of one or more other features, numbers, steps, operations, elements, parts, or combinations of them.
Exemplary embodiments will now be described in detail with reference to the accompanying drawings.
The frequency domain audio decoding apparatus shown in
Referring to
The frequency domain PLC module 132 may have a frequency domain packet loss concealment algorithm therein and operate when the error flag BFI provided by the parameter obtaining unit 110 is 1, and a decoding mode of a previous frame is the frequency domain mode. According to an exemplary embodiment, the frequency domain PLC module 132 may generate a spectral coefficient of the erased frame by repeating a synthesized spectral coefficient of a PGF stored in a memory (not shown). In this case, the repeating process may be performed by considering a frame type of the previous frame and the number of erased frames which have occurred until the present. For convenience of description, when the number of erased frames which have continuously occurred is two or more, this occurrence corresponds to a burst erasure.
According to an exemplary embodiment, when the current frame is an erased frame forming a burst erasure and the previous frame is not a transient frame, the frequency domain PLC module 132 may forcibly down-scale a decoded spectral coefficient of a PGF by a fixed value of 3 dB from, for example, a fifth erased frame. That is, if the current frame corresponds to a fifth erased frame from among erased frames which have continuously occurred, the frequency domain PLC module 132 may generate a spectral coefficient by decreasing energy of the decoded spectral coefficient of the PGF and repeating the energy decreased spectral coefficient for the fifth erased frame.
According to another exemplary embodiment, when the current frame is an erased frame forming a burst erasure and the previous frame is a transient frame, the frequency domain PLC module 132 may forcibly down-scale a decoded spectral coefficient of a PGF by a fixed value of 3 dB from, for example, a second erased frame. That is, if the current frame corresponds to a second erased frame from among erased frames which have continuously occurred, the frequency domain PLC module 132 may generate a spectral coefficient by decreasing energy of the decoded spectral coefficient of the PGF and repeating the energy decreased spectral coefficient for the second erased frame.
According to another exemplary embodiment, when the current frame is an erased frame forming a burst erasure, the frequency domain PLC module 132 may decrease modulation noise generated due to the repetition of a spectral coefficient for each frame by randomly changing a sign of a spectral coefficient generated for the erased frame. An erased frame to which a random sign starts to be applied in an erased frame group forming a burst erasure may vary according to a signal characteristic. According to an exemplary embodiment, a position of an erased frame to which a random sign starts to be applied may be differently set according to whether the signal characteristic indicates that the current frame is transient, or a position of an erased frame from which a random sign starts to be applied may be differently set for a stationary signal from among signals that are not transient. For example, when it is determined that a harmonic component exists in an input signal, the input signal may be determined as a stationary signal of which signal fluctuation is not severe, and a packet loss concealment algorithm corresponding to the stationary signal may be performed. Commonly, information transmitted from an encoder may be used for harmonic information of an input signal. When low complexity is not necessary, harmonic information may be obtained using a signal synthesized by a decoder.
According to another exemplary embodiment, the frequency domain PLC module 132 may apply the down-scaling or the random sign for not only erased frames forming a burst erasure but also in a case where every other frame is an erased frame. That is, when a current frame is an erased frame, a one-frame previous frame is a good frame, and a two-frame previous frame is an erased frame, the down-scaling or the random sign may be applied.
The spectrum decoding unit 133 may operate when the error flag BFI provided by the parameter obtaining unit 110 is 0, i.e., when a current frame is a good frame. The spectrum decoding unit 133 may synthesize spectral coefficients by performing spectrum decoding using the parameters decoded by the parameter obtaining unit 110.
The memory update unit 134 may update, for a next frame, the synthesized spectral coefficients, information obtained using the decoded parameters, the number of erased frames which have continuously occurred until the present, information on a signal characteristic or frame type of each frame, and the like with respect to the current frame that is a good frame. The signal characteristic may include a transient characteristic or a stationary characteristic, and the frame type may include a transient frame, a stationary frame, or a harmonic frame.
The inverse transform unit 135 may generate a time domain signal by performing a time-frequency inverse transform on the synthesized spectral coefficients. The inverse transform unit 135 may provide the time domain signal of the current frame to one of the general OLA unit 136 and the time domain PLC module 137 based on an error flag of the current frame and an error flag of the previous frame.
The general OLA unit 136 may operate when both the current frame and the previous frame are good frames. The general OLA unit 136 may perform general OLA processing by using a time domain signal of the previous frame, generate a final time domain signal of the current frame as a result of the general OLA processing, and provide the final time domain signal to a post-processing unit 150.
The time domain PLC module 137 may operate when the current frame is an erased frame or when the current frame is a good frame, the previous frame is an erased frame, and a decoding mode of the latest PGF is the frequency domain mode. That is, when the current frame is an erased frame, packet loss concealment processing may be performed by the frequency domain PLC module 132 and the time domain PLC module 137, and when the previous frame is an erased frame and the current frame is a good frame, the packet loss concealment processing may be performed by the time domain PLC module 137.
The post-processing unit 150 may perform filtering, up-sampling, or the like for sound quality improvement with respect to the time domain signal provided from the frequency domain decoding unit 130, but is not limited thereto. The post-processing unit 150 provides a reconstructed audio signal as an output signal.
The apparatus shown in
Referring to
A method of obtaining EMA and energy_diff will now be described.
If it is assumed that an average of energy or norm values of a current frame is Ecurr, EMA may be obtained by EMA=EMA_old*0.8+Ecurr*0.2. In this case, an initial value of EMA may be set to, for example, 100. EMA_old represents moving average energy of a previous frame and EMA may be updated to EMA_old for a next frame.
Next, energy_diff may be obtained by normalizing a difference between EMA and Ecurr and may be represented by an absolute value of the normalized energy difference.
The signal characteristic determiner 210 may determine the current frame not to be transient when energy_diff is smaller than a predetermined threshold and the frame type is_transient is 0, i.e. is not a transient frame. The signal characteristic determiner 210 may determine the current frame to be transient when energy_diff is equal to or greater than a predetermined threshold and the frame type is_transient is 1, i.e. is a transient frame. energy_diff of 1.0 indicates that Ecurr is double EMA and may indicate that a change in energy of the current frame is very large as compared with the previous frame.
The parameter controller 230 may control a parameter for packet loss concealment using the signal characteristics determined by the signal characteristic determiner 210 and a frame type and an encoding mode included in information transmitted from an encoder.
The number of previous good frames used for regression analysis may be exemplified as a parameter a parameter controlled for packet loss concealment. To do this, whether a current frame is a transient frame may be determined, by using the information transmitted from the encoder or transient information obtained by the signal characteristic determiner 210. When the two kinds of information are simultaneously used, the following conditions may be used: That is, if is_transient that is transient information transmitted from the encoder is 1, or if energy_diff that is information obtained by a decoder is equal to or greater than the predetermined threshold ED_THRES, e.g., 1.0, this indicates that the current frame is a transient frame of which a change in energy is severe, and accordingly, the number num_pgf of PGFs to be used for a regression analysis may be decreased. Otherwise, it is determined that the current frame is not a transient frame, and num_pgf may be increased. This may be represented as the following pseudo codes.
In the above context, ED_THRES denotes a threshold and may be set to, for example, 1.0.
Another example of the parameter for packet loss concealment may be a scaling method of a burst error duration. The same energy_diff value may be used in one burst error duration. If it is determined that the current frame that is an erased frame is not transient, when a burst erasure occurs, frames starting from, for example, a fifth frame, may be forcibly scaled as a fixed value of 3 dB regardless of a regression analysis of a decoded spectral coefficient of the previous frame. Otherwise, if it is determined that the current frame that is an erased frame is transient, when a burst erasure occurs, frames starting from, for example, a second frame, may be forcibly scaled as a fixed value of 3 dB regardless of the regression analysis of the decoded spectral coefficient of the previous frame. Another example of the parameter for packet loss concealment may be an applying method of adaptive muting and a random sign, which will be described below with reference to the scaler 290.
The regression analyzer 250 may perform a regression analysis by using a stored parameter of a previous frame. A condition of an erased frame on which the regression analysis is performed may be defined in advance when a decoder is designed. In a case where regression analysis is performed when a burst erasure has occurred, when nbLostCmpt indicates the number of contiguous erased frames is two, from the second contiguous erased frame, the regression analysis is performed. In this case, for the first erased frame, a spectral coefficient obtained from a previous frame may be simply repeated, or a spectral coefficient may be scaled by a determined value.
In the frequency domain, a problem similar to continuous erasures may occur even though the continuous erasures have not occurred as a result of transforming an overlapped signal in the time domain. For example, if erasure occurs by skipping one frame, in other words, if erasures occur in an order of an erased frame, a good frame, and an erased frame, when a transform window is formed by an overlapping of 50%, sound quality is not largely different from a case where erasures have occurred in an order of an erased frame, an erased frame, and an erased frame, regardless of the presence of a good frame in the middle. Even though an nth frame is a good frame, if (n−1)th and (n+1)th frames are erased frames, a totally different signal is generated in an overlapping process. Thus, when erasures occur in an order of an erased frame, a good frame, and an erased frame, although nbLostCmpt of a third frame in which a second erasure occurs is 1, nbLostCmpt is forcibly increased by 1. As a result, nbLostCmpt is 2, and it is determined that a burst erasure has occurred, and thus the regression analysis may be used.
In the above context, prev_old_bfi denotes frame error information of a second previous frame. This process may be applicable when a current frame is an error frame.
The regression analyzer 250 may form each group by grouping two or more bands, derive a representative value of each group, and apply the regression analysis to the representative value, for low complexity. Examples of the representative value may be a mean value, an intermediate value, and a maximum value, but the representative value is not limited thereto. According to an exemplary embodiment, an average vector of grouped norms that is an average norm value of bands included in each group may be used as the representative value. The number of PGFs used for regression analysis may be 2 or 4. The number of rows of a matrix used for regression analysis may be set to for example 2.
As a result of the regression analysis by the regression analyzer 250, an average norm value of each group may be predicted for an erased frame. That is, the same norm value may be predicted for each band belonging to one group in the erased frame. In detail, the regression analyzer 250 may calculate values a and b from a linear regression analysis equation through the regression analysis and predict an average norm value for each group by using the calculated values a and b. The calculated value a may be adjusted within a predetermined range. In an EVS codec, the predetermined range may be limited to a negative value. In the following pseudo-code, norm_values is an average norm value of each group in the previous good frame and norm_p is a predicted average norm value of each group.
With this modified value of a, the average norm value of each group may be predicted.
The gain calculator 270 may obtain a gain between an average norm value of each group that is predicted for the erased frame and an average norm value of each group in a previous good frame. When the predicted norm is larger than zero and the norm of the previous frame is non-zero, gain calculation may be performed. When the predicted norm is smaller than zero or the norm of the previous frame is zero, the gain may be scaled down by 3 dB from an initial value, for example, 1.0. The calculated gain may be adjusted to a predetermined range. In EVS codec, the maximum value of the gain may be set to 1.0.
The scaler 290 may apply gain scaling to the previous good frame to predict spectral coefficients of the erased frame. The scaler 290 may also apply adaptive muting to the erased frame and a random sign to predicted spectral coefficients according to characteristics of an input signal.
First, the input signal may be identified as a transient signal and a non-transient signal. A stationary signal may be separately identified from the non-transient signal and processed in another method. For example, if it is determined that the input signal has a lot of harmonic components, the input signal may be determined as a stationary signal of which a change in the signal is not large, and a packet loss concealment algorithm corresponding to the stationary signal may be performed. In general, harmonic information of the input signal may be obtained from the information transmitted from the encoder. When low complexity is not necessary, the harmonic information of the input signal may be obtained using a signal synthesized by the decoder.
When the input signal is largely classified into a transient signal, a stationary signal, and a residual signal, the adaptive muting and the random sign may be applied as described below. In the context below, a number indicated by mute_start indicates that muting forcibly starts if bfi_cnt is equal to or greater than mute_start when a burst erasure occurs. In addition, random_start related to the random sign may be analyzed in the same way.
According to a method of applying the adaptive muting, spectral coefficients are forcibly down-scaled by a fixed value. For example, if bfi_cnt of a current frame is 4, and the current frame is a stationary frame, spectral coefficients of the current frame may be down-scaled by 3 dB.
In addition, a sign of spectral coefficients is randomly modified to reduce modulation noise generated due to repetition of spectral coefficients in every frame. Various well-known methods may be used as a method of applying the random sign.
According to an exemplary embodiment, the random sign may be applied to all spectral coefficients of a frame. According to another exemplary embodiment, a frequency band to which the random sign starts to be applied may be defined in advance, and the random sign may be applied to frequency bands equal to or higher than the defined frequency band, because it may be better to use a sign of a spectral coefficient that is identical to that of a previous frame in a very low frequency band, e.g., 200 Hz or less, or a first band since a waveform or energy may be largely changed due to a change in a sign in the very low frequency band.
Accordingly, a sharp change in a signal may be smoothed, and an error frame may be accurately restored to be adaptive to characteristics of the signal, in particular, a transient characteristic, and a burst erasure duration without an additional delay at low complexity in the frequency domain.
Referring to
An example of the linear regression analysis may be represented by Equation 2.
As in Equation 2, when a linear equation is used, the upcoming transition y may be predicted by obtaining a and b. In Equation 2, a and b may be obtained by an inverse matrix. A simple method of obtaining an inverse matrix may use Gauss-Jordan Elimination.
The apparatus 500 shown in
Referring to
The PLC mode selection unit 531 may receive a flag BFI of a current frame, a flag Prev_BFI of a previous frame, the number nbLostCmpt of contiguous erased frame and the parameters provided from the first memory update unit 510, and select a PLC mode. For each flag, 1 represents an erased frame and 0 represents a good frame. When the number of contiguous erased frame is equal to or greater than e.g. 2, it may be determined that a durst erasure is formed. According to a result of selection in the PLC mode selection unit 531, a time domain signal of the current frame may be provided to one of processing units 533, 535 and 537.
Table 1 summarizes the PLC modes. There are two tools for the time-domain PLC.
Table 2 summarizes the PLC mode selection method in the PLC mode selection unit 531.
The pseudo code to select a PLC mode for the phase matching tool may be summarized as follows.
The phase matching flag (phase_mat_flag) may be used to determine at the point of the first memory update unit 510 in the previous good frame whether phase matching erasure concealment processing is used for every good frame when an erasure occurs in a next frame. To this end, energy and spectral coefficients of each sub-band may be used. The energy may be obtained from the norm value, but not limited thereto. More specifically, when a sub-band having the maximum energy in a current frame belongs to a predetermined low frequency band, and the inter-frame energy change is not large, the phase matching flag may be set to 1.
According to an exemplary embodiment, when a sub-band having the maximum energy in the current frame is within the range of 75 Hz to 1000 Hz, a difference between the index of the current frame and the index of a previous frame with respect to a corresponding sub-band is 1 or less, and the current frame is a stationary frame of which an energy change is less than the threshold, and e.g. three past frames stored in the buffer are not transient frames, then phase matching erasure concealment processing will be applied to a next frame to which an erasure has occurred. The pseudo code may be summarized as follows.
The PLC mode selection method for the repetition and smoothing tool and the conventional OLA may be performed by stationarity detection and is explained as follows.
A hysteresis may be introduced in order to prevent a frequent change of the detected result in stationarity detection. The stationarity detection of the erased frame may determine whether the current erased frame is stationary by receiving information including a stationary mode stat_mode_old of the previous frame, an energy difference diff_energy, and the like. Specifically, the stationary mode flag stat_mode_curr of the current frame is set to 1 when the energy difference diff_energy is less than a threshold, e.g. 0.032209.
If it is determined that the current frame is stationary, the hysteresis application may generate a final stationarity parameter, stat_mode_out from the current frame by applying the stationarity mode parameter stat_mode_old of the previous frame to prevent a frequent change in stationarity information of the current frame. That is, when it is determined that a current frame is stationary and a previous frame is a stationary frame, the current frame may be detected as the stationary frame.
The operation of the PLC mode selection may depend on whether the current frame is an erased frame or the next good frame after an erased frame. Referring to Table 2, for an erased frame, a determination may be made whether the input signal is stationary by using various parameters. More specifically, when the previous good frame is stationary and the energy difference is less than the threshold, it is concluded that the input signal is stationary. In this case, the repetition and smoothing processing may be performed. If it is determined that the input signal is not stationary, then the general OLA processing may be performed.
Meanwhile, if the input signal is not stationary, then for the next good frame after an erased frame a determination may be made whether the previous frame is a burst erasure frame by checking whether the number of consecutive erased frames is greater than one. If this is the case, then erasure concealment processing on the next good frame is performed in response to the previous frame that is a burst erasure frame. If it is determined that the input signal is not stationary and the previous frame is a random erasure, then the conventional OLA processing is performed.
If the input signal is stationary, then the erasure concealment processing, i.e. repetition and smoothing processing, on the next good frame may be performed in response to the previous frame that is erased. This repetition and smoothing for next good frame has two types of concealment methods. One is repetition and smoothing method for the next good frame after an erased frame, and the other is repetition and smoothing method for the next good frame after burst erasures.
The pseudo code to select a PLC mode for the Repetition and Smoothing tool and the conventional OLA is as follows.
The operation of the phase matching processing unit 533 will be explained with reference to
The operation of the OLA processing unit 535 will be explained with reference to
The operation of the repetition and smoothing processing unit 533 will be explained with reference to
The second memory update unit 539 may update various kinds of information used for the packet loss concealment processing on the current frame and store the information in a memory (not shown) for a next frame.
The apparatus shown in
Referring to
The second concealment unit 630 may perform phase matching concealment processing on a next good frame. That is, when a previous frame is an erased frame and phase matching concealment processing is performed for the previous frame, phase matching concealment processing may be performed on a next good frame.
In the second concealment unit 630, a mean_en_high parameter may be used. The mean_en_high parameter denotes a mean energy of high bands and indicating the similarity of the last good frames. This parameter is calculated by following Equation 2.
where is start band index of the determined high bands.
If mean_en_high is larger than 2.0 or smaller than 0.5, it indicates that energy change is severe. If energy change is severe, oldout_pha_idx is set to 1. Oldout_pha_idx is used as a switch using the Oldauout memory. The two sets of Oldauout were saved at the both the phase matching for erased frame block and the phase matching for burst erasures block. The 1st Oldauout is generated from a copied signal by a phase matching process, and the 2nd Oldauout is generated by the time domain signal resulting from the IMDCT. If the oldout_pha_idx is set to 1, it indicates that the high band signal is unstable and the 2nd Oldauout will be used for the OLA process in the next good frame. If the oldout_pha_idx is set to 0, it indicates that the high band signal is stable and the 1st Oldauout will be used for OLA process in the next good frame.
The third concealment unit 650 may perform phase matching concealment processing on a burst erasure. That is, when a previous frame is an erased frame and phase matching concealment processing is performed for the previous frame, phase matching concealment processing may be performed on a current frame being a part of the burst erasure.
The third concealment unit 650 does not have maximum correlation search processing and the copying processing, as all information needed for these processing may be reused by phase matching for the erased frame. In the third concealment unit 650, the smoothing may be done between the signal corresponding to the overlap duration of the copied signal and the Oldauout signal stored in the current frame n for overlapping purposes. The Oldauout is actually a copied signal by the phase matching process in the previous frame.
In order to use the phase matching tool, the phase_mat_flag shall be set to 1. That is, when a previous good frame has a maximum energy in a predetermined low frequency band and energy change is smaller than a threshold, phase matching concealment processing may be performed on a current frame being a random erased frame. Even though this condition is satisfied, a correlation scale accA is obtained, and either phase matching erasure concealment processing or general OLA processing may be selected. The selection depends on whether the correlation scale accA is within a predetermined range. That is, phase matching packet loss concealment processing may be conditionally performed depending on whether a correlation between segments exists in a search range and a cross-correlation between a search segment and the segments exists in the search range.
The correlation scale is given by Equation 3.
In Equation 3, d denotes the number of segments existing in the search range, Rxy denotes a cross-correlation used to search for the matching segment having the same length as the search segment (x signal) with respect to the past good frames (y signal) stored in the buffer, and Ryy denotes a correlation between segments existing in the past good frames stored in the buffer.
Next, it is be determined whether the correlation scale accA is within the predetermined range. If this is the case, phase matching erasure concealment processing takes place on the current erased frame. Otherwise, the conventional OLA processing on the current frame is performed. If the correlation scale accA is less than 0.5 or greater than 1.5, the conventional OLA processing is performed. Otherwise, phase matching erasure concealment processing is performed. Herein, the upper limit value and the lower limit value are only illustrative, and may be set in advance as optimal values through experiments or simulations.
First, a matching segment, which has the maximum correlation to, i.e. is most similar to, a search segment adjacent to a current frame is searched for from a decoded signal in a previous good frame from among N past good frames stored in a buffer. For a current erased frame for which it is determined that phase matching erasure concealment processing is performed, it may be again determined whether the phase matching erasure concealment processing is proper by obtaining a correlation scale.
Next, by referring to a position index of the matching segment obtained as a result of the search, a predetermined duration starting from an end of the matching segment is copied to the current frame that is an erasure frame. In addition, when a previous frame is a random erased frame and phase matching erasure concealment processing is performed on the previous frame, by referring to a position index of the matching segment obtained as a result of the search, a predetermined duration starting from an end of the matching segment is copied to the current frame that is an erasure frame. At this time, a duration corresponding to a window length is copied to the current frame. When the copy starting from the end of the matching segment is shorter than the window length, the copy, starting from the end of the matching segment will be repeatedly copied into the current frame.
Next, smoothing processing may be performed through OLA to minimize the discontinuity between the current frame and adjacent frames to generate a time domain signal on the concealed current frame.
Referring to
In detail, the matching segment 830 having the highest cross-correlation to the search segment 810 may be searched for from among past decoded signals within the search range, location information corresponding to the matching segment 830 may be obtained, and a predetermined duration 850 starting from an end of the matching segment 830 may be set by considering a window length, e.g., a length obtained by adding a frame length and a length of an overlap duration, and copied to the frame n in which an error has occurred.
When the copy process is completed, the overlapping process on a copied signal and on an Oldauout signal stored in the previous frame n−1 for overlapping is performed at the beginning part of the current frame n by a first overlap duration. The length of the overlap duration may be set to 2 ms.
Referring to
The OLA unit 930 may perform OLA processing on the windowed IMDCT signal.
When an erasure occurs in frequency domain encoding, past spectral coefficients are usually repeated, and thus, it may be impossible to remove time domain aliasing in the erased frame.
The apparatus of
The operation of the first concealment unit 1110 and the OLA unit 1190 will be explained with reference to
The operation of the second concealment unit 1130 will be explained with reference to
The operation of the third concealment unit 1150 will be explained with reference to
Referring to
The repetition unit 1230 may apply an IMDCT signal of a frame that is two frames previous to the current frame (referred to as “previous old” in
The smoothing unit 1250 may apply a smoothing window between the signal of the previous frame (old audio output) and the signal of the current frame (referred to as “current audio output”) and performs OLA processing. The smoothing window is formed such that the sum of overlap durations between adjacent windows is equal to one. Examples of a window satisfying this condition are a sine wave window, a window using a primary function, and a Hanning window, but the smoothing window is not limited thereto. According to an exemplary embodiment, the sine wave window may be used, and in this case, a window function w(n) may be represented by Equation 4.
In Equation 4, OV_SIZE denotes the duration of the overlap to be used in the smoothing processing.
By performing smoothing processing, when the current frame is an erasure, the discontinuity between the previous frame and the current frame, which may occur by using an IMDCT signal copied from the frame that is two frames previous to the current frame instead of an IMDCT signal stored in the previous frame, is prevented.
After completion of the repetition and smoothing, in the determination unit 1270, energy Pow1 of a predetermined duration in an overlapping region may be compared with energy Pow2 of a predetermined duration in a non-overlapping region. In detail, when energy of the overlapping region decreases or highly increases after the error concealment processing, general OLA processing may be performed because the decrease in energy may occur when a phase is reversed in overlapping, and the increase in energy may occur when a phase is maintained in overlapping. When a signal is somewhat stationary, since the concealment performance in repetition and smoothing operation is excellent, if an energy difference between the overlapping region and the non-overlapping region is large, it indicates that a problem is generated due to a phase in overlapping. Therefore, when the difference between energy in an overlapping region and energy in a non-overlapping region is large, a result of the general OLA processing may be adapted instead of a result of the repetition and smoothing processing. When the difference between energy in an overlapping region and energy in a non-overlapping region is not large, a result of the repetition and smoothing processing may be adapted. For example, a comparison may be performed by Pow2>Pow1*3. When Pow2>Pow1*3 is satisfied, a result of the general OLA processing of the OLA unit 1290 may be adapted instead of a result of the repetition and smoothing processing. When Pow2>Pow1*3 is not satisfied, a result of the repetition and smoothing processing may be adapted.
The OLA unit 1290 may perform OLA processing on a repeated signal of the repetition unit 1230 and an IMDCT signal of the current signal. As a result, an audio output signal is generated and generation of noises in a starting part of the audio output signal may be reduced. In addition, if scaling is applied with spectrum copying of a previous frame in a frequency domain, generation of noises in a starting part of the current frame may be greatly reduced.
In
That is, when the previous frame is a first erased frame and a current frame is a good frame, it is difficult to remove time domain aliasing in the overlap duration between an IMDCT signal of the previous frame and an IMDCT signal of the current frame. Thus, noise can be minimized by performing the smoothing processing based on the smoothing window instead of the conventional OLA processing.
Referring to
The scaling unit 1630 may adjust the scale of the current frame to prevent a sudden signal increase. In an embodiment, the scaling block performs down-scaling by 3 dB.
The first smoothing unit 1650 may apply a smoothing window to the IMDCT signal of the previous frame and the copied IMDCT signal from a future frame and performs OLA processing. Likewise, the smoothing window is formed such that a sum of overlap durations between adjacent windows is equal to one. That is, when the copied signal is used, windowing is necessary to remove the discontinuity which may occur between the previous frame and the current frame, and an old IMDCT signal may be replaced with a signal obtained by OLA processing of the first smoothing unit 1650.
The second smoothing unit 1670 may perform the OLA processing while removing the discontinuity by applying a smoothing window between the old IMDCT signal that is a replaced signal and a current IMDCT signal that is the current frame signal. Likewise, the smoothing window is formed such that the sum of overlap durations between adjacent windows is equal to one.
That is, when the previous frame is a burst erasure and the current frame is a good frame, time domain aliasing in the overlap duration between the IMDCT signal of the previous frame and the IMDCT signal of the current frame cannot be removed. In the burst erasure frame, since noise may occur due to a decrease in energy or continuous repetitions, the method of copying a signal from the future frame for overlapping with the current frame is applied. In this case, smoothing processing is performed twice to remove the noise which may occur in the current frame and simultaneously remove the discontinuity which occurs between the previous frame and the current frame.
Referring to
The scaling unit 1830 may adjust the scale of the current frame to prevent a sudden signal increase. In an embodiment, the scaling block performs down-scaling by 3 dB.
The first smoothing unit 1850 may apply a smoothing window to the IMDCT signal of the previous frame and the copied IMDCT signal from a future frame and performs OLA processing. Likewise, the smoothing window is formed such that a sum of overlap durations between adjacent windows is equal to one. That is, when the copied signal is used, windowing is necessary to remove the discontinuity which may occur between the previous frame and the current frame, and an old IMDCT signal may be replaced with a signal obtained by OLA processing of the first smoothing unit 1850.
The OLA unit 1870 may perform the OLA processing between the replaced OldauOut signal and the current IMDCT signal.
The audio encoding apparatus 2110 shown in
In
The frequency domain encoding unit 2114 may perform a time-frequency transform on the audio signal provided by the pre-processing unit 2112, select a coding tool in correspondence with the number of channels, a coding band, and a bit rate of the audio signal, and encode the audio signal by using the selected coding tool. The time-frequency transform uses a modified discrete cosine transform (MDCT), a modulated lapped transform (MLT), or a fast Fourier transform (FFT), but is not limited thereto. When the number of given bits is sufficient, a general transform coding scheme may be applied to the whole bands, and when the number of given bits is not sufficient, a bandwidth extension scheme may be applied to partial bands. When the audio signal is a stereo-channel or multi-channel, if the number of given bits is sufficient, encoding is performed for each channel, and if the number of given bits is not sufficient, a down-mixing scheme may be applied. An encoded spectral coefficient is generated by the frequency domain encoding unit 2114.
The parameter encoding unit 2116 may extract a parameter from the encoded spectral coefficient provided from the frequency domain encoding unit 2114 and encode the extracted parameter. The parameter may be extracted, for example, for each sub-band, which is a unit of grouping spectral coefficients, and may have a uniform or non-uniform length by reflecting a critical band. When each sub-band has a non-uniform length, a sub-band existing in a low frequency band may have a relatively short length compared with a sub-band existing in a high frequency band. The number and a length of sub-bands included in one frame vary according to codec algorithms and may affect the encoding performance. The parameter may include, for example a scale factor, power, average energy, or Norm, but is not limited thereto. Spectral coefficients and parameters obtained as an encoding result form a bitstream, and the bitstream may be stored in a storage medium or may be transmitted in a form of, for example, packets through a channel.
The audio decoding apparatus 2130 shown in
In
When the current frame is a good frame, the frequency domain decoding unit 2134 may generate synthesized spectral coefficients by performing decoding through a general transform decoding process. When the current frame is an erasure frame, the frequency domain decoding unit 2134 may generate synthesized spectral coefficients by scaling spectral coefficients of a previous good frame (PGF) through a packet loss concealment algorithm. The frequency domain decoding unit 2134 may generate a time domain signal by performing a frequency-time transform on the synthesized spectral coefficients.
The post-processing unit 2136 may perform filtering, up-sampling, or the like for sound quality improvement with respect to the time domain signal provided from the frequency domain decoding unit 2134, but is not limited thereto. The post-processing unit 2136 provides a reconstructed audio signal as an output signal.
The audio encoding apparatus 2210 shown in
In
The mode determination unit 2213 may determine a coding mode by referring to a characteristic of an input signal. The mode determination unit 2213 may determine according to the characteristic of the input signal whether a coding mode suitable for a current frame is a speech mode or a music mode and may also determine whether a coding mode efficient for the current frame is a time domain mode or a frequency domain mode. The characteristic of the input signal may be perceived by using a short-term characteristic of a frame or a long-term characteristic of a plurality of frames, but is not limited thereto. For example, if the input signal corresponds to a speech signal, the coding mode may be determined as the speech mode or the time domain mode, and if the input signal corresponds to a signal other than a speech signal, i.e., a music signal or a mixed signal, the coding mode may be determined as the music mode or the frequency domain mode. The mode determination unit 2213 may provide an output signal of the pre-processing unit 2212 to the frequency domain encoding unit 2214 when the characteristic of the input signal corresponds to the music mode or the frequency domain mode and may provide an output signal of the pre-processing unit 2212 to the time domain encoding unit 215 when the characteristic of the input signal corresponds to the speech mode or the time domain mode.
Since the frequency domain encoding unit 2214 is substantially the same as the frequency domain encoding unit 2114 of
The time domain encoding unit 2215 may perform code excited linear prediction (CELP) coding for an audio signal provided from the pre-processing unit 2212. In detail, algebraic CELP may be used for the CELP coding, but the CELP coding is not limited thereto. An encoded spectral coefficient is generated by the time domain encoding unit 2215.
The parameter encoding unit 2216 may extract a parameter from the encoded spectral coefficient provided from the frequency domain encoding unit 2214 or the time domain encoding unit 2215 and encodes the extracted parameter. Since the parameter encoding unit 2216 is substantially the same as the parameter encoding unit 2116 of
The audio decoding apparatus 2230 shown in
In
The mode determination unit 2233 may check coding mode information included in the bitstream and provide a current frame to the frequency domain decoding unit 2234 or the time domain decoding unit 2235.
The frequency domain decoding unit 2234 may operate when a coding mode is the music mode or the frequency domain mode and generate synthesized spectral coefficients by performing decoding through a general transform decoding process when the current frame is a good frame. When the current frame is an erasure frame, and a coding mode of a previous frame is the music mode or the frequency domain mode, the frequency domain decoding unit 2234 may generate synthesized spectral coefficients by scaling spectral coefficients of a PGF through an erasure concealment algorithm. The frequency domain decoding unit 2234 may generate a time domain signal by performing a frequency-time transform on the synthesized spectral coefficients.
The time domain decoding unit 2235 may operate when the coding mode is the speech mode or the time domain mode and generate a time domain signal by performing decoding through a general CELP decoding process when the current frame is a good frame. When the current frame is an erasure frame, and the coding mode of the previous frame is the speech mode or the time domain mode, the time domain decoding unit 2235 may perform an erasure concealment algorithm in the time domain.
The post-processing unit 2236 may perform filtering, up-sampling, or the like for the time domain signal provided from the frequency domain decoding unit 2234 or the time domain decoding unit 2235, but is not limited thereto. The post-processing unit 2236 provides a reconstructed audio signal as an output signal.
The audio encoding apparatus 2310 shown in
In
The LP analysis unit 2313 may extract LP coefficients by performing LP analysis for an input signal and generate an excitation signal from the extracted LP coefficients. The excitation signal may be provided to one of the frequency domain excitation encoding unit 2315 and the time domain excitation encoding unit 2316 according to a coding mode.
Since the mode determination unit 2314 is substantially the same as the mode determination unit 2213 of
The frequency domain excitation encoding unit 2315 may operate when the coding mode is the music mode or the frequency domain mode, and since the frequency domain excitation encoding unit 2315 is substantially the same as the frequency domain encoding unit 2114 of
The time domain excitation encoding unit 2316 may operate when the coding mode is the speech mode or the time domain mode, and since the time domain excitation encoding unit 2316 is substantially the same as the time domain encoding unit 2215 of
The parameter encoding unit 2317 may extract a parameter from an encoded spectral coefficient provided from the frequency domain excitation encoding unit 2315 or the time domain excitation encoding unit 2316 and encode the extracted parameter. Since the parameter encoding unit 2317 is substantially the same as the parameter encoding unit 2116 of
The audio decoding apparatus 2330 shown in
In
The mode determination unit 2333 may check coding mode information included in the bitstream and provide a current frame to the frequency domain excitation decoding unit 2334 or the time domain excitation decoding unit 2335.
The frequency domain excitation decoding unit 2334 may operate when a coding mode is the music mode or the frequency domain mode and generate synthesized spectral coefficients by performing decoding through a general transform decoding process when the current frame is a good frame. When the current frame is an erasure frame, and a coding mode of a previous frame is the music mode or the frequency domain mode, the frequency domain excitation decoding unit 2334 may generate synthesized spectral coefficients by scaling spectral coefficients of a PGF through a packet loss concealment algorithm. The frequency domain excitation decoding unit 2334 may generate an excitation signal that is a time domain signal by performing a frequency-time transform on the synthesized spectral coefficients.
The time domain excitation decoding unit 2335 may operate when the coding mode is the speech mode or the time domain mode and generate an excitation signal that is a time domain signal by performing decoding through a general CELP decoding process when the current frame is a good frame. When the current frame is an erasure frame, and the coding mode of the previous frame is the speech mode or the time domain mode, the time domain excitation decoding unit 2335 may perform a packet loss concealment algorithm in the time domain.
The LP synthesis unit 2336 may generate a time domain signal by performing LP synthesis for the excitation signal provided from the frequency domain excitation decoding unit 2334 or the time domain excitation decoding unit 2335.
The post-processing unit 2337 may perform filtering, up-sampling, or the like for the time domain signal provided from the LP synthesis unit 2336, but is not limited thereto. The post-processing unit 2337 provides a reconstructed audio signal as an output signal.
The audio encoding apparatus 2410 shown in
The mode determination unit 2413 may determine a coding mode of an input signal by referring to a characteristic and a bit rate of the input signal. The mode determination unit 2413 may determine the coding mode as a CELP mode or another mode based on whether a current frame is the speech mode or the music mode according to the characteristic of the input signal and based on whether a coding mode efficient for the current frame is the time domain mode or the frequency domain mode. The mode determination unit 2413 may determine the coding mode as the CELP mode when the characteristic of the input signal corresponds to the speech mode, determine the coding mode as the frequency domain mode when the characteristic of the input signal corresponds to the music mode and a high bit rate, and determine the coding mode as an audio mode when the characteristic of the input signal corresponds to the music mode and a low bit rate. The mode determination unit 2413 may provide the input signal to the frequency domain encoding unit 2414 when the coding mode is the frequency domain mode, provide the input signal to the frequency domain excitation encoding unit 2416 via the LP analysis unit 2415 when the coding mode is the audio mode, and provide the input signal to the time domain excitation encoding unit 2417 via the LP analysis unit 2415 when the coding mode is the CELP mode.
The frequency domain encoding unit 2414 may correspond to the frequency domain encoding unit 2114 in the audio encoding apparatus 2110 of
The audio decoding apparatus 2430 shown in
The mode determination unit 2433 may check coding mode information included in a bitstream and provide a current frame to the frequency domain decoding unit 2434, the frequency domain excitation decoding unit 2435, or the time domain excitation decoding unit 2436.
The frequency domain decoding unit 2434 may correspond to the frequency domain decoding unit 2134 in the audio decoding apparatus 2130 of
The above-described exemplary embodiments may be written as computer-executable programs and may be implemented in general-use digital computers that execute the programs by using a non-transitory computer-readable recording medium. In addition, data structures, program instructions, or data files, which can be used in the embodiments, can be recorded on a non-transitory computer-readable recording medium in various ways. The non-transitory computer-readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the non-transitory computer-readable recording medium include magnetic storage media, such as hard disks, floppy disks, and magnetic tapes, optical recording media, such as CD-ROMs and DVDs, magneto-optical media, such as optical disks, and hardware devices, such as ROM, RAM, and flash memory, specially configured to store and execute program instructions. In addition, the non-transitory computer-readable recording medium may be a transmission medium for transmitting signal designating program instructions, data structures, or the like. Examples of the program instructions may include not only mechanical language codes created by a compiler but also high-level language codes executable by a computer using an interpreter or the like.
While the exemplary embodiments have been particularly shown and described, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the inventive concept as defined by the appended claims. It should be understood that the exemplary embodiments described therein should be considered in a descriptive sense only and not for purposes of limitation. Descriptions of features or aspects within each exemplary embodiment should typically be considered as available for other similar features or aspects in other exemplary embodiments.
This application is a Continuation Application of U.S. application Ser. No. 15/500,264, filed on Apr. 28, 2017, which is a National Stage of International Application No. PCT/IB2015/001782, filed on Jul. 28, 2015, which claims priority to U.S. Provisional Application No. 62/029,708, filed on Jul. 28, 2014, in the U.S. Patent and Trademark Office, the disclosures of which are incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
6055497 | Hallkvist | Apr 2000 | A |
6549886 | Partalo | Apr 2003 | B1 |
6757654 | Westerlund et al. | Jun 2004 | B1 |
8204743 | Sung et al. | Jun 2012 | B2 |
8457115 | Zhan et al. | Jun 2013 | B2 |
20040039464 | Virolainen | Feb 2004 | A1 |
20060271359 | Khalil | Nov 2006 | A1 |
20100312553 | Fang | Dec 2010 | A1 |
20110208517 | Zopf | Aug 2011 | A1 |
20130304464 | Wang | Nov 2013 | A1 |
20140142957 | Sung et al. | May 2014 | A1 |
20150142452 | Sung | May 2015 | A1 |
20150255079 | Huang | Sep 2015 | A1 |
20160148618 | Huang | May 2016 | A1 |
20190051311 | Sung et al. | Feb 2019 | A1 |
20200066284 | Sung | Feb 2020 | A1 |
Number | Date | Country |
---|---|---|
104718571 | Jun 2015 | CN |
2 874 149 | May 2015 | EP |
2005-77889 | Mar 2005 | JP |
2015-527765 | Sep 2015 | JP |
2015-534655 | Dec 2015 | JP |
10-2011-0002070 | Jan 2011 | KR |
10-2014-0040055 | Apr 2014 | KR |
10-2015-0021034 | Feb 2015 | KR |
2013058635 | Apr 2013 | WO |
2013183977 | Dec 2013 | WO |
2014046526 | Mar 2014 | WO |
Entry |
---|
Communication dated Jul. 9, 2019 issued by the Japanese Patent Office in counterpart Japanese Patent Application No. 2017-504656. |
Communication dated Nov. 28, 2017, issued by the European Patent Office in counterpart European Patent Application No. 15827783.0. |
ETSI TS 126 091 V10.0.0, “Digital cellular telecommunications system (Phase 2+); Universal Mobile Telecommunications System (UMTS); LTE; Mandatory Speech Codec speech processing functions; Adaptive Multi-Rate (AMR) speech codec; Error concealment of lost frames”, (3GPP TS 26.091 version 10.0.0 Release 10), Apr. 2011, total 16 pages. |
Written Opinion (PCT/ISA/237) dated Mar. 18, 2016 issued by the International Searching Authority in counterpart International Application No. PCT/IB2015/001782. |
International Search Report (PCT/ISA/210) dated Mar. 18, 2016 issued by the International Searching Authority in counterpart International Application No. PCT/IB2015/001782. |
3GPP TS 26.290 V1.0.0, “3rd Generation Partnership Project; Technical Specification, Group Service and System Aspects; Audio Codec Processing Functions; Extended AMR Wideband Codec; Transcoding Functions (Release 6)”, Jun. 2004, total 73 pages. |
Communication dated Feb. 27, 2020 issued by the State Intellectual Property Office of P.R. China in counterpart Chinese Application No. 201580052448.0. |
Communication dated Mar. 17, 2020 issued by the Japanese Intellectual Property Office in counterpart Japanese Application No. 2017-504656. |
Number | Date | Country | |
---|---|---|---|
20190221217 A1 | Jul 2019 | US |
Number | Date | Country | |
---|---|---|---|
62029708 | Jul 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15500264 | US | |
Child | 16363338 | US |