The present invention relates to an audio decoding field, and especially to a compensator and compensation method for audio frame loss in a MDCT (modified discrete cosine transform) domain with no time delay and low complexity.
Packet technology is applied very widely in network communication. Various information, such as voice, audio or other data, are transmitted in the network after being encoded using the packet technology, such as VoIP (voice over Internet Protocol) and so on. The frame information loss of voice and audio resulted from the limitation of the transmission capacity of the information transmitting end, the packet information frame not arriving at the buffer area of the receiving end in a designated delay time, or network congestion and so on causes the quality of the synthetic voice and audio at the decoding end to reduce rapidly, so it needs to use some technologies to compensate for the data of frame loss. The frame loss compensator is precisely a technology which alleviates the reduction of voice and audio quality due to the frame loss. Currently there are many technologies for the frame loss compensation, but most of these technologies are suitable for voice frame loss compensation, while few related technologies for audio frame loss compensation.
The simplest existing method for audio frame loss compensation is a method of repeating the MDCT signal of the last frame or mute replacement. Although the method is simple to implement and has no delay, the compensation effect is average. Other compensation methods, such as GAPES (gap data amplitude phase estimation technology), convert a MDCT coefficient to a DSTFT (Discrete Short-Time Fourier Transform) coefficient. But the methods are of high complexity and large expense of memory. 3GPP performs the audio frame loss compensation with a shaping noise insertion technology, and the method has a good compensation effect for a noise-like signal but a rather worse compensation effect for a multiple-harmonic audio signal.
In general, most of the disclosed audio frame loss compensation technologies have unapparent effects, or are of high calculation complexity and excessively long delay time.
The technical problem to be solved by the invention is to provide a compensator and a compensation method for audio frame loss in a MDCT domain, and the invention has a good compensation result, a low complexity and no delay.
To solve the above problem, the invention provides a compensation method for audio frame loss in a modified discrete cosine transform domain, the method comprising:
step a, when a frame currently lost is a Pth frame, obtaining a set of frequencies to be predicted, and for each frequency in the set of frequencies to be predicted, using phases and amplitudes of a plurality of frames before (P−1)th frame in a MDCT-MDST (modified discrete cosine transform-modified discrete sine transform) domain to predict a phase and an amplitude of the Pth frame in the MDCT-MDST domain, using the predicted phase and amplitude of the Pth frame in the MDCT-MDST domain to obtain a MDCT (modified discrete cosine transform) coefficient of the Pth frame at the each frequency, wherein, the (P−1)th frame is the frame before the Pth frame;
step b, for a frequency in a frame outside the set of frequencies to be predicted, using MDCT coefficients of a plurality of frames before the Pth frame to calculate a MDCT coefficient of the Pth frame at the frequency;
step c, performing an IMDCT (inverse modified discrete cosine transform) for the MDCT coefficients of the Pth frame at all frequencies to obtain a time domain signal of the Pth frame.
The method may be further characterized in that, before the step a, the method further comprises: when detecting that a current frame is lost, judging a type of the currently lost frame, and performing the step a if the currently lost frame is a multiple-harmonic frame.
The method may be further characterized in that the step of judging a type of the currently lost frame comprises:
calculating a spectrum flatness of each frame in K frames before the currently lost frame; if a number of frames whose spectrum flatness is smaller than a threshold value is smaller than or equal to K0 in the K frames, the currently lost frame being a non-multiple-harmonic frame; if the number of frames whose spectrum flatness is smaller than the threshold value is greater than K0, the currently lost frame being a multiple-harmonic frame; wherein, K0<=K, and K0, K are natural numbers.
The method may be further characterized in that when obtaining the set of frequencies to be predicted in the step a, MDCT-MDST-domain complex signals and/or MDCT coefficients of a plurality of frames before the Pth frame are used to obtain a set SC of frequencies to be predicted, or, all frequencies in a frame are directly placed in the set SC of frequencies to be predicted.
The method may be further characterized in that, the step of using MDCT-MDST-domain complex signals and/or MDCT coefficients of a plurality of frames before the Pth frame to obtain the set SC of frequencies to be predicted comprises:
setting said a plurality of frames before the Pth frame as L1 frames, calculating a power of each frequency in the L1 frames, obtaining L1 sets of S1, . . . , SL1 composed of peak-value frequencies in each frame in the L1 frames, and a number of corresponding frequencies in each set being N1, . . . , NL1 respectively;
selecting a set Si from the L1 sets of S1, . . . , SL1, judging whether there is any frequency belonging to all other peak-value frequency sets simultaneously in mj, mj±1, . . . , mj±k for each peak-value frequency mj, j=1 . . . N, in the Si, if yes, putting all the mj, m1±1, . . . , mj±k in the frequency set SC;
if there is no frequency belonging to all other peak-value frequency sets simultaneously for each peak-value frequency mj, j=1 . . . Ni in the Si, putting all the frequencies in a frame in the frequency set SC;
wherein, the k is a nonnegative integer.
The method may be further characterized in that the peak-value frequency refers to a frequency whose power is bigger than powers on two adjacent frequencies thereof.
The method may be further characterized in that when the L1 frames comprise the (P−1)th frame, the power of each frequency in the (P−1)th frame is calculated in the following way: |{circumflex over (v)}p−1(m)|2=[cp−1(m)]2+[cp−1(m+1)−cp−1(m−1)−cp−1(m−1)]2, wherein, |{circumflex over (v)}p−1(m)|2 is the power of a frequency m in the (P−1)th frame, cp−1(m) is the MDCT coefficient of the frequency m in the (P−1)th frame, cp−1(m+1) is the MDCT coefficient of the frequency m+1 in the (P−1)th frame, cp−1(m−1) is the MDCT coefficient of a frequency m−1 in the (P−1)th frame.
The method may be further characterized in that the step of predicting the phase and amplitude of the Pth frame in the MDCT-MDST domain in the step a comprises: for a frequency to be predicted, using phases of L2 frames before the (P−1)th frame in the MDCT-MDST domain at the frequency to perform a linear extrapolation or a linear fit to obtain the phase of the Pth frame in the MDCT-MDST domain at the frequency; obtaining the amplitude of the Pth frame in the MDCT-MDST domain at the frequency from an amplitude of one of the L2 frames in the MDCT-MDST domain at the frequency, wherein, L2>1.
The method may be further characterized in that, when L2=2, a t1th frame and a t2th frame are used to represent the two frames respectively, and the phase of the Pth frame in the MDCT-MDST domain is predicted in the following way: for a frequency m to be predicted,
wherein, the φp (m) is a predicted value of the phase of the Pth frame in the MDCT-MDST domain at the frequency m, the t1(m) is a phase of the t1th frame in the MDCT-MDST domain at the frequency m, and the φt2 (m) is a phase of the t2th frame in the MDCT-MDST domain at the frequency m.
The method may be further characterized in that, when L2>2, for a frequency to be predicted, a linear fit is performed for phases of the L2 frames before the (P−1)th frame in the MDCT-MDST domain at the frequency to obtain the phase of the Pth frame in the MDCT-MDST domain at the frequency.
The method may be further characterized in that, in the step a, the set of frequencies to be predicted is obtained by using MDCT-MDST-domain complex signals of the (P−2)th frame and the (P−3)th frame and a MDCT coefficient of the (P−1)th frame; and for each frequency in the frequency set SC, the phase and amplitude of the Pth frame in the MDCT-MDST domain is predicted by using phases and amplitudes of the (P−2)th frame and the (P−3)th frame in the MDCT-MDST domain.
The method may be further characterized in that, in the step b, half of a MDCT coefficient of the (P−1)th frame is used as the MDCT coefficient of the Pth frame.
The invention also provides a compensator for audio frame loss in a modified discrete cosine transform domain, the compensator comprising a multiple-harmonic frame loss compensation module, a second compensation module and an IMDCT module, wherein:
the multiple-harmonic frame loss compensation module is configured to, when a frame currently lost is a Pth frame, obtain a set of frequencies to be predicted, and for each frequency in the set of frequencies to be predicted, use phases and amplitudes of a plurality of frames before a (P−1)th frame in a MDCT-MDST domain to predict a phase and an amplitude of the Pth frame in the MDCT-MDST domain, use the predicted phase and amplitude of the Pth frame in the MDCT-MDST domain to obtain a MDCT coefficient of the Pth frame at the each frequency, and transmit the MDCT coefficient to the second compensation module, wherein, the (P−1)th frame is a last frame of the Pth frame;
the second compensation module is configured to, for a frequency outside the set of frequencies to be predicted in a frame, use MDCT coefficients of a plurality of frames before the Pth frame to calculate a MDCT coefficient of the Pth frame at the frequency, and transmit the MDCT coefficients of the Pth frame at all frequencies to the IMDCT module;
the IMDCT module is configured to perform an IMDCT for the MDCT coefficients of the Pth frame at all frequencies to get a time domain signal of the Pth frame.
The compensator for frame loss may be further characterized in that the compensator further comprises a frame type detection module, wherein:
the frame type detection module is configured to, when detecting that a frame is lost, judge a type of the currently lost frame, and instruct the multiple-harmonic frame loss compensation module to make compensation if the currently lost frame is a multiple-harmonic frame.
The compensator for frame loss may be further characterized in that the frame type detection module is configured to judge the type of the currently lost frame in the following way: a spectrum flatness of each frame in K frames before the currently lost frame is calculated; if a number of frames whose spectrum flatness is smaller than a threshold value is smaller than K0 in the K frames, the currently lost frame is a non-multiple-harmonic frame; if the number of frames whose spectrum flatness is smaller than the threshold value is greater than K0, the currently lost frame is a multiple-harmonic frame; wherein, K0<=K, and K0, K are natural numbers.
The compensator for a frame loss may be further characterized in that, the multiple-harmonic frame loss compensation module comprises a frequency set generation unit, and the multiple-harmonic frame loss compensation module is configured to, through the frequency set generation unit, use MDCT-MDST-domain complex signals and/or MDCT coefficients of a plurality of frames before the Pth frame to obtain a set SC of frequencies to be predicted, or, put directly all frequencies in a frame in the set SC of frequencies to be predicted.
The compensator for a frame loss may be further characterized in that,
the frequency set generation unit is configured to use MDCT-MDST-domain complex signals and/or MDCT coefficients of a plurality of frames before the Pth frame to obtain the set SC of frequencies to be predicted in the following way:
setting a plurality of frames before the Pth frame as L1 frames, calculating a power of each frequency in the L1 frames, obtaining L1 sets of S1, . . . , SL1 composed of peak-value frequencies in each frame in the L1 frames, and a number of corresponding frequencies in each set being N1, . . . , NL1 respectively;
selecting a set Si from the L1 sets of S1, . . . , SL1, judging whether there is any frequency belonging to all other peak-value frequency sets simultaneously in mj, mj±1, . . . , mj±k for each peak-value frequency mj, j=1. . . Ni in the Si; if yes, putting all the mj, mj±1, . . . , mj±k in the frequency set SC;
if there is no frequency belonging to all other peak-value frequency sets simultaneously, putting all the frequencies in a frame in the frequency set SC; wherein, the k is a nonnegative integer.
The compensator for frame loss may be further characterized in that the peak-value frequency refers to a frequency whose power is bigger than powers on two adjacent frequencies thereof.
The compensator for frame loss may be further characterized in that the frequency set generation unit is configured to, when the L1 frames comprise the (P−1)th frame, to calculate the power of each frequency in the (P−1)th frame in the following way: |{circumflex over (v)}p 1(m)|2=[cp 1(m)]2+[cp 1(m+1)−cp 1(m−1)]2, wherein, |{circumflex over (v)}p 1(m)|2 is the power of the frequency m in the (P−1)th frame, cp−1(m) is the MDCT coefficient of the frequency m in the (P−1)th frame, cp−1 (m+1) is the MDCT coefficient of the frequency m+1 in the (P−1)th frame, cp−1(m−1) is the MDCT coefficient of the frequency m−1 in the (P−1)th frame.
The compensator for frame loss may be further characterized in that,
the multiple-harmonic frame loss compensation module further comprises a coefficient generation unit, and the multiple-harmonic frame loss compensation module is configured to, through the coefficient generation unit, to use phases and amplitudes of the L2 frames before the (P−1)th frame in the MDCT-MDST domain to predict a phase and an amplitude of each frequency belonging to the set of frequencies to be predicted in the Pth frame, use the predicted phase and amplitude of the Pth frame to obtain the MDCT coefficient of the Pth frame corresponding to the each frequency, and transmit the MDCT coefficient to the second compensation module, wherein, L2>1;
the coefficient generation unit comprises a phase prediction sub-unit and an amplitude prediction sub-unit, wherein:
the phase prediction sub-unit is configured to, for a frequency to be predicted, use phases of L2 frames in the MDCT-MDST domain at the frequency to perform a linear extrapolation or a linear fit to obtain the phase of the Pth frame in the MDCT-MDST domain at the frequency;
the amplitude prediction sub-unit is configured to obtain the amplitude of the Pth frame in the MDCT-MDST domain at the frequency from an amplitude of one of the L2 frames in the MDCT-MDST domain at the frequency.
The compensator for frame loss may be further characterized in that the phase prediction sub-unit is configured to, when L2=2, predict the phase of the Pth frame in the MDCT-MDST domain in following way: for a frequency m to be predicted,
wherein, a t1th frame and a t2th frame represent two frames before the (P−1)th frame respectively, the {circumflex over (φ)}p(m) is a predicted value of the phase of the Pth frame in the MDCT-MDST domain at the frequency m, the φt1(m) is a phase of the t1th frame in the MDCT-MDST domain at the frequency m, the φt1(m) is a phase of the t2th frame in the MDCT-MDST domain at the frequency m.
The compensator for a frame loss may be further characterized in that the phase prediction sub-unit is configured to, when L2>2, predict the phase of the Pth frame in the MDCT-MDST domain in the following way: for a frequency to be predicted, performing a linear fit for phases of the selected L2 frames in the MDCT-MDST domain at the frequency to obtain the phase of the Pth frame in the MDCT-MDST domain at the frequency.
The compensator for frame loss may be further characterized in that the multiple-harmonic frame loss compensation module is configured to use MDCT-MDST-domain complex signals of the (P−2)th frame and the (P−3)th frame and a MDCT coefficient of the (P−1)th frame to obtain the set of frequencies to be predicted, and use phases and amplitudes of the (P−2)th frame and the (P−3)th frame in the MDCT-MDST domain to predict the phase and amplitude of the Pth frame in the MDCT-MDST domain for each frequency in the frequency set.
The compensator for frame loss may be further characterized in that the second compensation module is configured to use half of a MDCT coefficient value of the (P−1)th frame as the MDCT coefficient value of the Pth frame at a frequency outside the set of frequencies to be predicted.
Through the compensator and compensation method for audio frame loss in a MDCT domain proposed in the invention, for a non-multiple-harmonic, the MDCT coefficient of the currently lost frame is obtained by using the MDCT coefficient values of a plurality of frames before the currently lost frame through calculation; and for a multiple-harmonic, the MDCT coefficient of the currently lost frame is obtained by the characteristic of the currently lost frame in the MDCT-MDST domain. Compared with the prior art the invention has the advantages of no delay, small amount of calculation and small volume of memory space, easy implementation and so on.
The main idea of the invention is as follows: the MDCT-MDST domain phase and amplitude of the currently lost frame are predicted by taking advantage of the characteristic that the phase of a harmonic signal is linear in a MDCT-MDST domain and using the information of a plurality of fames before the currently lost frame, thereby obtaining the MDCT coefficient of the currently lost frame, according to which, the time domain signal of the currently lost frame is further obtained.
The invention provides a compensation method for audio frame loss in a MDCT domain, as shown in
step S1, when detecting that the data packet of the current frame is lost, a decoding end, calling the current frame as the currently lost frame, judging the type of the currently lost frame, and proceeding to step S2 if the currently lost frame is a non-multiple-harmonic frame; or else, proceeding to step S3;
wherein, the operation of judging the type of the currently lost frame is to make judgment according to the MDCT coefficients of K frames before the currently lost frame, as shown in
1a) calculating the spectrum flatness of each frame of the K frames before the currently lost frame, and considering that the frame is mainly composed of multiple-harmonics and is a multiple-harmonic steady state signal frame if the spectrum flatness is smaller than a preset threshold;
1b) if the number of multiple-harmonic steady state signal frames in the K frames is smaller than or equal to K0 frames, considering that the currently lost frame is a non-multiple-harmonic, or else the currently lost frame is a multiple-harmonic (such as a music frame), wherein, K0<=K, K0 and K are preset values.
The invention is not limited to use the method shown in
step S2, if it is judged the currently lost frame is a non-multiple-harmonic frame, using the MDCT coefficient values of a plurality of frames before the currently lost frame to calculate the MDCT coefficient value of the currently lost frame for every frequency in the frame; then proceeding to step S4.
For example, half of or other ratios of the MDCT coefficient value of the last frame of the currently lost frame is used as the MDCT coefficient value of the currently lost frame.
step S3, if it is judged the currently lost frame is a multiple-harmonic frame, getting through estimation the MDCT coefficient value of the currently lost frame by using the no delay multiple-harmonic frame loss compensation algorithm, as shown in
3a) when the Pth frame is lost, i.e. the currently lost frame is the Pth frame, taking L1 frames before the Pth frame.
When the L1 frames comprise the (P−1)th frame, FMDST (Fast Modified Discrete Sine Transform) algorithm is used to obtain the MDST (Modified Discrete Sine Transform) coefficients of L1-1 frames in the L1 frames except the (P−1)th frame according to the MDCT coefficients obtained through decoding of the frames before the currently lost frame. For the each frame in the L1-1 frames, the MDCT-MDST-domain complex signal of each frame is composed of the MDST coefficient and the MDCT coefficient of the frame, wherein, the MDCT coefficient is the real part parameter, and the MDST coefficient is the imaginary part parameter.
When the L1 frames do not comprise the (P−1)th frame, the FMDST algorithm is used to obtain the MDST coefficients of the L1 frames according to the MDCT coefficients obtained through the decoding of the frames before the currently lost frame. For the each frame in the L1 frames, the MDCT-MDST-domain complex signal of each frame is composed of the MDST coefficient and the MDCT coefficient of the frame, wherein, the MDCT coefficient is the real part parameter, and the MDST coefficient is the imaginary part parameter.
Wherein, the method for calculating the MDST coefficient is as follows:
an inverse MDCT transformation is performed to obtain the time domain signal of the (P−2)th frame according to the MDCT coefficients of the (P−1)th frame and the (P−2)th frame, and an inverse MDCT transformation is performed to obtain the time domain signal of the (P−3)th frame according to the MDCT coefficients of the (P−2)th frame and the (P−3)th frame, and so forth;
the FMDST algorithm is used to obtain the MDST coefficient of the (P−2)th frame according to the time domain signals of the (P−2)th frame and the (P−3)th frame, and the FMDST algorithm is used to obtain the MDST coefficient of the (P−3)th frame according to the time domain signals of the (P−3)th frame and the (P−4)th frame, and so forth.
Wherein, the sequence of the Pth frame, the (P−1)th frame and other frames are as shown in
3b) finding the set of peak-value frequencies for each frame in the above L1 frames.
If the L1 frames comprise the (P−1)th frame, then:
for the (P−1)th frame, the power of each frequency in the (P−1)th frame is calculated according to the MDCT coefficient of the (P−1)th frame, and the set composed of a plurality of preceding frequencies having the biggest power is obtained;
for each frame other than the (P−1)th frame, the power of each frequency in the frame is calculated according to the MDCT-MDST-domain complex signal of the frame, and the set composed of a plurality of preceding frequencies having the biggest power is obtained; wherein, the peak-value frequency refers to the frequency whose power is bigger than the powers on the two adjacent frequencies thereof.
If the L1 frames do not comprise the (P−1)th frame, then:
for each frame in the L1 frames, the set composed of a plurality of preceding frequencies having the biggest powers is obtained according to the MDCT-MDST-domain complex signal of the frame,
the number of frequencies in the L1 sets may be the same or different.
The L1 sets may be also obtained by other methods, for example, the set composed of peak-value frequencies whose powers are greater than a set threshold is taken for each frame, and the threshold for each frame may be the same or different.
3c) if L1>1, assuming that the L1 frequency sets are named as S1, . . . , SL1, and the number of the corresponding frequencies in the sets are N1, . . . , NL1, selecting a set Si, and judging, for each peak-value frequency mj (j=1 . . . Ni) in the Si, whether any frequency among mj, mj±1, . . . , mj±K (K is a nonnegative integer, which is commonly to be K=0 or 1) belongs simultaneously to all the other peak-value frequency sets, if yes, putting all the mj, mj±1, . . . , mj±K in the frequency set SC.
If there is no frequency among the mj, mj±1, . . . , mj±K, for each peak-value frequency mj (j=1 . . . Ni) in the Si, belonging simultaneously to all the other peak-value frequency sets, all the frequencies in the frame are directly put in the frequency set SC.
If L1=1, it is assumed that the frequency set is named as S1, and the corresponding number of frequencies is N1, for each peak-value frequency mi (i=1 . . . N1) in the peak-value frequency set S1, all the mi, mi±1, . . . , mi±K (K is a nonnegative integer, which is commonly selected as K=0 or 1) are put in the frequency set SC.
The above sections of steps 3a, 3b and 3c may also not be performed, and all the frequencies in a frame are directly put in the frequency set SC.
3d) taking L2 (L2>1) frames before the (P−1)th frame, calculating and obtaining the MDCT-MDST-domain complex signals of the L2 frames (the specific calculation method is the same with the method in the step 3a). For each frequency in the frequency set SC, the phase of the currently lost frame in the MDCT-MDST domain is obtained by using the phases of the L2 frames in the MDCT-MDST domain, and the amplitude of the currently lost frame in the MDCT-MDST domain is obtained by using the amplitudes of the L2 frames in the MDCT-MDST domain, and then the MDCT coefficient of the currently lost frame corresponding to each frequency is obtained according to the phase and amplitude of the currently lost frame.
If L2=2, for all the frequencies in the frequency set SC, the phases of the two selected frames at each frequency to be predicted are used to perform linear extrapolation to obtain the phase of the MDCT-MDST-domain complex signal of the currently lost frame at the frequency; the amplitude of the MDCT-MDST-domain complex signal of the currently lost frame at the frequency is obtained from the MDCT-MDST domain amplitude of one of the two frames at the frequency, i.e. the MDCT-MDST domain amplitude of one of the two frames at the frequency is used as the MDCT-MDST domain amplitude of the currently lost frame at the frequency.
One method for the linear extrapolation is as follows:
when L2=2, the t1th frame and the t2th frame are used to represent the two frames respectively, the phase of the MDCT-MDST domain of the Pth frame is predicted in the following way: for the frequency m to be predicted,
the {circumflex over (φ)}p(m) is the predicted value of the phase of the Pth frame in the MDCT-MDST domain at the frequency m, the φt1(m) is the phase of the t1th frame in the MDCT-MDST domain at the frequency m, and the φt2(m) is the phase of the t2th frame in the MDCT-MDST domain at the frequency m.
If L2>2, for all the frequencies in the set SC, the MDCT-MDST domain phases of the L2 frames at each frequency to be predicted are used to perform linear fit to get the phase of the MDCT-MDST-domain complex signal of the currently lost frame at the frequency; the amplitude of the MDCT-MDST-domain complex signal of the currently lost frame at the frequency is obtained from the MDCT-MDST domain amplitude of one of the two frames at the frequency, i.e. the MDCT-MDST domain amplitude of one of the two frames at the frequency is used as the MDCT-MDST domain amplitude of the currently lost frame at the frequency.
3e) for a frequency outside the frequency set SC, calculating the MDCT coefficient value of the Pth frame using the MDCT coefficient values of a plurality of frames before the Pth frame. For example, half of the MDCT coefficient value of the last frame of the currently lost frame is used as the MDCT coefficient value of the currently lost frame.
In another example of the invention, in step S3 or before the step 3a, the step “using the MDCT coefficient values of a plurality of frames before the currently lost frame to calculate the MDCT coefficient value of the currently lost frame for every frequency in the frame” is performed, and then steps 3a, 3b, 3c and 3d are performed, and then step 3e is skipped to enter the step S4.
Other variations may be performed, for example, step 3e may be performed after the step 3c and before the step S4, i.e. may be performed just after the frequency set SC is obtained.
Step S4, performing an IMDCT (inverse MDCT) transformation for the MDCT coefficients of the currently lost frame at all the frequencies to obtain the time domain signal of the currently lost frame.
The above example may have the following variations: firstly, the initial compensation is performed, i.e. the MDCT coefficient value of the Pth frame is calculated by using the MDCT coefficient values of a plurality of frames before the Pth frame, and then the type of the currently lost frame is judged, and different steps are performed according to the type of the currently lost frame; the step S4 is directly performed if the frame is a non-multiple-harmonic frame, and if the frame is a multiple-harmonic frame, steps 3a, 3b, 3c and 3d in the step S3 are performed and then the step 3e is skipped to perform the step S4 directly.
The invention will be further illustrated below with reference to two specific examples.
Step 110, a decoding end judges whether the current frame (i.e. currently lost frame) is a multiple-harmonic frame (for example, a music frame composed of various harmonics) or not when detecting data packet loss of the current frame, and performs step 120 if the current frame is a non-multiple-harmonic frame, or else, performs the step 130.
The specific judging method is:
calculating the spectrum flatness of 10 frames before the currently lost frame, and considering the frame to be a multiple-harmonic steady state signal frame when the spectrum flatness is smaller than 0.1; if more than 8 frames in the 10 frames before the lost frame are multiple-harmonic steady state signal frames, considering the currently lost frame to be a multiple-harmonic frame, or considering the currently lost frame to be a non-multiple-harmonic frame. The method for calculating the spectrum flatness is as follows:
the spectrum flatness of the ith frame SFMi is defined as the ratio of the geometric mean to the algorithm mean of the amplitude of the transformation domain signal of the ith frame signal:
wherein,
is the geometric mean of the amplitude of the ith frame signal,
is the algorithm mean of the amplitude of the ith frame signal, ci(m) is the MDCT coefficient of the ith frame at the frequency m, and M is the length of the MDCT domain signal frame.
Step 120, if the currently lost frame is judged to be a non-multiple-harmonic frame, half of the MDCT coefficient value of the last frame of the currently lost frame is used as the MDCT coefficient value of the currently lost frame for every frequency in the frame, i.e.
c
p(m)=0.5*cp−1(m)m=0,1,2,3 . . . M−1 (2)
then step 140 is performed.
Step 130, if the currently lost frame is judged to be a multiple-harmonic frame, the MDCT coefficient of the currently lost frame is obtained by using the no delay multiple-harmonic frame loss compensation algorithm, and the step 140 is performed.
The specific method for using the no delay multiple-harmonic frame loss compensation algorithm to obtain the MDCT coefficient of the currently lost frame is as shown in
firstly, using half of the MDCT coefficient value of the (P−1)th frame at the frequency as the MDCT coefficient value of the Pth frame at the frequency for all the frequencies in a frame, as shown in formula (2);
then, using FMDST algorithm to obtain the MDST coefficients sp−2(m) and sp−3(m) of the (P−2)th frame and the (P−3)th frame according to the MDCT coefficients, which are obtained through decoding, of the frames before the currently lost frame. The obtained MDST coefficients of the (P−2)th frame and the (P−3)th frame and the MDCT coefficients of the (P−2)th frame and the (P−3)th frame cp−2(m) and cp−3(m) compose the complex number signals in the MDCT-MDST domain:
v
p−2(m)=cp−2(m)+jsp−2(m) (3)
v
p−3(m)=cp−3(m)+jsp−3(m) (4)
wherein, j is an imaginary number symbol;
calculating the power of each frequency in the (P−2)th frame and the (P−3)th frame |vp−2(m)|2,|vp−3(m)|2, composing the frequency sets mp−2, mp−3 by taking the first 10 peak-value frequencies having the biggest power respectively in the (P−2)th frame and the (P−3)th frame (if the number of the peak-value frequencies in any frame is less than 10, all the peak-value frequencies in the frame are taken);
estimating the power of each frequency in the (P−1)th frame according to the MDCT coefficient of the (P−1)th frame.
|{circumflex over (v)}p−1(m)|2=[cp−1(m)]2+[cp−1(m+1)−cp−1(m−1)]2 (5)
wherein, |{circumflex over (v)}p−1(m)|2 is the power of the (P−1)t′ frame at the frequency m, cp−1(m) is the MDCT coefficient of the (P−1)th frame at the frequency m, the rest is similar;
obtaining through calculation the first 10 peak-value frequencies having the biggest power in the (P−1)th frame mip 1, i=1 . . . 10, wherein if the number of the peak-value frequencies in any frame is less than 10, all the peak-value frequencies in the frame mip−1, i=1 . . . Np−1, are taken;
for each mip−1, judging whether any of mip−1, mip−1±1 (frequencies near the peak-value frequency are added to the peak-value frequency set of the (P−1)th frame, because their power may be also very big) belongs to the sets mp−2, mp−3 simultaneously, if yes, obtaining the phase and amplitude of the MDCT-MDST-domain complex signal of the Pth frame at frequencies mip−1, mip−1±1 (the following calculation is made for all the three frequencies mip−1, mip−1±1 as long as one of the mip−1, mip−1±1 belongs to mp−2, mp−3 simultaneously) according to the following formulas (6)-(11):
φp−2(m)=∠vp−2(m) (6)
φp−3(m)=∠vp−3(m) (7)
A
p−2(m)=|vp−2(m)| (8)
A
p−3(m)=|vp−3(m)| (9)
{circumflex over (φ)}p(m)=φp−2(m)+2[φp−2(m)−φp−3(m)] (10)
Â
p(m)=Ap−2(m) (11)
wherein, φ, A represent phase and amplitude respectively. For example, {circumflex over (φ)}p(m) is the phase of the Pth frame at the frequency m, {circumflex over (φ)}p−2(m) is the phase of the (P-2)th frame at the frequency m, {circumflex over (φ)}p−3(m) is the phase of the (P−3)th frame at the frequency m, Âp(m) is the amplitude of the Pth frame at the frequency m, and Âp−2(m) is the amplitude of the (P−2)th frame at the frequency m, the rest is similar;
accordingly, the MDCT coefficient of the Pth frame at the frequency m obtained through compensation is
ĉ
p(m)=Âp(m)cos [{circumflex over (φ)}p(m)] (12)
if no frequency in all the mip−1, mip−1±1 belongs to the sets mp−2, mp−3 simultaneously, estimating the MDCT coefficients for all the frequencies in the currently lost frame according to the formulas (6) to (12).
The operation of calculating the frequencies to be predicted may also not be performed, and MDCT coefficients are directly estimated according to the formulas (6) to (12) for all the frequencies in the currently lost frame.
Step 140, IMDCT transformation is performed for the MDCT coefficients of the currently lost frame at all the frequencies to obtain the time domain signal of the currently lost frame.
Step 210, a decoding end judges whether the current frame (i.e. currently lost frame) is a multiple-harmonic frame (for example, a music frame composed of various harmonics) or not when detecting data packet loss of the current frame, and performs step 220 if the current frame is a non-multiple-harmonic frame, or else, performs the step 230.
The specific method for judging whether the currently lost frame is a multiple-harmonic frame or not is:
calculating the spectrum flatness of 10 frames before the currently lost frame, and for each frame, considering the frame to be a multiple-harmonic steady state signal frame when the spectrum flatness is smaller than 0.1; if more than 8 frames in the 10 frames before the lost frame are multiple-harmonic steady state signal frames, considering the currently lost frame to be a multiple-harmonic frame, otherwise considering the currently lost frame to be a non-multiple-harmonic frame. Wherein, the calculating method of the spectrum flatness is as follows:
the spectrum flatness of the ith frame SFMi is defined as the ratio of the geometric mean to the algorithm mean of the amplitude of the transformation domain signal of the ith frame signal:
wherein,
is the geometric mean of the amplitude of the ith frame signal,
is the algorithm mean of the amplitude of the ith frame signal, ci(m) is the MDCT coefficient of the ith frame at the frequency m, and M is the length of the MDCT domain signal frame.
Step 220, if the currently lost frame is judged to be a non-multiple-harmonic frame, half of the MDCT coefficient value of the last frame of the currently lost frame is used as the MDCT coefficient value of the currently lost frame for every frequency in the frame, i.e.
c
p(m)=0.5*cp−1(m)m=0,1,2,3 . . . M−1 (14)
then step 240 is performed.
Step 230, if the currently lost frame is judged to be a multiple-harmonic frame, the MDCT coefficient of the currently lost frame is obtained by using the no delay multiple-harmonic frame loss compensation algorithm, and the step 240 is performed.
The specific method for using the no delay multiple-harmonic frame loss compensation algorithm to obtain the MDCT coefficient of the currently lost frame is: when the data packet of the Pth frame is lost, using FMDST algorithm to obtain the MDST coefficients sp−2(m), sp−3(m) and sp−4(m) of the (P−2)th frame, the (P−3)th frame, and the (P−4)th frame according to the MDCT coefficients, which are obtained through decoding, of the frames before the currently lost frame. The obtained MDST coefficients of the (P−2)th frame, the (P−3)th frame, and the (P−4)th frame and the MDCT coefficients of the (P−2)th frame, the (P−3)th frame, and the (P−4)th frame cp−2(m), cp−3(m) and cp−4(m) compose the complex number signals in the MDCT-MDST domain:
v
p−2(m)=cp−2(m)+jsp−2(m) (15)
v
p−3(m)=cp−3(m)+jsp−3(m) (16)
v
p−4(m)=cp−4(m)+jsp−4(m) (17)
wherein, j is an imaginary number symbol.
calculating the power of each frequency in the (P−2)th frame, the (P−3)th frame and the (P−4)th frame |vp−2(m)|2, |vp−3(m)|2,|vp−4(m)|2, composing the frequency sets mp−2,mp−3,mp−4 taking the first 10 peak-value frequencies having the biggest power respectively in the (P−2)th frame, the (P−3)th frame and the (P−4)th frame (if the number of the peak-value frequencies in any frame is less than 10, all the peak-value frequencies in the frame are taken);
for each frequency mip−4 in the frequency set mp−4 , judging whether any of mip−4, mip−4±1 (frequencies near the peak-value frequency are added to the peak-value frequency set of the P−4 frame, because their power may be also very big) belongs to the sets mp−2,mp−3 simultaneously, and if yes, obtaining the phase and amplitude of the MDCT-MDST-domain complex signal of the Pth frame at frequencies mip−1, mip−1±1 (the following calculation is made for all the three frequencies mip−1, mip−1±1 as long as one of the mip 1, mip 1±1 belongs to mp 2, mp 3 simultaneously) according to the following formulas (18)-(27):
φp−2(m)=∠vp−2(m) (18)
φp−3(m)=∠vp−3(m) (19)
φp−4(m)=∠vp−4(m) (20)
A
p−2(m)=|vp−2(m)| (21)
A
p−3(m)=|vp−3(m)| (22)
A
p−4(m)=|vp−4(m)| (23)
Â
p(m)=Ap−2(m) (24)
wherein, φ, A represents phase and amplitude respectively. For example, {circumflex over (φ)}p(m) is the phase of the Pth frame at the frequency m, {circumflex over (φ)}p−2(m) is the phase of the (P−2)th frame at the frequency m, {circumflex over (φ)}p−3(m) is the phase of the (P−3)th frame at the frequency m, Âp(m) is the amplitude of the Pth frame at the frequency m, and Âp−2(m) is the amplitude of the (P−2)th frame at the frequency m, the rest is similar.
The least square method is used in the following to calculate a linear fit function of the phases of different frames at the same frequency
φ(m)=a0+a1x (25)
wherein, x indicates a frame sequence number, a0, a1 indicate the coefficients of the linear fit function to be calculated.
a0, a1 are obtained from the following system of formulas according to the method for measuring the fitting error using the least squares criterion
In other examples, the fitting error may also be measured and the fitting coefficients may be estimated using criterions other than the least squares criterion. The phase of the Pth frame at the frequency m then may be estimated according to the obtained a0, a1
{circumflex over (φ)}p(m)=a0+a1p (27)
accordingly, the MDCT coefficient of the Pth frame at the frequency m obtained through compensation is
ĉ
p(m)=Âp(m)cos [{circumflex over (φ)}p(m)] (28)
If any frequency in all the mip−4, mip−4±1 belongs to the sets mp−2, mp−3 simultaneously, SC is used to indicate the set composed of all the frequencies compensated according to the above formulas (18)-(28), and half of the MDCT coefficient value of the last frame of the currently lost frame is taken as the MDCT coefficient value of the currently lost frame for the frequency which is outside the frequency set Sc in the frame.
If no frequency in all the mip−4, mip−4±1 belongs to the sets mp−2, mp−3 simultaneously, the MDCT coefficients are estimated for all the frequencies in the currently lost frame according to the formulas (18) to (28).
The operation of calculating the frequencies to be predicted may also not be performed, and MDCT coefficients are directly estimated according to the formulas (18) to (28) for all the frequencies in the currently lost frame.
Step 240, IMDCT transformation is performed for the MDCT coefficients of the currently lost frame at all the frequencies to obtain the time domain signal of the currently lost frame.
The invention also provides a compensator for audio frame loss in a MDCT domain,the compensator comprising a frame type detection module, a non-multiple-harmonic frame loss compensation module, a multiple-harmonic frame loss compensation module, a second compensation module and an IMDCT module, as shown in
the frame type detection module is configured to judge the type of the currently lost frame when detecting that the current frame is lost, and instruct the non-multiple-harmonic frame loss compensation module to compensate if the currently lost frame is a non-multiple-harmonic frame; instruct the multiple-harmonic frame loss compensation module to compensate if the currently lost frame is a multiple-harmonic frame; the specific method for judging the type of the currently lost frame is as previously described, and thus will not be described here;
the non-multiple-harmonic frame loss compensation module is configured to, for all frequencies in a frame, use the MDCT coefficient values of a plurality of frames before the currently lost frame to calculate the MDCT coefficient value of the currently lost frame, and transmit the MDCT coefficient to the IMDCT module;
the multiple-harmonic frame loss compensation module is configured to, when the currently lost frame is the Pth frame, obtain a set of frequencies to be predicted, and for each frequency in the set of frequencies to be predicted, use the phases and amplitudes of a plurality of frames before (P−1)th frame in a MDCT-MDST domain to predict a phase and an amplitude of the Pth frame in the MDCT-MDST domain, use the predicted phase and amplitude of the Pth frame in the MDCT-MDST domain to obtain a MDCT coefficient of the Pth frame at the each frequency, and transmit the MDCT coefficient to the second compensation module, wherein, the (P−1)th frame is a last frame of the Pth frame;
the multiple-harmonic frame loss compensation module is configured to use MDCT-MDST-domain complex signals of the (P−2)th frame and the (P−3)th frame and a MDCT coefficient of the (P−1)th frame to obtain the set of frequencies to be predicted, and use phases and amplitudes of the (P−2)th frame and the (P−3)th frame in the MDCT-MDST domain to predict the phase and amplitude of the Pth frame in the MDCT-MDST domain for each frequency in the frequency set.
When getting the set of frequencies to be predicted, the multiple-harmonic frame loss compensation module uses MDCT-MDST-domain complex signals and/or MDCT coefficients of a plurality of frames before the Pth frame to obtain the set of frequencies to be predicted, or, put directly all frequencies in a frame in the frequency set.
The second compensation module is configured to, for a frequency outside the set of frequencies to be predicted in a frame, use MDCT coefficient values of a plurality of frames before the Pth frame to calculate a MDCT coefficient of the Pth frame at the frequency, transmit the MDCT coefficients of the Pth frame at all frequencies to the IMDCT module; furthermore, the second compensation module uses half of a MDCT coefficient value of the (P−1)th frame as the MDCT coefficient value of the Pth frame at a frequency outside the set of frequencies to be predicted.
The multiple-harmonic frame loss compensation module further comprises a frequency set generation unit and a coefficient generation unit, wherein,
the frequency set generation unit is configured to generate the set SC of frequencies to be predicted;
the coefficient generation unit is configured to use phases and amplitudes of the L2 frames before the (P−1)th frame in the MDCT-MDST domain to predict a phase and an amplitude of each frequency belonging to the set SC of frequencies in the Pth frame, use the predicted phase and amplitude of the Pth frame in the MDCT-MDST domain to obtain the MDCT coefficient of the Pth frame at each corresponding frequency, and transmit the MDCT coefficient to the second compensation module, wherein, L2>1.
The frequency set generation unit is configured to generate the set SC of frequencies to be predicted: setting a plurality of frames before the Pth frame as L1 frames, calculating the power of each frequency in the L1 frames, and obtaining the sets of S1, . . . , SL1 composed of peak-value frequencies in each frame in the L1 frames, the number of frequencies corresponding to each set being N1, . . . , NL1 respectively;
selecting a set Si from the L1 sets S1, . . . , SL1, judging whether any frequency in mj, mj±1 , . . . , mj±k belongs simultaneously to all other peak-value frequency sets for each peak-value frequency mj, j=1 . . . Ni in the Si; if yes, putting all the mj, mj±1 , . . . , mj±k in the frequency set SC;
if no frequency in mj, mj±1 , . . . , mj±k belongs to all other peak-value frequency sets simultaneously for each peak-value frequency mj, j=1 . . . Ni in the Si, putting all the frequencies in a frame in the frequency set SC;
wherein, the k is a nonnegative integer. The peak-value frequency refers to a frequency whose power is bigger than powers on two adjacent frequencies thereof.
When (P−1)th frame is comprised in the L1 frames, the frequency set generation unit calculates the power of each frequency in the (P−1)th frame in the following way: |{circumflex over (v)}p−1(m)|2=cp−1(m)]2+[cp−1(m+1)−cp−1(m−1)]2, wherein |{circumflex over (v)}p−1(m)|2 is the power of the frequency m in the (P−1)th frame, cp 1(m) is the MDCT coefficient of the frequency m in the (P−1)th frame, cp 1(m+1) is the MDCT coefficient of the frequency m+1 in the (P−1)th frame, cp 1(m−1) is the MDCT coefficient of the frequency m−1 in the (P−1)th frame.
The coefficient generation unit further comprises a phase prediction sub-unit and an amplitude prediction sub-unit, wherein,
the phase prediction sub-unit is configured to, for a frequency to be predicted, use the phases of L2 frames in the MDCT-MDST domain at the frequency to perform a linear extrapolation or a linear fit to obtain the phase of the Pth frame in the MDCT-MDST domain at the frequency;
the amplitude prediction sub-unit is configured to obtain the amplitude of the Pth frame in the MDCT-MDST domain at the frequency from an amplitude of one of the L2 frames in the MDCT-MDST domain at the frequency.
When L2=2, t1th frame, t2th frame are used to represent the two frames respectively, and the phase prediction sub-unit predicts the phase of the Pth frame in the MDCT-MDST domain in the following way: for the frequency m to be predicted,
the {circumflex over (φ)}p(m) is a predicted value of the phase of the Pth frame in the MDCT-MDST domain at the frequency m, the φt1(m) is the phase of the t1th frame in the MDCT-MDST domain at the frequency m, the φt2(m) is the phase of the t2th frame in the MDCT-MDST domain at the frequency m.
When L2>2, the phase prediction sub-unit predicts the phase of the Pth frame in the MDCT-MDST domain in the following way: for a frequency to be predicted, perform a linear fit for the phases of the selected L2 frames in the MDCT-MDST domain at the frequency to obtain the phase of the Pth frame in the MDCT-MDST domain at the frequency.
The IMDCT module is configured to perform an IMDCT for the MDCT coefficients of the Pth frame at all frequencies to obtain the time domain signal of the Pth frame.
The compensator for audio frame loss in a MDCT domain shown in
the second compensation module is configured to, for all frequencies in a frame, use MDCT coefficient values of a plurality of frames before the currently lost frame to calculate a MDCT coefficient value of the currently lost frame, and transmit the MDCT coefficient to the multiple-harmonic frame loss compensation module;
the multiple-harmonic frame loss compensation module is configured to obtain a set of frequencies to be predicted, and obtain a MDCT coefficient of the Pth frame at each frequency in the set of frequencies to be predicted, the specific method being the same as the multiple-harmonic frame loss compensation module in the
The functions of other modules are similar to those of the modules in
As shown in
the non-multiple-harmonic frame loss compensation module is configured to, when detecting a lost frame, use the MDCT coefficient values of a plurality of frames before the currently lost frame to calculate the MDCT coefficient value of the currently lost frame for all frequencies in a frame, and transmit the MDCT coefficient to the frame type detection module;
the frame type detection module is configured to judge the type of the currently lost frame, and if the currently lost frame is a non-multiple-harmonic, transmit the MDCT coefficient received from the non-multiple-harmonic frame loss compensation module to the IMDCT module; if the currently lost frame is a multiple-harmonic, transmit the MDCT coefficient to the multiple-harmonic frame loss compensation module; the specific method for judging the type of the currently lost frame is the same as above mentioned and thus will not be repeated here.
The multiple-harmonic frame loss compensation module is configured to obtain a set of frequencies to be predicted, and obtain a MDCT coefficient of the Pth frame at each frequency in the set of frequencies to be predicted, the specific method being the same as the multiple-harmonic frame loss compensation module in the
the IMDCT module is configured to perform an IMDCT for the MDCT coefficients of the currently lost frame at all frequencies to obtain a time domain signal of the Pth frame.
The compensation method and the compensator for audio frame loss disclosed in the invention may be applied to solve the problem of audio frame loss compensation in the real time two-way communication field, such as wireless, IP video conference and the real time broadcasting service field, such as IPTV, mobile streaming media, mobile TV and other fields to improve anti-error ability of a transmitted bit stream. The invention well avoids the reduction of speech quality brought by the packet loss during a voice audio network transmission through the compensation operation, improves the comfort of the voice audio quality after a packet loss, and obtains a great subjective sound effect.
Compared with the prior art, the compensator and compensation method for audio frame loss in a MDCT domain disclosed in the invention has the advantages of no delay, small amount of calculation and small volume of memory space, easy implementation and so on.
Number | Date | Country | Kind |
---|---|---|---|
200910158577.4 | Jul 2009 | CN | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2010/070740 | 2/25/2010 | WO | 00 | 1/6/2012 |