КОМПЕНСАТОР И СПОСОБ КОМПЕНСАЦИИ ПОТЕРИ КАДРОВ ЗВУКОВОГО СИГНАЛА В ОБЛАСТИ МОДИФИЦИРОВАННОГО ДИСКРЕТНОГО КОСИНУСНОГО ПРЕОБРАЗОВАНИЯ
COMPENSATOR AND METHOD TO COMPENSATE FOR LOSS OF SOUND SIGNAL FRAMES IN AREA OF MODIFIED DISCRETE COSINE TRANSFORMATION

Область техники
Изобретение относится к области декодирования звуковых сигналов и, в частности, к компенсатору и способу компенсации потери кадров звукового сигнала в области модифицированного дискретного косинусного преобразования (Modified Discrete Cosine Transform, MDCT), с низкой сложностью и без временных задержек.
Уровень техники
В сетевых коммуникациях широко применяется технология пакетной передачи. По сети передается различная информация, такая как речь, звуковые сигналы или другие данные, после кодирования с использованием технологии пакетной передачи, такой как голосовая связь по протоколу Интернета (Voice over Internet Protocol, VoIP) и т.п. Потеря информации кадра речи и звукового сигнала в результате ограничения пропускной способности передающего конца и в результате того, что кадр информации пакета не приходит в буферную зону приемного конца в пределах назначенного времени задержки, или в результате перегрузки сети и т.п., вызывает быстрое ухудшение качества синтезированной речи и звуковых сигналов на декодирующем конце, поэтому на декодирующем конце необходимо использовать технологии для компенсации потери данных кадра. Компенсатор потери кадров представляет технологию, которая уменьшает ухудшение качества речевых и звуковых сигналов вследствие потери кадров. В настоящее время имеется много технологий для компенсации потери кадров, но большинство из них предназначены для компенсации потери кадров речи, и только немногие соответствующие технологии пригодны для компенсации потери кадров звукового сигнала.
Самым простым из известных способов компенсации потери кадров звукового сигнала является способ повторения сигнала MDCT последнего кадра или замена заглушением. Хотя способ прост в реализации и не имеет задержек, результат компенсации средний. Другие способы компенсации, такие как технология оценки фазы и амплитуды данных с пропусками (Gapped Data Amplitude and Phase Estimation, GAPES), преобразовывают коэффициент MDCT в коэффициент оконного дискретного преобразования Фурье (Discrete Short-Time Fourier Transform, DSTFT). Но эти способы характеризуются высокой сложностью и требуют большие объемы памяти. Организация Проекта сотрудничества по созданию системы третьего поколения (Third Generation Partnership Project, 3GPP) предложила осуществлять компенсацию потери кадров звукового сигнала с помощью технологии внесения шума с формированем спектра, которая дает хороший результат компенсации для шумоподобного сигнала, но худший результат компенсации для звукового сигнала с множеством гармоник.
В общем, большинство известных технологий компенсации потери кадров звукового сигнала не дают явных результатов или имеют высокую сложность вычисления и чрезмерно большое время задержки.
Сущность изобретения
Техническая задача, решаемая в настоящем изобретении, заключается в предоставлении компенсатора и способа компенсации потери кадров звукового сигнала в области MDCT, при этом предлагаемое изобретение обеспечивает хорошие результаты компенсации, низкую вычислительную сложность и отсутствие задержки.
Для решения указанной выше задачи предлагается способ компенсации потери кадров звукового сигнала в области модифицированного дискретного косинусного преобразования, включающий:
шаг а, на котором, когда текущий потерянный кадр является Р-ым кадром, получают набор предсказываемых частот, для каждой частоты в наборе предсказываемых частот используют фазы и амплитуды множества кадров перед (Р-1)-ым кадром в области модифицированного дискретного косинусного преобразования - модифицированного дискретного синусного преобразования (MDCT-MDST) для предсказания фазы и амплитуды Р-го кадра в области MDCT-MDST и используют предсказанную фазу и амплитуду Р-го кадра в области MDCT-MDST для получения коэффициента MDCT Р-го кадра на каждой частоте, при этом (Р-1)-й кадр предшествует Р-му кадру;
шаг b, на котором для любой частоты в кадре вне набора предсказываемых частот используют коэффициенты MDCT множества кадров перед Р-ым кадром для вычисления коэффициента MDCT Р-го кадра на этой частоте;
шаг с, на котором выполняют обратное модифицированное дискретное косинусное преобразование (IMDCT) для коэффициентов MDCT Р-го кадра на всех частотах для получения сигнала во временной области для Р-го кадра.
Упомянутый способ может характеризоваться тем, что он также включает перед шагом а, при обнаружении того, что текущий кадр потерян, определение типа текущего потерянного кадра и выполнение шага а, если текущий потерянный кадр является кадром с множеством гармоник.
Упомянутый способ может характеризоваться тем, что шаг определения типа текущего потерянного кадра включает:
0
0
0
0
вычисление равномерности спектра каждого из K кадров перед текущим потерянным кадром; если число кадров, равномерность спектра которых меньше порогового значения, является меньшим или равным K в K кадрах, то текущий потерянный кадр является кадром без множества гармоник; если число кадров, равномерность спектра которых меньше порогового значения, больше K, то текущий потерянный кадр является кадром с множеством гармоник, при этом K≤K, где K, K - натуральные числа.
C
Упомянутый способ может характеризоваться тем, что при получении набора предсказываемых частот на шаге а используют комплексные сигналы в области MDCT-MDST и/или коэффициенты MDCT множества кадров перед Р-ым кадром для получения набора Sc предсказываемых частот или непосредственно помещают все частоты в кадре в набор S предсказываемых частот.
C
Упомянутый способ может характеризоваться тем, что шаг использования комплексных сигналов в области MDCT-MDST и/или коэффициентов MDCT множества кадров перед Р-ым кадром для получения набора S предсказываемых частот включает:
1
L1
1
L1
назначение упомянутого множества кадров перед Р-ым кадром как L1 кадров, вычисление мощности каждой частоты в L1 кадрах, получение L1 наборов S,…,S, включающих частоты с пиковыми значениями в каждом кадре из L1 кадров, при этом число частот в каждом наборе составляет N,…,N, соответственно;
i
1
L1
j
i
i
j
j
j
выбор набора S из L1 наборов S,…,S, для каждой частоты m, j=1…N, с пиковым значением в наборе S, определение, имеется ли частота, принадлежащая одновременно всем другим наборам частот с пиковыми значениями среди частот m, m±1,…,m±k,
j
j
j
C
если да, помещение всех частот m, m±1,…,m±k в набор S частот;
C
если нет частоты, принадлежащей одновременно всем другим наборам частот с пиковыми значениями, то помещение всех частот в кадре в набор S частот,
где k - неотрицательное целое число.
Упомянутый способ может характеризоваться тем, что упомянутая частота с пиковым значением относится к частоте, мощность которой больше мощности двух соседних с ней частот.
Упомянутый способ может характеризоваться тем, что если L1 кадров включают (Р-1)-й кадр, то мощность каждой частоты в (Р-1)-ом кадре вычисляют следующим образом:
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup><mo>=</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>с</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo>−</mo><msup><mi>с</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup></mrow>
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
р-1
р-1
p-1
, где
- мощность частоты т в (Р-1)-ом кадре, с(m) - коэффициент MDCT частоты т в (Р-1)-ом кадре, с(m+1) - коэффициент MDCT частоты m+1 в (Р-1)-ом кадре, c(m-1) - коэффициент MDCT частоты m-1 в (Р-1)-ом кадре.
Упомянутый способ может характеризоваться тем, что шаг предсказания фазы и амплитуды Р-го кадра в области MDCT-MDST на шаге а включает: использование для каждой предсказываемой частоты фаз L2 кадров перед (Р-1)-ым кадром на упомянутой частоте в области MDCT-MDST для выполнения линейной экстраполяции или линейной аппроксимации для получения фазы Р-го кадра на упомянутой частоте в области MDCT-MDST и
получение амплитуды Р-го кадра на упомянутой частоте в области MDCT-MDST согласно амплитуде одного из L2 кадров на упомянутой частоте в области MDCT-MDST, при этом L2>1.
Упомянутый способ может характеризоваться тем, что, когда L2=2, используют t1-й кадр и t2-й кадр для представления двух кадров, соответственно, и предсказывают фазу Р-го кадра в области MDCT-MDST согласно следующей формуле:
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>p</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mfrac><mrow><mi>p</mi><mo>−</mo><mi>t</mi><mn>1</mn></mrow><mrow><mi>t</mi><mn>1</mn><mo>−</mo><mi>t</mi><mn>2</mn></mrow></mfrac><mrow><mo>[</mo><mrow><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>−</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow>
,
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
t1
t2
где
- предсказанное значение фазы Р-го кадра в области MDCT-MDST на частоте m, φ(m) - фаза t1-го кадра на частоте т в области MDCT-MDST и φ(m) - фаза f2-го кадра на частоте m в области MDCT-MDST.
Упомянутый способ может характеризоваться тем, что, когда L2>2, для каждой предсказываемой частоты выполняют линейную аппроксимацию фаз L2 кадров перед (Р-1)-ым кадром на упомянутой частоте в области MDCT-MDST для получения фазы Р-го кадра на упомянутой частоте в области MDCT-MDST.
C
Упомянутый способ может характеризоваться тем, что на шаге а получают набор предсказываемых частот путем использования комплексных сигналов в области MDCT-MDST для (Р-2)-го кадра и (Р-3)-го кадра и коэффициента MDCT (Р-1)-го кадра и для каждой частоты в наборе S частот предсказывают фазу и амплитуду Р-го кадра в области MDCT-MDST путем использования фаз и амплитуд (Р-2)-го кадра и (Р-3)-го кадра в области MDCT-MDST.
Упомянутый способ может характеризоваться тем, что на шаге b в качестве коэффициента MDCT Р-го кадра используют половину коэффициента MDCT (Р-1)-го кадра.
Предлагается также компенсатор потери кадров звукового сигнала в области модифицированного дискретного косинусного преобразования, содержащий модуль компенсации потери кадров с множеством гармоник, второй модуль компенсации и модуль IMDCT, в котором
модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы, когда текущий потерянный кадр является Р-ым кадром, получать набор предсказываемых частот и для каждой частоты в наборе предсказываемых частот использовать фазы и амплитуды множества кадров перед (Р-1)-ым кадром в области MDCT-MDST для предсказания фазы и амплитуды Р-го кадра в области MDCT-MDST, использовать предсказанную фазу и амплитуду Р-го кадра в области MDCT-MDST для получения коэффициента MDCT Р-го кадра на каждой упомянутой частоте и передавать коэффициент MDCT во второй модуль компенсации, при этом (Р-1)-й кадр предшествует Р-му кадру;
второй модуль компенсации сконфигурирован так, чтобы для любой частоты вне набора предсказываемых частот в кадре использовать коэффициенты MDCT множества кадров перед Р-ым кадром для вычисления коэффициента MDCT Р-го кадра на упомянутой частоте и передавать коэффициенты MDCT Р-го кадра на всех частотах в модуль IMDCT;
модуль IMDCT сконфигурирован так, чтобы выполнять преобразование IMDCT для коэффициентов MDCT Р-го кадра на всех частотах для получения сигнала во временной области для Р-го кадра.
Упомянутый компенсатор потери кадров может характеризоваться тем, что он также включает модуль определения типа кадра, который сконфигурирован так, чтобы при обнаружении потери кадра определять тип текущего потерянного кадра и подавать команду модулю компенсации потери кадров с множеством гармоник на выполнение компенсации, если текущий потерянный кадр является кадром с множеством гармоник.
0
0
0
0
Упомянутый компенсатор потери кадров может характеризоваться тем, что модуль определения типа кадра сконфигурирован для определения типа текущего потерянного кадра путем вычисления равномерности спектра каждого кадра из K кадров перед текущим потерянным кадром; при этом если число кадров, равномерность спектра которых меньше порогового значения, меньше K в K кадрах, то текущий потерянный кадр является кадром без множества гармоник; а если число кадров, равномерность спектра которых меньше порогового значения, больше K, то текущий потерянный кадр является кадром с множеством гармоник, при этом K≤K, где K, K - натуральные числа.
C
C
Упомянутый компенсатор потери кадров может характеризоваться тем, что модуль компенсации потери кадров с множеством гармоник содержит блок генерации набора частот, при этом модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы посредством блока генерации набора частот использовать комплексные сигналы в области MDCT-MDST и/или коэффициенты MDCT множества кадров перед Р-ым кадром для получения набора S предсказываемых частот или непосредственно помещать все частоты в кадре в набор S предсказываемых частот.
C
Упомянутый компенсатор потери кадров может характеризоваться тем, что блок генерации набора частот сконфигурирован для использования комплексных сигналов в области MDCT-MDST и/или коэффициентов MDCT множества кадров перед Р-ым кадром для получения набора S предсказываемых частот путем
1
L1
1
L1
назначения множества кадров перед Р-ым кадром как L1 кадров, вычисления мощности каждой частоты в L1 кадрах, получения L1 наборов S,…,S, включающих частоты с пиковыми значениями в каждом кадре из L1 кадров, при этом число соответствующих частот в каждом наборе составляет N,…,N, соответственно;
i
1
L1
j
i
i
j
j
j
j
j
j
C
выбора набора S из L1 наборов S,…S, для каждой частоты m, j=1…N с пиковым значением в наборе S, определения, имеется ли частота, принадлежащая одновременно всем другим наборам частот с пиковыми значениями среди частот m, m±1,…,m±k, если да, помещения всех частот m, m±1,…,m±k в набор S частот;
j
i
i
C
если нет частоты, принадлежащей одновременно всем другим наборам частот с пиковыми значениями для каждой частоты m, j=1…N с пиковым значением в наборе S, помещения всех частот в кадре в набор S частот, где k - неотрицательное целое число.
Упомянутый компенсатор потери кадров может характеризоваться тем, что частота с пиковым значением относится к частоте, мощность которой больше мощности двух соседних с ней частот.
Упомянутый компенсатор потери кадров может характеризоваться тем, что блок генерации набора частот сконфигурирован так, чтобы, когда L1 кадров включают (Р-1)-й кадр, вычислять мощность каждой частоты в (Р-1)-ом кадре следующим образом:
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup><mo>=</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>с</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>с</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo>−</mo><msup><mi>с</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup></mrow>
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
р-1
p-1
p-1
, где
- мощность частоты m в (Р-1)-ом кадре, с(m) - коэффициент MDCT частоты m в (Р-1)-ом кадре, c(m+1) - коэффициент MDCT частоты m+1 в (Р-1)-ом кадре, c(m-1) - коэффициент MDCT частоты m-1 в (Р-1)-ом кадре.
Упомянутый компенсатор потери кадров может характеризоваться тем, что модуль компенсации потери кадров с множеством гармоник также содержит блок генерации коэффициентов, при этом модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы посредством блока генерации коэффициентов использовать фазы и амплитуды L2 кадров перед (Р-1)-ым кадром в области MDCT-MDST для предсказания фазы и амплитуды каждой частоты, принадлежащей набору предсказываемых частот в Р-ом кадре, использовать предсказанную фазу и амплитуду Р-го кадра для получения коэффициента MDCT Р-го кадра, соответствующего каждой частоте, и передавать коэффициент MDCT во второй модуль компенсации, при этом L2>1;
блок генерации коэффициентов содержит субблок предсказания фазы и субблок предсказания амплитуды, причем
субблок предсказания фазы сконфигурирован так, чтобы для предсказываемой частоты использовать фазы L2 кадров на упомянутой частоте в области MDCT-MDST для выполнения линейной экстраполяции или линейной аппроксимации для получения фазы Р-го кадра на упомянутой частоте в области MDCT-MDST,
субблок предсказания амплитуды сконфигурирован так, чтобы получать амплитуду Р-го кадра на упомянутой частоте в области MDCT-MDST из амплитуды одного из L2 кадров на упомянутой частоте в области MDCT-MDST.
Упомянутый компенсатор потери кадров может характеризоваться тем, что субблок предсказания фазы сконфигурирован так, чтобы, когда L2=2, предсказывать фазу Р-го кадра в области MDCT-MDST согласно следующей формуле:
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>p</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mfrac><mrow><mi>p</mi><mo>−</mo><mi>t</mi><mn>1</mn></mrow><mrow><mi>t</mi><mn>1</mn><mo>−</mo><mi>t</mi><mn>2</mn></mrow></mfrac><mrow><mo>[</mo><mrow><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>−</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow>
,
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
t1
t2
где t1-й кадр и t2-й кадр представляют два кадра перед (Р-1)-ым кадром,
- предсказываемое значение фазы Р-го кадра на частоте m в области MDCT-MDST, φ(m) - фаза t1-го кадра на частоте т в области MDCT-MDST и φ(m) - фаза f2-го кадра на частоте m в области MDCT-MDST.
Упомянутый компенсатор потери кадров может характеризоваться тем, что субблок предсказания фазы сконфигурирован так, чтобы, когда L2>2, предсказывать фазу Р-го кадра в области MDCT-MDST путем выполнения для предсказываемой частоты линейной аппроксимации фаз выбранных L2 кадров на упомянутой частоте в области MDCT-MDST для получения фазы Р-го кадра на упомянутой частоте в области MDCT-MDST.
Упомянутый компенсатор потери кадров может характеризоваться тем, что модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы использовать комплексные сигналы в области MDCT-MDST для (Р-2)-го кадра и (Р-3)-го кадра и коэффициенты MDCT (Р-1)-го кадра для получения набора предсказываемых частот и использовать фазы и амплитуды (Р-2)-го кадра и (Р-3)-го кадра в области MDCT-MDST для предсказания фазы и амплитуды Р-го кадра в области MDCT-MDST для каждой частоты в наборе частот.
Упомянутый компенсатор потери кадров может характеризоваться тем, что второй модуль компенсации сконфигурирован так, чтобы использовать половину значения коэффициента MDCT (Р-1)-го кадра в качестве значения коэффициента MDCT Р-го кадра на частоте вне набора предсказываемых частот.
Посредством предлагаемых в настоящем изобретении компенсатора и способа компенсации потери кадров звукового сигнала в области MDCT для случая без множества гармоник коэффициент MDCT текущего потерянного кадра получают путем использования значений коэффициента MDCT множества кадров перед текущим потерянным кадром, а для случая с множеством гармоник коэффициент MDCT текущего потерянного кадра получают с помощью характеристики текущего потерянного кадра в области MDCT-MDST. По сравнению с известным уровнем техники изобретение имеет преимущества отсутствия задержки, малого объема вычисления, малого объема пространства памяти, простой реализации и т.д.
Краткое описание чертежей
На фиг.1 показана схема последовательности кадров, используемая в настоящем изобретении.
На фиг.2 показана блок-схема способа компенсации потери кадров звукового сигнала в области MDCT согласно настоящему изобретению.
На фиг.3 показана блок-схема для определения кадра с множеством гармоник/кадра без множества гармоник согласно настоящему изобретению.
На фиг.4 показана блок-схема способа компенсации потери кадров с множеством гармоник согласно настоящему изобретению.
На фиг.5 показана блок-схема способа вычисления коэффициента MDCT для компенсации потери кадров с множеством гармоник согласно примеру 1 изобретения.
На фиг.6 показана структурная схема компенсатора потери кадров звукового сигнала в области MDCT согласно настоящему изобретению.
На фиг.7 показана структурная схема компенсатора потери кадров звукового сигнала в области MDCT в другом примере изобретения.
На фиг.8 показана структурная схема компенсатора потери кадров звукового сигнала в области MDCT в еще одном примере изобретения.
Предпочтительные формы осуществления изобретения
Основная идея изобретения состоит в следующем: предсказывают фазу и амплитуду в области MDCT-MDST для текущего потерянного кадра с помощью использования линейности фазы гармонического сигнала в области MDCT-MDST и информации множества кадров перед текущим потерянным кадром и таким образом получают коэффициент MDCT для текущего потерянного кадра, согласно которому затем получают сигнал во временной области для текущего потерянного кадра.
Предлагается способ компенсации потери кадров звукового сигнала в области MDCT, показанный на фиг.2 и включающий:
Шаг S1, на котором, при обнаружении того, что пакет данных текущего кадра потерян, на декодирующем конце обозначают текущий кадр как текущий потерянный кадр, определяют тип текущего потерянного кадра и осуществляют переход к шагу S2, если текущий потерянный кадр является кадром без множества гармоник, или, в противном случае, переход к шагу S3;
при этом операция определения типа текущего потерянного кадра, которую выполняют согласно коэффициентам MDCT К кадров перед текущим потерянным кадром, как показано на фиг.3, включает:
1а) вычисление равномерности спектра каждого кадра из К кадров перед текущим потерянным кадром и определение того, что кадр состоит главным образом из множества гармоник и является кадром стационарного сигнала с множеством гармоник, если равномерность спектра меньше заранее заданного порога;
0
0
0
1b) если число кадров стационарного сигнала с множеством гармоник в К кадрах меньше или равно K кадрам, считают, что текущий потерянный кадр является кадром без множества гармоник, или, в противном случае, текущий потерянный кадр является кадром с множеством гармоник (таким как музыкальный кадр), при этом K≤K, где K и K - заранее заданные значения.
Изобретение не ограничено использованием показанного на фиг.3 способа определения типа текущего потерянного кадра, и для определения также могут использоваться другие способы, например, без ограничения этим, коэффициент перехода через ноль (zero-pass ratio).
Шаг S2. Если определяют, что текущий потерянный кадр является кадром без множества гармоник, то используют значения коэффициентов MDCT множества кадров перед текущим потерянным кадром для вычисления значения коэффициентов MDCT текущего потерянного кадра для каждой частоты в кадре, затем осуществляют переход к шагу S4.
Например, в качестве значения коэффициента MDCT текущего потерянного кадра используют половину или другие отношения значения коэффициента MDCT кадра, непосредственно предшествующего текущему потерянному кадру.
Шаг S3. Если определяют, что текущий потерянный кадр является кадром с множеством гармоник, то посредством оценки получают значение коэффициента МОСТ текущего потерянного кадра с использованием алгоритма компенсации потери кадров с множеством гармоник без задержки, который показан на фиг.4 и, в частности, включает:
3а) когда потерян Р-й кадр, то есть текущий потерянный кадр является Р-ым кадром, взятие L1 кадров перед Р-ым кадром.
Если L1 кадров включают (Р-1)-й кадр, используют алгоритм быстрого модифицированного дискретного синусного преобразования (Fast Modified Discrete Sine Transform, FMDST) для получения коэффициентов MDST L1-1 кадров из L1 кадров за исключением (Р-1)-го кадра согласно коэффициентам MDCT, полученным посредством декодирования кадров перед текущим потерянным кадром. Для каждого кадра в L1-1 кадрах комплексный сигнал в области MDCT-MDST каждого кадра включает коэффициент MDST и коэффициент MDCT кадра, где коэффициент MDCT - параметр вещественной части, а коэффициент MDST - параметр мнимой части.
Если L1 кадров не содержат (Р-1)-й кадр, используют алгоритм FMDST для получения коэффициентов MDST L1 кадров согласно коэффициентам MDCT, полученным посредством декодирования кадров перед текущим потерянным кадром. Для каждого кадра в L1 кадрах комплексный сигнал в области MDCT-MDST каждого кадра включает коэффициент MDST и коэффициент MDCT кадра, где коэффициент MDCT - параметр вещественной части, а коэффициент MDST - параметр мнимой части.
При этом способ вычисления коэффициента MDST включает:
выполнение обратного преобразования MDCT для получения сигнала во временной области для (Р-2)-го кадра согласно коэффициентам MDCT (Р-1)-го кадра и (Р-2)-го кадра и выполнение обратного преобразования MDCT для получения сигнала во временной области для (Р-3)-го кадра согласно коэффициентам MDCT (Р-2)-го кадра и (Р-3)-го кадра и т.д.;
использование алгоритма FMDST для получения коэффициента MDST (Р-2)-го кадра согласно сигналам во временной области для (Р-2)-го кадра и (Р-3)-го кадра и использование алгоритма FMDST для получения коэффициента MDST (Р-3)-го кадра согласно сигналам во временной области для (Р-3)-го кадра и (Р-4)-го кадра и т.д.
Последовательность Р-го кадра, (Р-1)-го кадра и других кадров показана на фиг.1.
3b) Нахождение набора частот с пиковыми значениями для каждого кадра в упомянутых L1 кадрах.
Если L1 кадров содержат (Р-1)-й кадр, то
для (Р-1)-го кадра вычисляют мощность каждой частоты в (Р-1)-ом кадре согласно коэффициенту MDCT (Р-1)-го кадра и получают набор, включающий множество предыдущих частот, имеющих самую большую мощность;
для каждого другого кадра, кроме (Р-1)-го кадра, вычисляют мощность каждой частоты в кадре согласно комплексному сигналу кадра в области MDCT-MDST и получают набор, включающий множество предыдущих частот, имеющих самую большую мощность; при этом частота с пиковым значением относится к частоте, мощность сигнала на которой больше мощности сигнала на двух соседних с ней частотах.
Если L1 кадров не содержат (Р-1)-й кадр, то
для каждого кадра в L1 кадрах набор, включающий множество предыдущих частот, имеющих самые большие значения мощности, получают согласно комплексному сигналу кадра в области MDCT-MDST,
при этом число частот в L1 наборах может быть одинаковым или различным.
Наборы L1 также могут быть получены другими способами, например, для каждого кадра берут набор, включающий частоты с пиковыми значениями, мощности которых больше установленного порога, при этом порог для каждого кадра может быть одинаковым или различным.
1
L1
1
L1
i
j
i
i
j
j
j
j
j
j
C
3с) Если L1>1, и L1 наборов частот обозначены как S,…,S, и число соответствующих частот в наборах составляет N,…,N, выбирают набор S и для каждой частоты m (j=1…N) с пиковыми значениями в наборе S определяют, принадлежит ли какая-либо частота среди частот m, m±1,…,m±K (K - неотрицательное целое число, обычно K=0 или 1) одновременно всем другим наборам частот с пиковыми значениями, если да, помещают все частоты m, m±1,…,m±k в набор S частот.
j
j
j
j
i
i
C
Если среди частот m, m±1,…m±К для каждой частоты m (j=1…N) с пиковым значением в наборе S нет частоты, принадлежащей одновременно всем другим наборам частот с пиковыми значениями, все частоты в кадре непосредственно помещают в набор S частот.
1
1
i
1
1
i
i
i
C
Если L1=1, и набор частот обозначен как S, а соответствующее число частот равно N, для каждой частоты m (i=1…N) с пиковым значением в наборе S частот с пиковыми значениями все частоты m, m±1,…m±K (K - неотрицательное целое число, которое обычно выбирается как K=0 или 1) помещают в набор S частот.
C
Вышеупомянутые разделы шагов 3а, 3b и 3с также можно не выполнять и непосредственно помещать все частоты в кадре в набор S частот.
C
3d) Берут L2 (L2>1) кадров перед (Р-1)-ым кадром, вычисляют и получают комплексные сигналы L2 кадров в области MDCT-MDST (кокретный способ вычисления такой же, как на шаге 3а). Для каждой частоты в наборе S частот получают фазу текущего потерянного кадра в области MDCT-MDST, используя фазы L2 кадров в области MDCT-MDST, и получают амплитуду текущего потерянного кадра в области MDCT-MDST, используя амплитуды L2 кадров в области MDCT-MDST, и затем получают коэффициент MDCT текущего потерянного кадра, соответствующий каждой частоте, согласно фазе и амплитуде текущего потерянного кадра.
C
Если L2=2, то для всех частот в наборе S частот используют фазы двух выбранных кадров на каждой предсказываемой частоте, чтобы выполнить линейную экстраполяцию для получения фазы комплексного сигнала в области MDCT-MDST для текущего потерянного кадра на этой частоте; получают амплитуду комплексного сигнала в области MDCT-MDST для текущего потерянного кадра на упомянутой частоте из амплитуды в области MDCT-MDST одного из двух кадров на этой частоте, то есть используют амплитуду в области MDCT-MDST одного из двух кадров на данной частоте в качестве амплитуды в области MDCT-MDST для текущего потерянного кадра на этой частоте.
Один из способов линейной экстраполяции заключается в следующем.
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>p</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mfrac><mrow><mi>p</mi><mo>−</mo><mi>t</mi><mn>1</mn></mrow><mrow><mi>t</mi><mn>1</mn><mo>−</mo><mi>t</mi><mn>2</mn></mrow></mfrac><mrow><mo>[</mo><mrow><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>−</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
t1
t2
Если L2=2, f1-и кадр и t2-й кадр используют для представления двух кадров, соответственно, фазу Р-го кадра в области MDCT-MDST предсказывают для предсказываемой частоты т следующим образом:
, где
- предсказываемое значение фазы Р-го кадра в области MDCT-MDST на частоте m, φ(m) - фаза t1-го кадра в области MDCT-MDST на частоте m и φ(m) - фаза t2-го кадра в области MDCT-MDST на частоте m.
C
Если L2>2, то для всех частот в наборе S используют фазы в области MDCT-MDST для L2 кадров на каждой предсказываемой частоте, чтобы выполнить линейную аппроксимацию для получения фазы комплексного сигнала в области MDCT-MDST для текущего потерянного кадра на упомянутой частоте; получают амплитуду комплексного сигнала в области MDCT-MDST текущего потерянного кадра на упомянутой частоте из амплитуды в области MDCT-MDST одного из двух кадров на этой частоте, то есть используют амплитуду в области MDCT-MDST одного из двух кадров на упомянутой частоте в качестве амплитуды в области MDCT-MDST текущего потерянного кадра на этой частоте.
C
3е) Для частоты вне набора S частот вычисляют значения коэффициентов MDCT Р-го кадра, используя значения коэффициентов MDCT множества кадров перед Р-ым кадром. Например, в качестве значения коэффициента MDCT текущего потерянного кадра используют половину значения коэффициента MDCT кадра, непосредственно предшествующего текущему потерянному кадру.
В другом примере изобретения на шаге S3 или перед шагом 3а выполняют шаг использования значений коэффициентов MDCT множества кадров перед текущим потерянным кадром, чтобы вычислить значение коэффициента MDCT текущего потерянного кадра для каждой частоты в кадре, и затем выполняют шаги 3а, 3b, 3с и 3d, а шаг 3е пропускают для перехода к шагу S4.
C
Могут быть выполнены и другие изменения, например, шаг 3е может быть выполнен после шага 3с и перед шагом S4, то есть только после того, как получен набор S частот.
Шаг S4. Выполняют преобразование IMDCT (обратное преобразование MDCT) для коэффициентов MDCT текущего потерянного кадра на всех частотах, чтобы получить сигнал во временной области для текущего потерянного кадра.
Приведенный пример может быть изменен следующим образом: сначала выполняют начальную компенсацию, то есть вычисляют значение коэффициента MDCT Р-го кадра, используя значения коэффициентов MDCT множества кадров перед Р-ым кадром, затем определяют тип текущего потерянного кадра и выполняют различные шаги согласно типу текущего потерянного кадра; непосредственно выполняют шаг S4, если кадр является кадром без множества гармоник, а если кадр является кадром с множеством гармоник, выполняют на шаге S3 шаги 3а, 3b, 3с и 3d и тогда пропускают шаг 3е, чтобы непосредственно выполнить шаг S4.
Далее изобретение будет пояснено на двух конкретных примерах.
Пример 1
Шаг 110. При обнаружении потери пакета данных текущего кадра декодирующий конец определяет, является ли текущий кадр (то есть текущий потерянный кадр) кадром с множеством гармоник (например, музыкальный кадр, включающий различные гармоники), и выполняет шаг 120, если текущий кадр является кадром без множества гармоник, или, в противном случае, выполняет шаг 130.
Конкретный способ оценки включает
вычисление равномерности спектра 10 кадров перед текущим потерянным кадром, при этом, если равномерность спектра меньше 0,1, считают, что кадр является кадром стационарного сигнала с множеством гармоник; если более 8 кадров в 10 кадрах перед потерянным кадром являются кадрами стационарного сигнала с множеством гармоник, считают, что текущий потерянный кадр является кадром с множеством гармоник, в противном случае считают, что текущий потерянный кадр является кадром без множества гармоник. Способ вычисления равномерности спектра состоит в следующем:
i
равномерность спектра i-го кадра SFM определяют как отношение среднего геометрического к среднему арифметическому амплитуды сигнала в области преобразования сигнала i-го кадра:
<mrow><mi>S</mi><mi>F</mi><msub><mi>M</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>G</mi><mi>i</mi></msub></mrow><mrow><msub><mi>A</mi><mi>i</mi></msub></mrow></mfrac><mo>,</mo><mtext>                                                                                   </mtext><mo stretchy="false">(</mo><mn>1</mn><mo stretchy="false">)</mo></mrow>
<mrow><msub><mi>G</mi><mi>i</mi></msub><mo>=</mo><mo stretchy="false">(</mo><mstyle displaystyle="true"><munderover><mo>∏</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mrow><mo>|</mo><mrow><msup><mi>c</mi><mi>i</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><msup><mo stretchy="false">)</mo><mrow><mfrac><mn>1</mn><mi>M</mi></mfrac></mrow></msup></mrow></mstyle></mrow>
<mrow><msub><mi>A</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>M</mi></mfrac><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mrow><mo>|</mo><mrow><msup><mi>c</mi><mi>i</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow></mstyle></mrow>
i
где
- среднее геометрическое амплитуды сигнала i-го кадра,
- среднее арифметическое амплитуды сигнала i-го кадра, c(m) - коэффициент MDCT i-го кадра на частоте m, и М - длина кадра сигнала в области MDCT.
Шаг 120. Если определяют, что текущий потерянный кадр является кадром без множества гармоник, в качестве значения коэффициента MDCT текущего потерянного кадра для каждой частоты в кадре используют половину значения коэффициента MDCT кадра, непосредственно предшествующего текущему потерянному кадру, то есть
<mrow><msup><mi>c</mi><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mn>0,5</mn><mo>*</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                           </mtext><mo stretchy="false">(</mo><mn>2</mn><mo stretchy="false">)</mo></mrow>
где m=0, 1, 2, 3…М-1,
затем выполняют шаг 140.
Шаг 130. Если определяют, что текущий потерянный кадр является кадром с множеством гармоник, коэффициент MDCT текущего потерянного кадра получают с использованием алгоритма компенсации потери кадров с множеством гармоник без задержки и выполняют шаг 140.
Конкретный способ использования алгоритма компенсации потери кадров с множеством гармоник без задержки для получения коэффициента MDCT текущего потерянного кадра показан на фиг.5 и заключается в следующем:
если пакет данных Р-го кадра потерян, сначала в качестве значения коэффициента MDCT Р-го кадра на упомянутой частоте для всех частот в кадре используют половину значения коэффициента MDCT (Р-1)-го кадра на упомянутой частоте, как указано в формуле (2);
P-2
P-3
Р-2
Р-3
затем используют алгоритм FMDST, чтобы получить коэффициенты MDST s(m) и s(m) (Р-2)-го кадра и (Р-3)-го кадра согласно коэффициентам MDCT, которые получены посредством декодирования кадров перед текущим потерянным кадром. Полученные коэффициенты MDST (Р-2)-го кадра и (Р-3)-го кадра и коэффициенты MDCT (P-2)-го кадра и (Р-3)-го кадра с(m) и с(m) составляют комплексные сигналы в области MDCT-MDST:
<mrow><msup><mi>ν</mi><mrow><mi>p</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mi>j</mi><msup><mi>s</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                              </mtext><mo stretchy="false">(</mo><mn>3</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mi>j</mi><msup><mi>s</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                </mtext><mo stretchy="false">(</mo><mn>4</mn><mo stretchy="false">)</mo></mrow>
где j - символ мнимого числа;
p-2
p-3
вычисляют мощность каждой частоты в (Р-2)-ом кадре и (Р-3)-ом кадре, составляют наборы m, m частот, беря первые 10 частот с пиковыми значениями, имеющих самую большую мощность соответственно в (Р-2)-ом кадре и (Р-3)-ом кадре (если число частот с пиковыми значениями в каком-либо кадре меньше 10, берут все частоты с пиковыми значениями в этом кадре);
оценивают мощность каждой частоты в (Р-1)-ом кадре согласно коэффициенту MDCT (Р-1)-го кадра:
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup><mo>=</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo>−</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup><mo>,</mo><mtext>                                   </mtext><mo stretchy="false">(</mo><mn>5</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
p-1
где
- мощность (Р-1)-го кадра на частоте m, c(m+1) - коэффициент MDCT (Р-1)-го кадра на частоте m+1, и далее аналогично;
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
p-1
получают посредством вычисления первые 10 частот
, i=1…10 с пиковыми значениями, имеющих самую большую мощность в (Р-1)-ом кадре, при этом, если число частот с пиковыми значениями в каком-либо кадре меньше 10, берут все частоты
, i=1…N с пиковыми значениями в кадре;
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
p-2
p-3
p-2
p-3
для каждой частоты
определяют, принадлежат ли какая-либо из частот
,
(частоты вблизи частоты с пиковым значением добавляют к набору частот с пиковыми значениями (Р-1)-го кадра, поскольку их мощность также может быть очень большой) наборам m, m одновременно, если да, получают фазу и амплитуду комплексного сигнала в области MDCT-MDST для Р-го кадра на частотах
,
, (следующее вычисление выполняют для всех трех частот
,
при условии, что одна из частот
,
принадлежит наборам m, m одновременно) согласно следующим формулам (6)-(11):
<mrow><msup><mi>ϕ</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mo>∠</mo><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                                  </mtext><mo stretchy="false">(</mo><mn>6</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>ϕ</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mo>∠</mo><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                               </mtext><mo stretchy="false">(</mo><mn>7</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><mo>,</mo><mtext>                                                                                </mtext><mo stretchy="false">(</mo><mn>8</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><mo>,</mo><mtext>                                                                                </mtext><mo stretchy="false">(</mo><mn>9</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>φ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>φ</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mn>2</mn><mrow><mo>[</mo><mrow><msup><mi>φ</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>−</mo><msup><mi>φ</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow><mo>,</mo><mtext>                                                 </mtext><mo stretchy="false">(</mo><mn>10</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                                  </mtext><mo stretchy="false">(</mo><mn>11</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
где φ, A - фаза и амплитуда, соответственно,
- фаза Р-го кадра на частоте m,
- фаза (Р-2)-го кадра на частоте m,
- фаза (Р-3)-го кадра на частоте m,
- амплитуда Р-го кадра на частоте m и
- амплитуда (Р-2)-го кадра на частоте m, и далее аналогично;
соответственно, коэффициент MDCT Р-го кадра на частоте m, получаемый посредством компенсации, определяется выражением
<mrow><msup><mover accent="true"><mi>c</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mi>cos</mi><mrow><mo>[</mo><mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow><mo>.</mo><mtext>                                                                         </mtext><mo stretchy="false">(</mo><mn>12</mn><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
p-2
p-3
Если нет частоты из всех частот
,
, принадлежащей наборам m, m одновременно, оценивают коэффициенты MDCT для всех частот текущего потерянного кадра по формулам (6)-(12).
Операцию вычисления предсказываемых частот также можно не выполнять и непосредственно оценивать коэффициенты MDCT по формулам (6)-(12) для всех частот в текущем потерянном кадре.
Шаг 140. Выполняют преобразование IMDCT для коэффициентов MDCT текущего потерянного кадра на всех частотах, чтобы получить сигнал во временной области для текущего потерянного кадра.
Пример 2
Шаг 210. При обнаружении потери пакета данных текущего кадра декодирующий конец определяет, является ли текущий кадр (то есть текущий потерянный кадр) кадром с множеством гармоник (например, музыкальным кадром, включающим различные гармоники), и выполняет шаг 220, если текущий кадр является кадром без множества гармоник, или, в противном случае, выполняет шаг 230.
Конкретный способ определения, является ли текущий потерянный кадр кадром с множеством гармоник, состоит в следующем:
вычисляют равномерность спектра 10 кадров перед текущим потерянным кадром и для каждого кадра полагают, что кадр является кадром стационарного сигнала с множеством гармоник, если равномерность спектра меньше 0,1; если более 8 кадров в 10 кадрах перед потерянным кадром являются кадрами стационарного сигнала с множеством гармоник, считают, что текущий потерянный кадр является кадром с множеством гармоник, в противном случае считают, что текущий потерянный кадр является кадром без множества гармоник. Способ вычисления равномерности спектра состоит в следующем:
i
равномерность спектра i-го кадра SFM определяют как отношение среднего геометрического к среднему арифметическому амплитуды сигнала в области преобразования сигнала i-го кадра:
<mrow><mi>S</mi><mi>F</mi><msub><mi>M</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>G</mi><mi>i</mi></msub></mrow><mrow><msub><mi>A</mi><mi>i</mi></msub></mrow></mfrac><mo>,</mo><mtext>                                                                                             </mtext><mo stretchy="false">(</mo><mn>13</mn><mo stretchy="false">)</mo></mrow>
<mrow><msub><mi>G</mi><mi>i</mi></msub><mo>=</mo><mo stretchy="false">(</mo><mstyle displaystyle="true"><munderover><mo>∏</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mrow><mo>|</mo><mrow><msup><mi>c</mi><mi>i</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><msup><mo stretchy="false">)</mo><mrow><mfrac><mn>1</mn><mi>M</mi></mfrac></mrow></msup></mrow></mstyle></mrow>
<mrow><msub><mi>A</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>M</mi></mfrac><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mrow><mo>|</mo><mrow><msup><mi>c</mi><mi>i</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow></mstyle></mrow>
i
где
- среднее геометрическое амплитуды сигнала i-го кадра,
- среднее арифметическое амплитуды сигнала i-го кадра, c(m) - коэффициент MDCT i-го кадра на частоте m, и М - длина кадра сигнала в области MDCT.
Шаг 220. Если определяют, что текущий потерянный кадр является кадром без множества гармоник, то в качестве значения коэффициента MDCT текущего потерянного кадра для каждой частоты в кадре используют половину значения коэффициента MDCT кадра, непосредственно предшествующего текущему потерянному кадру, то есть
<mrow><msup><mi>c</mi><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mn>0,5</mn><mo>*</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                                </mtext><mo stretchy="false">(</mo><mn>14</mn><mo stretchy="false">)</mo></mrow>
где m=0, 1, 2, 3…M-1,
затем выполняют шаг 240.
Шаг 230. Если определяют, что текущий потерянный кадр является кадром с множеством гармоник, то коэффициент MDCT текущего потерянного кадра получают с использованием алгоритма компенсации потери кадров с множеством гармоник без задержки и выполняют шаг 240.
P-2
P-3
P-4
Р-2
P-3
P-4
Конкретный способ использования алгоритма компенсации потери кадров с множеством гармоник без задержки для получения коэффициента MDCT текущего потерянного кадра заключается в следующем: когда пакет данных Р-го кадра потерян, то используют алгоритм FMDST, чтобы получить коэффициенты MDST s(m), s(m) и s(m) (Р-2)-го кадра, (Р-3)-го кадра и (Р-4)-го кадра согласно коэффициентам MDCT, которые получены посредством декодирования кадров перед текущим потерянным кадром. Полученные коэффициенты MDST (Р-2)-го кадра, (Р-3)-го кадра и (Р-4)-го кадра и коэффициенты MDCT (Р-2)-го кадра, (Р-3)-го кадра и (Р-4)-го с(m), c(m) и c(m) составляют комплексные сигналы в области MDCT-MDST:
<mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mi>j</mi><msup><mi>s</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                               </mtext><mo stretchy="false">(</mo><mn>15</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mi>j</mi><msup><mi>s</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                               </mtext><mo stretchy="false">(</mo><mn>16</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mi>j</mi><msup><mi>s</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                 </mtext><mo stretchy="false">(</mo><mn>17</mn><mo stretchy="false">)</mo></mrow>
где j - символ мнимого числа.
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
p-2
p-3
p-4
Вычисляют мощность каждой частоты в (Р-2)-ом кадре, (Р-3)-ом кадре и (Р-4)-ом кадре
,
,
, составляют наборы m, m, m частот, беря первые 10 частот с пиковыми значениями, имеющие самую большую мощность соответственно в (Р-2)-ом кадре, (Р-3)-ом кадре и (Р-4)-ом кадре (если число частот с пиковыми значениями в каком-либо кадре меньше 10, берут все частоты с пиковыми значениями в кадре).
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
p-4
p-2
p-3
p-2
p-3
Для каждой частоты
в наборе m частот определяют, принадлежат ли какие-либо из частот
,
(частоты вблизи частоты с пиковым значением добавляют к набору частот с пиковыми значениями Р-4-го кадра, поскольку их мощность также может быть очень большой) наборам m, m одновременно, и, если да, получают фазу и амплитуду комплексного сигнала в области MDCT-MDST для Р-го кадра на частотах
,
, (следующее вычисление выполняют для всех трех частот
,
при условии, что одна из частот
,
одновременно принадлежит наборам m, m) согласно следующим формулам (18)-(27):
<mrow><msup><mi>ϕ</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mo>∠</mo><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                           </mtext><mo stretchy="false">(</mo><mn>18</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>ϕ</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mo>∠</mo><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                           </mtext><mo stretchy="false">(</mo><mn>19</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>ϕ</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mo>∠</mo><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                          </mtext><mo stretchy="false">(</mo><mn>20</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><mo>,</mo><mtext>                                                                           </mtext><mo stretchy="false">(</mo><mn>21</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><mo>,</mo><mtext>                                                                           </mtext><mo stretchy="false">(</mo><mn>22</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><mrow><mo>|</mo><mrow><msup><mi>ν</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow><mo>,</mo><mtext>                                                                           </mtext><mo stretchy="false">(</mo><mn>23</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>А</mi><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>,</mo><mtext>                                                                               </mtext><mo stretchy="false">(</mo><mn>24</mn><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>3</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
<mrow><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
где φ, А - фаза и амплитуда, соответственно,
- фаза Р-го кадра на частоте m,
- фаза (Р-2)-го кадра на частоте m,
- фаза (Р-3)-го кадра на частоте m,
- амплитуда Р-го кадра на частоте m и
- амплитуда (Р-2)-го кадра на частоте m, и далее аналогично;
для вычисления функции линейной аппроксимации фаз различных кадров на одной и той же частоте используют метод наименьших квадратов
<mrow><mi>ϕ</mi><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>а</mi><mn>0</mn></msub><mo>+</mo><msub><mi>а</mi><mn>1</mn></msub><mi>х</mi><mo>,</mo><mtext>                                                                                    </mtext><mo stretchy="false">(</mo><mn>25</mn><mo stretchy="false">)</mo></mrow>
0
1
где х - порядковый номер кадра, а, а - коэффициенты функции линейной аппроксимации, которые необходимо вычислить.
0
1
Коэффициенты а, а получают из следующей системы формул согласно способу измерения ошибки аппроксимации с использованием критерия наименьших квадратов
<mrow><mrow><mo>[</mo><mrow><mtable><mtr><mtd><mn>3</mn></mtd><mtd><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow><mn>4</mn></munderover><mrow><mi>p</mi><mo>−</mo><mi>k</mi></mrow></mstyle></mrow></mtd></mtr><mtr><mtd><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow><mn>4</mn></munderover><mrow><mi>p</mi><mo>−</mo><mi>k</mi></mrow></mstyle></mrow></mtd><mtd><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow><mn>4</mn></munderover><mrow><msup><mrow><mo stretchy="false">(</mo><mi>p</mi><mo>−</mo><mi>k</mi><mo stretchy="false">)</mo></mrow><mn>2</mn></msup></mrow></mstyle></mrow></mtd></mtr></mtable></mrow><mo>]</mo></mrow><mrow><mo>[</mo><mrow><mtable><mtr><mtd><mrow><msub><mi>а</mi><mn>0</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>а</mi><mn>1</mn></msub></mrow></mtd></mtr></mtable></mrow><mo>]</mo></mrow><mo>=</mo><mrow><mo>[</mo><mrow><mtable><mtr><mtd><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow><mn>4</mn></munderover><mrow><msup><mi>ϕ</mi><mrow><mi>p</mi><mo>−</mo><mi>k</mi></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow></mstyle></mrow></mtd></mtr><mtr><mtd><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>2</mn></mrow><mn>4</mn></munderover><mrow><mo stretchy="false">(</mo><mi>p</mi><mo>−</mo><mi>k</mi><mo stretchy="false">)</mo><msup><mi>ϕ</mi><mrow><mi>p</mi><mo>−</mo><mi>k</mi></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow></mstyle></mrow></mtd></mtr></mtable></mrow><mo>]</mo></mrow><mo>.</mo><mtext>                                </mtext><mo stretchy="false">(</mo><mn>26</mn><mo stretchy="false">)</mo></mrow>
0
1
В других примерах также может измеряться ошибка аппроксимации, и могут оцениваться коэффициенты аппроксимации с использованием других критериев помимо критерия наименьших квадратов. Фаза Р-го кадра на частоте m тогда может оцениваться согласно полученным коэффициентам а, а как
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>а</mi><mn>0</mn></msub><mo>+</mo><msub><mi>а</mi><mn>1</mn></msub><mi>р</mi><mo>.</mo><mtext>                                                                                        </mtext><mo stretchy="false">(</mo><mn>27</mn><mo stretchy="false">)</mo></mrow>
Соответственно, коэффициент MDCT Р-го кадра на частоте m, получаемый посредством компенсации, равен
<mrow><msup><mover accent="true"><mi>c</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mover accent="true"><mi>А</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mi>cos</mi><mrow><mo>[</mo><mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow><mo>.</mo><mtext>                                                                   </mtext><mo stretchy="false">(</mo><mn>28</mn><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
p-2
p-3
C
C
Если какая-либо частота из всех частот
,
не принадлежит наборам m, m одновременно, то S используют для обозначения набора, включающего все частоты, которые скомпенсированы согласно формулам (18)-(28), и в качестве значения коэффициента MDCT текущего потерянного кадра для частоты, которая находится вне набора S частот в кадре используют половину значения коэффициента MDCT кадра, непосредственно предшествующего текущему потерянному кадру.
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>m</mi><mi>i</mi><mrow><mi>р</mi><mo>−</mo><mn>4</mn></mrow></msubsup><mo>±</mo><mn>1</mn></mrow>
p-2
p-3
Если нет частоты среди всех частот
,
, принадлежащей наборам m, m одновременно, то коэффициенты MDCT оценивают для всех частот текущего потерянного кадра по формулам (18)-(28).
Операцию вычисления предсказываемых частот также можно не выполнять и непосредственно оценивать коэффициенты MDCT по формулам (18)-(28) для всех частот в текущем потерянном кадре.
Шаг 240. Выполняют преобразование IMDCT для коэффициентов MDCT текущего потерянного кадра на всех частотах, чтобы получить сигнал во временной области для текущего потерянного кадра.
Также предлагается компенсатор потери кадров звукового сигнала в области MDCT, содержащий модуль определения типа кадра, модуль компенсации потери кадров без множества гармоник, модуль компенсации потери кадров с множеством гармоник, второй модуль компенсации и модуль IMDCT, как показано на фиг.6, при этом
модуль определения типа кадра сконфигурирован так, чтобы при обнаружении того, что текущий кадр потерян, определять тип текущего потерянного кадра и подавать модулю компенсации потери кадров без множества гармоник команду на компенсацию, если текущий потерянный кадр является кадром без множества гармоник; подавать модулю компенсации потери кадров с множеством гармоник команду на компенсацию, если текущий потерянный кадр является кадром с множеством гармоник; конкретный способ определения типа текущего потерянного кадра описан ранее и поэтому здесь не приводится;
модуль компенсации потери кадров без множества гармоник сконфигурирован так, чтобы для всех частот в кадре использовать значения коэффициентов MDCT множества кадров перед текущим потерянным кадром для вычисления значения коэффициента MDCT текущего потерянного кадра и передавать коэффициент MDCT в модуль IMDCT;
модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы, когда текущий потерянный кадр является Р-ым кадром, получать набор предсказываемых частот и для каждой частоты в наборе предсказываемых частот использовать фазы и амплитуды множества кадров перед (Р-1)-ым кадром в области MDCT-MDST, чтобы предсказывать фазу и амплитуду Р-го кадра в области MDCT-MDST, использовать предсказанную фазу и амплитуду Р-го кадра в области MDCT-MDST для получения коэффициента MDCT Р-го кадра на каждой частоте и передавать коэффициент MDCT во второй модуль компенсации, причем (Р-1)-й кадр является кадром, непосредственно предшествующим Р-му кадру;
модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы использовать комплексные сигналы в области MDCT-MDST для (Р-2)-го кадра и (Р-3)-го кадра и коэффициент MDCT (Р-1)-го кадра для получения набора предсказываемых частот и использовать фазы и амплитуды (Р-2)-го кадра и (Р-3)-го кадра в области MDCT-MDST для предсказания фазы и амплитуды Р-го кадра в области MDCT-MDST для каждой частоты в наборе частот.
При получении набора предсказываемых частот модуль компенсации потери кадров с множеством гармоник использует комплексные сигналы в области MDCT-MDST и/или коэффициенты MDCT множества кадров перед Р-ым кадром для получения набора предсказываемых частот или непосредственного помещения всех частот в кадре в набор частот.
Второй модуль компенсации сконфигурирован так, чтобы для частоты вне набора предсказываемых частот в кадре использовать значения коэффициентов MDCT множества кадров перед Р-ым кадром для вычисления коэффициента MDCT Р-го кадра на упомянутой частоте, передавать коэффициенты MDCT Р-го кадра на всех частотах в модуль IMDCT; кроме того, второй модуль компенсации использует в качестве значения коэффициента MDCT Р-го кадра на частоте вне набора предсказываемых частот половину значения коэффициента MDCT (Р-1)-го кадра.
Модуль компенсации потери кадров с множеством гармоник также содержит блок генерации набора частот и блок генерации коэффициентов, причем
C
блок генерации набора частот сконфигурирован для генерации набора S предсказываемых частот;
блок генерации коэффициентов сконфигурирован так, чтобы использовать фазы и амплитуды L2 кадров перед (Р-1)-ым кадром в области MDCT-MDST для предсказания фазы и амплитуды каждой частоты, принадлежащей набору Sc частот в Р-ом кадре, использовать предсказанную фазу и амплитуду Р-го кадра в области MDCT-MDST для получения коэффициента MDCT Р-го кадра на каждой соответствующей частоте и передавать коэффициент MDCT во второй модуль компенсации, причем L2>1.
C
1
L1
1
L1
Блок генерации набора частот сконфигурирован так, чтобы генерировать набор S предсказываемых частот путем назначения множества кадров перед Р-ым кадром как L1 кадров, вычисления мощности каждой частоты в L1 кадрах и получения наборов S,…,S, включающих частоты с пиковыми значениями в каждом кадре из L1 кадров, при этом число частот, соответствующих каждому набору, составляет N,…,N, соответственно;
i
1
L1
j
j
j
j
i
i
j
j
j
C
выбора набора S из L1 наборов S,…,S, определения, имеется ли частота среди частот m, m±1,…,m±k, принадлежащая всем другим наборам частот с пиковыми значениями одновременно, для каждой частоты m, j=1…N с пиковым значением в наборе S, если да, то помещение всех частот m, m±1,…,m±k в набор S частот;
j
j
j
j
i
i
C
если нет частоты среди частот m, m±1,…,m±k, принадлежащей всем другим наборам частот с пиковыми значениями одновременно для каждой частоты m, j=1…N с пиковым значением в наборе S, помещение всех частот в кадре в набор S частот;
где k - неотрицательное целое число. Частота с пиковым значением относится к частоте, мощность которой больше мощности двух соседних с ней частот.
Когда (Р-1)-й кадр входит в состав L1 кадров, блок генерации набора частот вычисляет мощность каждой частоты в (Р-1)-ом кадре следующим образом:
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup><mo>=</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mrow><mo>[</mo><mrow><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo><mo>−</mo><msup><mi>c</mi><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow><mn>2</mn></msup></mrow>
<mrow><msup><mrow><mrow><mo>|</mo><mrow><msup><mover accent="true"><mi>ν</mi><mo>^</mo></mover><mrow><mi>р</mi><mo>−</mo><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>|</mo></mrow></mrow><mn>2</mn></msup></mrow>
р-1
p-1
р-1
, где
- мощность частоты m в (Р-1)-ом кадре, с(m) - коэффициент MDCT частоты m в (Р-1)-ом кадре, c(m+1) - коэффициент MDCT частоты m+1 в (Р-1)-ом кадре, с(m-1) - коэффициент MDCT частоты m-1 в (Р-1)-ом кадре.
Блок генерации коэффициентов также содержит субблок предсказания фазы и субблок предсказания амплитуды, при этом
субблок предсказания фазы сконфигурирован так, чтобы для предсказываемой частоты использовать фазы Z-2 кадров в области MDCT-MDST на упомянутой частоте для выполнения линейной экстраполяции или линейной аппроксимации, чтобы получить фазу Р-го кадра в области MDCT-MDST на упомянутой частоте;
субблок предсказания амплитуды сконфигурирован так, чтобы получать амплитуду Р-го кадра в области MDCT-MDST на упомянутой частоте из амплитуды одного из L2 кадров в области MDCT-MDST на упомянутой частоте.
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>+</mo><mfrac><mrow><mi>p</mi><mo>−</mo><mi>t</mi><mn>1</mn></mrow><mrow><mi>t</mi><mn>1</mn><mo>−</mo><mi>t</mi><mn>2</mn></mrow></mfrac><mrow><mo>[</mo><mrow><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>1</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo><mo>−</mo><msup><mi>ϕ</mi><mrow><mi>t</mi><mn>2</mn></mrow></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow><mo>]</mo></mrow></mrow>
<mrow><msup><mover accent="true"><mi>ϕ</mi><mo>^</mo></mover><mi>р</mi></msup><mo stretchy="false">(</mo><mi>m</mi><mo stretchy="false">)</mo></mrow>
t1
t2
Если L2=2, то t1-й кадр и t2-й кадр используют для представления двух кадров соответственно, и субблок предсказания фазы предсказывает фазу Р-го кадра в области MDCT-MDST для предсказываемой частоты m следующим образом:
, где
- предсказываемое значение фазы Р-го кадра в области MDCT-MDST на упомянутой частоте m, φ(m) - фаза t1-го кадра в области MDCT-MDST на частоте m, и φ(m) - фаза t2-го кадра в области MDCT-MDST на частоте m.
Если L2>2, субблок предсказания фазы предсказывает фазу Р-го кадра в области MDCT-MDST путем выполнения для предсказываемой частоты линейной аппроксимации фаз выбранных L2 кадров в области MDCT-MDST на упомянутой частоте для получения фазы Р-го кадра в области MDCT-MDST на этой частоте.
Модуль IMDCT сконфигурирован так, чтобы выполнять преобразование IMDCT для коэффициентов MDCT Р-го кадра на всех частотах для получения сигнала во временной области для Р-го кадра.
Компенсатор потери кадров звукового сигнала в области MDCT, показанный на фиг.6, может быть изменен так, как показано на фиг.7, и может содержать модуль определения типа кадра, модуль компенсации потери кадров без множества гармоник, модуль компенсации потери кадров с множеством гармоник, второй модуль компенсации и модуль IMDCT, при этом второй модуль компенсации соединен с модулем определения типа кадра и модулем компенсации потери кадров с множеством гармоник, а модуль компенсации потери кадров с множеством гармоник соединен с модулем IMDCT, причем
второй модуль компенсации сконфигурирован так, чтобы для всех частот в кадре использовать значения коэффициентов MDCT множества кадров перед текущим потерянным кадром для вычисления значения коэффициента MDCT текущего потерянного кадра и передавать коэффициент MDCT в модуль компенсации потери кадров с множеством гармоник;
модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы получать набор предсказываемых частот и получать коэффициент MDCT Р-го кадра на каждой частоте в наборе предсказываемых частот, при этом конкретный способ является таким же, что и у модуля компенсации потери кадров с множеством гармоник, показанного на фиг.6; для каждой частоты вне набора предсказываемых частот используют коэффициент MDCT, полученный от второго модуля компенсации в качестве коэффициента MDCT Р-го кадра на упомянутой частоте и передают коэффициенты MDCT Р-го кадра на всех частотах в модуль IMDCT.
Функции других модулей аналогичны функциям модулей, показанных на фиг.6, и поэтому здесь не приводятся.
На фиг.8 показана другая структурная схема компенсатора потери кадров звукового сигнала в области MDCT согласно настоящему изобретению, в которой компенсатор потери кадров звукового сигнала в области MDCT включает модуль компенсации потери кадров без множества гармоник, модуль определения типа кадра, модуль компенсации потери кадров с множеством гармоник и модуль IMDCT, при этом
модуль компенсации потери кадров без множества гармоник сконфигурирован так, чтобы при обнаружении потерянного кадра использовать значения коэффициентов MDCT множества кадров перед текущим потерянным кадром для вычисления значения коэффициента MDCT текущего потерянного кадра для всех частот в кадре и передавать коэффициент MDCT в модуль определения типа кадра;
модуль определения типа кадра сконфигурирован так, чтобы определять тип текущего потерянного кадра, и если текущий потерянный кадр является кадром без множества гармоник, то передавать в модуль IMDCT коэффициент MDCT, принятый от модуля компенсации потери кадров без множества гармоник; если текущий потерянный кадр является кадром с множеством гармоник, то передавать коэффициент MDCT в модуль компенсации потери кадров с множеством гармоник; при этом конкретный способ определения типа текущего потерянного кадра описан выше и поэтому здесь не приводится.
Модуль компенсации потери кадров с множеством гармоник сконфигурирован так, чтобы получать набор предсказываемых частот и коэффициент MDCT Р-го кадра на каждой частоте в наборе предсказываемых частот; при этом конкретный способ является таким же, что и у модуля компенсации потери кадров с множеством гармоник, показанного на фиг.6; для каждой частоты вне набора предсказываемых частот используют коэффициент MDCT, полученный от модуля определения типа кадра, в качестве коэффициента MDCT Р-го кадра на упомянутой частоте и передают коэффициенты MDCT Р-го кадра на всех частотах в модуль IMDCT;
модуль IMDCT сконфигурирован так, чтобы выполнять преобразование IMDCT для коэффициентов MDCT текущего потерянного кадра на всех частотах для получения сигнала во временной области для Р-го кадра.
Способ компенсации и компенсатор потери кадров звукового сигнала, раскрытые в изобретении, могут быть применены для решения задачи компенсации потери кадров звукового сигнала при двусторонней связи в реальном времени, такой как радиосвязь, видеоконференции по протоколу Интернета, а также в области предоставления широковещательных услуг в реальном времени, например, в телевидении по протоколу Интернета (Internet Protocol Television, IPTV), при передаче потоковой мультимедийной информации в системах мобильной связи, в мобильном телевидении и других областях для улучшения защиты от ошибок передаваемого битового потока. Изобретение позволяет хорошо устранять ухудшения качества речи, вызываемые потерей пакета во время передачи по сети звуковых и речевых сигналов, посредством операции компенсации, улучшает комфорт и качество звуковых и речевых сигналов после потери пакета и сильно влияет на восприятие звучания.
Промышленная применимость
По сравнению с известным уровнем техники компенсатор и способ компенсации потери кадров звукового сигнала в области MDCT согласно настоящему изобретению имеют преимущества отсутствия задержки, малого объема вычислений, малого объема пространства памяти, простоты реализации и т.д.