ГОСТ Р 53556.12-2014
В случае
Mono IniMDCT signalQfQ
....
№1/ представляет входные значения одного канала.
signal
I/O...., №2-1/ соответствует верхней половине значений
signalQ [N/2
....
N-
1/.
Если используется
Stereo IntMDCT,
длина
N
является двойной длиной фрейма в алгоритме
Int-DCT-
IV:
signalQ
/0№2-1/ представляет входные значения левого канала, a
signal
1 /0
№2-1/ представляет входные значения правого канала.
Используется временный буфер
liftBuffer [к],
к=0....№2-1 значений /№732.
Алгоритм для прямого
Int-DCT-
IV:
Перестановка
Р:
if (MonoJniMDCT) f
for (i=Q: i<N:
/+=
4) {
(signalQ[i+2f, signalQ/i+3])
=
(signal0[i+3J, signalQ[i+2J):
}
/
Перестановка
Q:
if(Mono_IntMDCT) {
for (i-Q; i<N; i++) {
tempiij =signalli]:
I
for (i-Q: i<N/2; i++) {
signalfij = templ2*ij:
signalfN/2+i]
=
temp(2*i+\};
}
I
Применение шагов подъема:
addlNT32(signalO, signal1, N/2}:
liftingStep2and3(signall
,
liftBuffer, \’):
aildINT32(liftBuffer, signalQ. N/2):
liftingStepMsignalQ. liftBuffer, N);
addlNT32(liftBuffer, signal
I,
N/2):
liftingStep5and6(signal\, liftBuffer. N. MonoJniMDCT):
add!NT32(liftBuffer. signalQ. N/2):
if(MonoJniMDCT) l
liftingStepHsignalQ, liftBuffer, N);
45