Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач / материалы / es_201980v040102p.pdf
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
1.25 Mб
Скачать

31

ETSI ES 201 980 V4.1.2 (2017-04)

Table 8: Syntax of xHEAACMps212Config()

 

 

 

No. of bits

 

 

Syntax

Note

 

xHEAACMps212Config(stereoConfigIndex)

 

 

 

{

 

 

 

bsFreqRes;

3

Uimsbf

bsFixedGainDMX

3

Uimsbf

bsTempShapeConfigDrm;

1

Uimsbf, 1

bsHighRateMode;

1

Uimsbf

bsPhaseCoding;

1

Uimsbf

bsOttBandsPhasePresent;

1

Uimsbf, 2

if (bsOttBandsPhasePresent) {

 

 

 

bsOttBandsPhase;

5

Uimsbf

}

 

 

 

if (bsResidualCoding) {

 

3

 

bsResidualBands;

5

Uimsbf

bsOttBandsPhase = max(bsOttBandsPhase,bsResidualBands);

 

 

 

bsPseudoLr;

1

Uimsbf

}

 

 

 

}

NOTE 1: bsTempShapeConfigDrm==1 is equivalent to bsTempShapeConfig==3 in ISO/IEC 23003-3 [11] (i.e. TSD tool enabled).

NOTE 2: if bsOttBandsPhasePresent==0, bsOttBandsPhase is initialized according to table 104 in ISO/IEC 23003-3 [11].

NOTE 3: bsResidualCoding depends on stereoConfigIndex according to table 72 in ISO/IEC 23003-3 [11].

5.3.3xHE-AAC error concealment

5.3.3.0Introduction

The xHE-AAC decoder shall include concealment functionality for at least one missing or corrupt audio frame. The recommended method for concealment is interpolation between two valid audio frames, which will increase the delay of the decoder by one audio frame.

There are various tests inside the core decoder, starting with the CRC test and ending in a variety of plausibility checks. If such a check indicates an invalid audio frame, then concealment is applied. Concealment is also applied when the channel decoder indicates a distorted data frame.

xHE-AAC consists of several codec modules, to which individual concealment methods may be applied. The following clauses give an overview of the key modules and the applicable concealment methods, supplemented by xHE-AAC specifics.

5.3.3.1Frequency Domain coding (AAC based coding and TCX)

Concealment works on the spectral data just before the final frequency to time conversion. If the optional delay of one frame is used, concealment may interpolate between the preceding and the following valid frames to create the data for the missing frame, in case a single frame is corrupted. If multiple frames are corrupted (e.g. more than one or two consecutive frames), concealment implements a fade out. If the decoder recovers from the error condition, the concealment algorithm performs a fade-in. Fade-in might be slightly delayed (suppressed) to deal with error conditions where only a valid frame here and there is received.

For TCX in the linear prediction processing path of xHE-AAC also the techniques described in AMR-WB+ [12] may be used.

Interpolation of one corrupt frame (optional)

In the following, the current audio frame is frame number n, the corrupt audio frame to be interpolated is the frame n-1 and the frame before has the number n-2. Frame number n-2 is the preceding valid frame which spectral values have been stored during the processing in the previous call to the decoder.

The determination of window sequence and the window shape of the corrupt frame are described in table 9.

ETSI

 

32

ETSI ES 201 980 V4.1.2 (2017-04)

Table 9: Interpolated window sequences and window shapes

 

 

 

 

 

 

window sequence n-2

window sequence n

window sequence n-1

 

window shape n-1

ONLY_LONG_SEQUENCE

ONLY_LONG_SEQUENCE

 

 

 

or

or

 

 

 

LONG_START_SEQUENCE

LONG_START_SEQUENCE

 

 

 

or

or

ONLY_LONG_SEQUENCE

 

0

LONG_STOP_SEQUENCE

LONG_STOP_SEQUENCE

 

 

 

or

or

 

 

 

STOP_START_SEQUENCE

STOP_START_SEQUENCE

 

 

 

ONLY_LONG_SEQUENCE

 

 

 

 

or

 

 

 

 

LONG_START_SEQUENCE

 

LONG_START_SEQUENCE

 

1

or

EIGHT_SHORT_SEQUENCE

 

LONG_STOP_SEQUENCE

 

 

 

 

or

 

 

 

 

STOP_START_SEQUENCE

 

 

 

 

EIGHT_SHORT_SEQUENCE

EIGHT_SHORT_SEQUENCE

EIGHT_SHORT_SEQUENCE

 

1

 

ONLY_LONG_SEQUENCE

 

 

 

 

or

 

 

 

 

LONG_START_SEQUENCE

 

 

 

EIGHT_SHORT SEQUENCE

or

LONG_STOP_SEQUENCE

 

0

 

LONG_STOP_SEQUENCE

 

 

 

 

or

 

 

 

 

STOP_START_SEQUENCE

 

 

 

NOTE: The window sequences are depicted in ISO/IEC 23003-3 [11], table 88 - Window Sequences and Transform

windows dependent of coreCoderFrameLength (ccfl).

 

The scalefactor band energies of frames n-2 and n are calculated. If the window sequence in one of these frames is an EIGHT_SHORT_SEQUENCE and the final window sequence for frame n-1 is one of the long transform windows, the scalefactor band energies are calculated for long block scalefactor bands by mapping the frequency line index of short block spectral coefficients to a long block representation. The new interpolated spectrum is built on a perscalefactorband basis by reusing the spectrum of the older frame n-2 and multiplying a factor to each spectral coefficient. An exception is made in the case of a short window sequence in frame n-2 and a long window sequence in frame n, here the spectrum of the actual frame n is modified by the interpolation factor. This factor is constant over the range of each scalefactor band and is derived from the scalefactor band energy differences of frames n-2 and n. Finally noise substitution is applied by flipping the sign of the interpolated spectral coefficients randomly.

Fade-out and fade-in

Fade-out and fade-in behaviour, i.e. the attenuation ramp, might be fixed or adjustable by the user. The spectral coefficients from the last frame are attenuated by a factor corresponding to the fade-out characteristics and then passed to the frequency to-time mapping. Depending on the attenuation ramp, the concealment switches to muting after a number of consecutive invalid frames, which means the complete spectrum will be set to 0.

After recovering from the error condition, the decoder fades in again depending on a ramp-up function possibly different from the ramp-down characteristics. If the concealment has switched to muting, fade-in might be suppressed for a configurable number of frames to avoid annoying output of non-consecutive single valid frames.

5.3.3.2ACELP

Concealment methods described in AMR-WB+ [12] should be applied.

5.3.3.3SBR

The SBR error concealment algorithm is based on using previous envelope and noise-floor values with an applied decay, as a substitute for the corrupt data. This also applies for the case where predictive vector coding is used.

In the flowchart of figure 6 the basic operation of the SBR error concealment algorithm is outlined. If the frame error flag is set, error concealment bitstream data is generated to be used instead of the corrupt bitstream data. The concealment data is generated according to the following.

ETSI

33

ETSI ES 201 980 V4.1.2 (2017-04)

The time frequency grids are set to:

LE = 1

tE (0) = t 'E (L'E ) numTimeSlots

tE (1) = numTimeSlots

r(l ) = HI ,0 l < LE

bs_pointer = 0

LQ = 1

tQ = tE (0),tE (1)

The delta coding direction for both the envelope data and noise-floor data are set to be in the time-direction. The envelope data is calculated according to:

step

,Eprev (k,l ) > target

k < n(r(l )),0 l < LE

EDelta (k,l ) =

 

,0

step

,otherwise

 

where:

 

 

 

 

2

,if bs _ amp _ res = 1

step =

 

 

 

1

,otherwise

 

panOffset(bs _ amp _ res) ,if

bs _ coupling = 1

target =

 

 

 

0

 

,otherwise

And where bs_amp_res and bs_coupling are set to the values of the previous frame.

The noise floor data is calculated according to:

0

l < LQ

QDelta (k,l ) = 0 ,

k < NQ

0

Furthermore, the inverse-filtering levels in bs_invf_mode are set to the values of the previous frame, and all elements in bs_add_harmonic are set to zero.

If the frame error is not set, the present time grid and envelope data may need modification if the previous frame was corrupt. If the previous frame was corrupt the time grid of the present frame is modified in order to make sure that there is a continuous transition between the frames. The envelope data for the first envelope is modified according to:

Emod (k,0) = E(k,0) + a log2

 

tE (1) tE (0)

 

 

k < F(r(l ),0)

 

 

 

, 0

 

 

tE (1) estimated _ start _ pos

 

 

where:

estimated _ start _ pos = t 'E (L'E ) numberTimeSlots .

ETSI

34

ETSI ES 201 980 V4.1.2 (2017-04)

After the delta coded data has been decoded, a plausibility check is performed to make sure that the decoded data is within reasonable limits. The required limits are:

For the envelope data the logarithmic values shall fulfil:

35

,ampRes = 0

E(k,l )

 

70

,ampRes =1

otherwise the frame will be considered corrupt.

 

The time grids are also verified according to the following rules (if any of the below is true, the frame is considered to be corrupt):

-LE <1

-LE > 8

-LQ > 2

-tE (0) < 0

-tE (0) tE (LE )

-tE (0) > 3

-tE(LE) < 16

-tE(LE) > 19

-tE (l) tE (l +1),0 ≤ l < LE

-lA > LE

-LE =1 AND LQ >1

-tQ (0) tE (0)

-tQ (LQ ) tE (LE )

-tQ (l ) tQ (l +1),0 ≤ l < LQ

-all elements of tQ are not among the elements of tE

If the plausibility check fails, the frame error flag is set and the error concealment outlined above is applied.

ETSI

Соседние файлы в папке материалы