Устройство и способ для улучшенного плавного изменения сигнала для переключаемых систем кодирования звука во время маскирования ошибок
Иллюстрации
Показать всеИзобретение относится к декодированию звукового сигнала. Технический результат – обеспечение улучшенных концепций для систем кодирования звука. Для этого устройство содержит интерфейс приема, который конфигурируется для приема первого кадра, содержащего первую часть звукового сигнала, и который конфигурируется для приема второго кадра, содержащего вторую часть звукового сигнала. Устройство содержит блок отслеживания уровня шума, который конфигурируется для определения информации уровня шума в зависимости по меньшей мере от одной из первой части звукового сигнала и второй части звукового сигнала, причем информация уровня шума представлена в области отслеживания. Устройство содержит первый блок восстановления для восстановления в первой области восстановления третьей части звукового сигнала в зависимости от информации уровня шума, если третий кадр из множества кадров не принимается с помощью интерфейса приема или если указанный третий кадр принимается с помощью интерфейса приема, но он поврежден, причем первая область восстановления отличается или равна области отслеживания. 3 н. и 19 з.п. ф-лы, 17 ил., 2 табл.
Реферат
Настоящее изобретение относится к кодированию, обработке и декодированию звукового сигнала, и в частности - к устройству и способу для улучшенного плавного изменения сигнала для систем с переключаемым звуковым кодированием во время маскирования ошибок.
В последующем описано современное состояние по отношению к плавному изменению во время маскирования потери пакетов (PLC) для речевых и звуковых кодеков. Объяснения по отношению к современному состоянию начинаются с кодеков ITU-T G-серии (G.718, G.719, G.722, G.722.1, G.729. G.729.1), за ними следуют 3GPP кодеки (AMR, AMR-WB, AMR-WB+) и один кодек IETF (OPUS), и заканчиваются двумя кодеками MPEG (HE-AAC, HILN) (ITU=международный союз по телекоммуникациям; 3GPP=проект партнерства 3-го поколения; AMR=адаптивное кодирование с переменной скоростью; WB=широкополосное; IETF=целевая группа разработки Интернет). Впоследствии анализируется современное состояние по отношению к отслеживанию уровня фонового шума, за которым следует итоговая информация, которая обеспечивает краткий обзор.
Сначала рассматривают G.718. G.718 - узкополосный и широкополосный кодек для речевых сигналов, который поддерживает DTX/CNG (DTX=системы цифрового театра; CNG=генерация комфортного шума). Поскольку варианты осуществления, в частности, относятся к коду с низкой задержкой, версия режима с низкой задержкой будет описана более подробно в данной работе.
Рассматривая ACELP (уровень 1) (ACELP=линейное предсказание с алгебраическим кодовым возбуждением), ITU-T рекомендует для G.718 [ITU08a, раздел 7.11] адаптивное плавное изменение в области линейного предсказания для управления скоростью плавного изменения. В общем случае маскирование следует этому принципу:
Согласно G.718, в случае стираний кадра стратегия маскирования может обобщаться как сходимость энергии сигнала и спектральной огибающей к оцененным параметрам фонового шума. Периодичность сигнала сходится к нулю. Скорость сходимости зависит от параметров последнего правильно принятого кадра и количества последовательных стертых кадров, и управляется с помощью коэффициента ослабления α. Коэффициент ослабления α дополнительно зависит от стабильности θ фильтра LP (LP=линейное предсказание) для «невокализованных» кадров. В общем случае сходимость является медленной, если последний хороший принятый кадр находится в устойчивом сегменте, и быстрой, если кадр находится в сегменте перехода.
Коэффициент ослабления α зависит от класса речевого сигнала, который извлекается с помощью классификации сигнала, описанной в [ITU08a, раздел 6.8.1.3.1 и 7.1 1.1.1]. Коэффициент стабильности θ вычисляется, основываясь на измерении расстояния между смежными фильтрами ISF (спектральной частоты иммитанса) [ITU08a, раздел 7.1.2.4.2].
Таблица 1 показывает схему вычисления α: | ||
Последний хороший принятый кадр | Количество последовательных стертых кадров | α |
Искусственное вступление | 0,6 | |
Вокализованное вступление | ≤3>3 | 1,00,4 |
Вокализованный переход | 0,4 | |
Невокализованный переход | 0,8 | |
Невокализованный | =1=2>2 | 0,2θ+0,80,60,4 |
Таблица 1: Значения коэффициента ослабления α, значение θ является коэффициентом стабильности, вычисленным из измерения расстояния между смежными фильтрами LP. [ITU08a, раздел 7.1.2.4.2].
Кроме того, G.718 обеспечивает способ плавного изменения для изменения спектральной огибающей. Общей идеей является выполнение схождения параметров последней ISF к адаптивному вектору средних значений ISF. Сначала усредненный вектор ISF вычисляется из последних 3 известных векторов ISF. Затем усредненный вектор ISF снова усредняется с автономно подготовленным долгосрочным вектором ISF (который является постоянным вектором) [ITU08a, раздел 7.1 1.1.2].
Кроме того, G.718 обеспечивает способ плавного изменения для управления долгосрочным режимом работы и таким образом - для взаимодействия с фоновым шумом, где энергия тонального возбуждения (и таким образом периодичность возбуждения) сходится к 0, в то время как случайная энергия возбуждения сходится к энергии возбуждения CNG [ITU08a, раздел 7.1 1.1.6]. Ослабление инновационного усиления вычисляется как
где gs[1] является инновационным усилением в начале следующего кадра, gs[0] является инновационным усилением в начале текущего кадра, gn является усилением возбуждения, используемыми во время генерации комфортного шума и коэффициенте ослабления α.
Аналогично периодическому ослаблению возбуждения, усиление ослабляется линейно по всему кадру на основе «выборка за выборкой», начиная с gs[0] и достигая gs[1] в начале следующего кадра.
Фиг. 2 схематично представляет структуру декодера G.718. В частности, фиг. 2 показывает высокоуровневую структуру декодера G.718 для PLC, показывая высокочастотный фильтр.
С помощью вышеописанного подхода G.718 инновационное усиление gs сходится к усилению, используемому во время генерации комфортного шума gn для потерь длинных пачек пакетов. Как описано в [ITU08a, раздел 6.12.3], усиление gn комфортного шума задается как квадратный корень из энергии Ẽ. Условия обновления Ẽ не описаны подробно. Следуя эталонному воплощению (C-код с плавающей запятой, stat_noise_uv_mod.c), Ẽ извлекают следующим образом:
if(unvoiced_vad == 0){
if(unv_cnt>20){
ftmp=lp_gainc * lp_gainc;
lp_ener=0.7f * lp_ener+0.3f * ftmp;
}
else{
unv_cnt++;
}
}
else{
unv_cnt=0;
}
причем unvoiced_vad охватывает обнаружение активности речи, причем unv_cnt охватывает количество расположенных подряд невокализованных кадров, причем lp_gainc охватывает низкочастотное усиление фиксированной кодовой книги, и причем lp_ener охватывает низкочастотную CNG оценку энергии Ẽ, она инициализируется в 0.
К тому же G.718 обеспечивает высокочастотный фильтр, введенный в тракт передачи сигналов невокализованного возбуждения, если сигнал последнего хорошего кадра был классифицирован отличающимся от «невокализованного», см. фиг. 2, также см. [ITU08a, раздел 7.1 1.1.6). Этот фильтр имеет характеристику «низкой полки» с частотной характеристикой по DC, расположенной приблизительно на 5 дБ ниже, чем частота Найквиста.
Кроме того, G.718 предлагает разъединенный цикл обратной связи LTP (LTP=долгосрочное предсказание): хотя во время обычного функционирования цикл обратной связи для адаптивной кодовой книги обновляется по субкадрам ([ITU08a, раздел 7.1.2.1.4]), основываясь на полном возбуждении. Во время маскирования этот цикл обратной связи обновляется по кадрам (см. [ITU08a, раздел 7.11.1.4, 7.1 1.2.4, 7.1 1.1.6, 7.1 1.2.6; dec_GV_exc@dec_gen_voic.c и syn_bfi_post@syn_bfi_pre_post.c]), основываясь только на вокализованном возбуждении. С этим подходом адаптивная кодовая книга не «засоряется» шумом, возникающим в случайно выбранном инновационном возбуждении.
Рассматривая уровни (3-5) улучшения кодирования с преобразованием из G.718, во время маскирования декодер ведет себя по отношению к верхнему уровню декодирования аналогично обычному функционированию, только спектр MDCT устанавливают в нуль. Никакой специальный режим плавного изменения не применяется во время маскирования.
По отношению к CNG, в G.718 синтез CNG выполняется в следующем порядке. Сначала декодируются параметры кадра комфортного шума. Затем синтезируется кадр комфортного шума. Впоследствии сбрасывается буфер тонов. Затем сохраняется классификация синтеза для FER (устранения ошибок кадра). Впоследствии проводится компенсация предыскажений спектра. Затем проводится низкочастотное постфильтрование. Затем обновляются переменные CNG.
В случае маскирования выполняется точно то же самое, кроме того, что параметры CNG не декодируются из битового потока. Это означает, что параметры не обновляются во время потери кадра, а используются декодированные параметры из последнего хорошего кадра SID (описателя вставки тишины).
Теперь рассматривают G.719. G.719, который основан на Siren 22, является основанным на преобразовании звуковым кодеком полного диапазона. ITU-T рекомендует для G.719 плавное изменение с повторением кадра в спектральной области [ITU08b, раздел 8.6]. Согласно G.719, механизм маскирования стирания кадра внедряется в декодер. Когда кадр правильно принимается, восстановленные коэффициенты преобразования сохраняются в буфере. Если декодеру сообщают, что кадр потерян или что кадр поврежден, то коэффициенты преобразования, восстановленные в последнем принятом кадре масштабируются в сторону уменьшения с коэффициентом 0,5 и затем используются в качестве восстановленных коэффициентов преобразования для текущего кадра. Декодер действует с помощью преобразования их во временную область и выполнения операции «кадрированного перекрытия с суммированием».
В последующем описан G.722. G.722 является системой кодирования 50-7000 Гц, которая использует адаптивную дифференциальную импульсно-кодовую модуляцию поддиапазона (SB-ADPCM) в пределах скорости передачи битов до 64 кбит/сек. Сигнал делится на верхний и нижний поддиапазоны, используя анализ QMF (QMF=квадратурный зеркальный фильтр). Два полученных в результате диапазона кодируются с помощью ADPCM (ADPCM= адаптивная дифференциальная импульсно-кодовая модуляция).
Для G.722 алгоритм с высокой сложностью для маскирования потери пакетов определен в приложении III [ITU06a], а алгоритм с низкой сложностью для маскирования потери пакетов определен в приложении IV [ITU07]. G.722-приложение III ([ITU06a, раздел III.5]) предлагает выполнение постепенного заглушения, которое начинается после 20 мс потери кадров и которое заканчивается после 60 мс потери кадров. Кроме того, G.722-приложение IV предлагает методику плавного изменения, которая применяет «к каждой выборке коэффициент усиления, который вычисляется и адаптируется «выборка за выборкой»» [ITU07, раздел IV.6.1.2.7].
В G.722 процесс заглушения происходит в области поддиапазона непосредственно перед синтезом QMF и как последний этап модуля PLC. Вычисление коэффициента заглушения выполняется, используя информацию о классе от классификатора сигнала, который также является частью модуля PLC. Различие делается между классами TRANSIENT, UV_TRANSITION и другими. Кроме того, различие сделано между одиночными потерями кадров 10 мс и другими случаями (множественными потерями кадров 10 мс и одиночными/множественными потерями кадров 20 мс).
Это показано на фиг. 3. В частности, фиг. 3 изображает сценарий, где коэффициент плавного изменения G.722 зависит от информации о классе, и в котором 80 выборок эквивалентны 10 мс.
Согласно G.722, модуль PLC создает сигнал для недостающего кадра и некоторый дополнительный сигнал (10 мс), который, как предполагается, плавно переходит в следующий хороший кадр. Заглушение для этого дополнительного сигнала придерживается тех же самых правил. При маскировании высокочастотного диапазона G.722 плавный переход не происходит.
В последующем рассматривают G.722.1. G.722.1, который основан на Siren 7, является основанным на преобразовании звуковым кодеком широкого диапазона с режимом расширения на сверхширокий диапазон, называемым G.722.1C.G. 722.1C основан на Siren 14. ITU-T рекомендует для G.722.1 повторение кадра с последующим заглушением [ITU05, раздел 4.7]. Если декодеру сообщают, посредством внешнего механизма сигнализации, не определенного в данной рекомендации, что кадр потерян или поврежден, то он повторяет декодированные коэффициенты MLT (модулированного задержанного преобразования) предыдущего кадра. Он действует с помощью выполнения их преобразования во временную область и выполнения операции перекрытия с суммированием декодированной информации предыдущего и последующего кадров. Если предыдущий кадр был также потерян или поврежден, то декодер устанавливает все коэффициенты MLT текущего кадра в ноль.
Теперь рассматривают G.729. G.729 является алгоритмом сжатия звуковых данных для голоса, который сжимает цифровой голос в пакетах продолжительностью 10 миллисекунд. Это официально описано как кодирование речи со скоростью 8 кбит/сек, используя речевое кодирование с линейным предсказанием с кодовым возбуждением (CS-ACELP) [ITU12].
Как описано в [CPK08], G.729 рекомендует плавное изменение в области LP. Алгоритм PLC, используемый в стандарте G.729, восстанавливает речевой сигнал для текущего кадра, основываясь на принятой ранее речевой информации. Другими словами, алгоритм PLC заменяет недостающее возбуждение эквивалентной характеристикой ранее принятого кадра, хотя энергия возбуждения постепенно затухает в конечном счете, усиление адаптивной и фиксированной кодовых книг ослабляется с постоянным коэффициентом.
Ослабленное усиление фиксированной кодовой книги задают с помощью:
где m является индексом субкадра.
Усиление адаптивной кодовой книги основано на ослабленной версии предыдущего усиления адаптивной кодовой книги:
Nam in Park и др. предлагают для G.729 контроль за амплитудой сигнала, используя предсказание посредством линейной регрессии [CPK08, PKJ+11]. Оно адресовано потере пачки пакетов и использует линейную регрессию в качестве основной методики. Линейная регрессия основана на линейной модели следующим образом
где gi’ - вновь предсказанная текущая амплитуда, a и b- коэффициенты для линейной функции первого порядка, и i - индекс кадра. Чтобы найти оптимизированные коэффициенты a* и b*, суммирование квадратичной ошибки предсказания минимизируется:
ε - квадратичная ошибка, gj - оригинал предыдущей j-й амплитуды. Для минимизации этой ошибки производная, относящаяся к a и b, просто устанавливается в ноль. При использовании оптимизированных параметров a* и b* оценка каждого gi* обозначается с помощью
Фиг. 4 показывает предсказание амплитуды, в частности предсказание амплитуды gi*, при использовании линейной регрессии.
Для получения амплитуды Ai’ потерянного пакета i, отношение σi
умножают на коэффициент Si масштабирования:
причем коэффициент Si масштабирования зависит от количества последовательных маскируемых кадров l(i):
В [PKJ+11] предложено немного отличающееся масштабирование.
Согласно G.729, впоследствии Ai’ будет сглаживаться для предотвращения дискретного ослабления на границах кадра. Окончательная сглаженная амплитуда Ai(n) умножается на возбуждение, полученное из предыдущих компонент PLC.
В последующем рассматривают G.729.1. G.729.1 является основанным на G.729 внедренным кодером с переменной скоростью передачи битов: масштабируемым широкополосным кодером битового потока на 8-32 кбит/сек, совместимым с G.729 [ITU06b].
Согласно G.729.1, как в G.718 (см. выше), предложено адаптивное плавное изменение, которое зависит от стабильности характеристик сигнала ([ITU06b, раздел 7.6.1]). Во время маскирования сигнал обычно ослабляется, основываясь на коэффициенте ослабления, который зависит от параметров класса последнего хорошего принятого кадра и количества последовательно стертых кадров. Коэффициент ослабления дополнительно зависит от стабильности LP фильтров для «невокализованных» кадров. В общем случае ослабление является медленным, если последний хороший принятый кадр находится в устойчивом сегменте, и быстрым, если кадр находится в сегменте перехода.
К тому же коэффициент α ослабления зависит от среднего значения тонового усиления за субкадр ḡp ([ITU06b, eq. 163, 164]):
где gp(i) - тоновое усиление в субкадре i.
Таблица 2 показывает схему вычисления α, где
Во время процесса маскирования α используется в следующих средствах маскирования:
Последний хороший принятый кадр | Количество последовательных стертых кадров | α |
Вокализованный | 12,3>3 | βḡp0,4 |
Вступление | 12,3>3 | 0,8βḡp0,4 |
Искусственное вступление | 12,3>3 | 0,6βḡp0,4 |
Вокализованный переход | ≤2>2 | 0,80,2 |
Невокализованный переход | 0,88 | |
Невокализованный | 12,3>3 | 0,950,6θ+0,40,4 |
Таблица 2: Значения коэффициента ослабления α, значение θ является коэффициентом стабильности, вычисляемым из измерения расстояния между смежными фильтрами LP. [ITU06b, раздел 7.6.1].
Согласно G.729.1, относительно повторной синхронизации глоттального импульса, поскольку последний импульс возбуждения предыдущего кадра используется для создания периодической части, ее усиление является приблизительно правильным в начале маскируемого кадра и может устанавливаться в 1. Усиление затем линейно ослабляется по всему кадру на основе «выборка за выборкой» для достижения значения α в конце кадра. Формирование энергии вокализованных сегментов экстраполируется при использовании значений усиления тонального возбуждения каждого субкадра последнего хорошего кадра. В общем случае, если эти усиления больше 1, то энергия сигнала увеличивается, если они ниже 1, то энергия уменьшается. α таким образом устанавливается в β=, как описано выше, см. [ITU06b, eq. 163, 164]. Значение β обрезается между 0,98 и 0,85, чтобы избежать сильных увеличений и уменьшений энергии, см. [ITU06b, раздел 7.6.4].
Рассматривая создание случайной части возбуждения, согласно G.729.1 в начале стертого блока инновационное усиление gs инициализируется при использовании инновационного усиления возбуждения каждого субкадра последнего хорошего кадра:
причем g(0), g(1), g(2) и g(3) являются усилениями фиксированной кодовой книги, или инновационными усилениями, четырех субкадров последнего правильно принятого кадра. Ослабление инновационного усиления выполняется следующим образом:
причем gs(1) является инновационным усилением в начале следующего кадра, gs(0) является инновационным усилением в начале текущего кадра, и α является тем, что определено выше в таблице 2. Аналогично периодическому ослаблению возбуждения, усиление таким образом линейно ослабляется по всему кадру на основе «выборка за выборкой», начиная с gs(0) и доходя до значения gs(1) , которое будет достигнуто в начале следующего кадра.
Соответственно, для G.729.1, если последний хороший кадр является «невокализованным», то используется только инновационное возбуждение, и оно дополнительно ослабляется с коэффициентом 0,8. В этом случае предыдущий буфер возбуждения обновляется инновационным возбуждением, поскольку периодическая часть возбуждения не доступна, см. [ITU06b, раздел 7.6.6].
В последующем рассматривают AMR. 3GPP AMR [3GP12b] является кодеком для разговорных сигналов, использующим алгоритм ACELP. AMR имеет возможность кодировать речь с частотой дискретизации 8000 выборок в секунду и скоростью передачи битов между 4,75 и 12,2 кбит/сек и поддерживает сигнализацию кадров описания тишины (DTX/CNG).
В AMR, во время маскирования ошибок (см. [3GP12a]), различают между собой кадры, которые подвергаются ошибкам (битовым ошибкам), и кадры, которые полностью потеряны (вообще нет данных).
Для маскирования ACELP AMR представляет конечный автомат, который оценивает качество канала: чем больше значение счетчика состояний, тем хуже качество канала. Система начинает работу в состоянии 0. Каждый раз, когда обнаруживается плохой кадр, счетчик состояний увеличивается на единицу и насыщается, когда он достигает 6. Каждый раз, когда обнаруживается хороший речевой кадр, счетчик состояний возвращается в ноль, кроме тех случаев, когда состояние равно 6, в этом случае счетчик состояний устанавливается в 5. Поток команд управления конечным автоматом может описываться с помощью следующего C-кода (BFI-индикатор плохого кадра, State - переменная состояния):
if(BFI !=0) {
State = State + 1;
}
else if(State == 6) {
State = 5;
}
else {
State = 0;
}
if(State>6 ) {
State = 6;
}
В дополнение к этому конечному автомату, в AMR проверяются флажки плохого кадра из текущего и предыдущего кадров (prevBFI).
Возможны три различные комбинации:
Первая из этих трех комбинаций - BFI=0, prevBFI=0, состояние = 0: ошибки не обнаружены в принятом или в предыдущем принятом речевом кадре. Принятые речевые параметры используются обычным способом при синтезе речи. Текущий кадр речевых параметров сохраняется.
Вторая из этих трех комбинаций - BFI=0, prevBFI=1, состояние = 0 или 5: ошибки не обнаружены в принятом речевом кадре, но предыдущий принятый речевой кадр был плохим. Усиление LTP и усиление фиксированной кодовой книги ограничиваются ниже значений, используемых для последнего принятого хорошего субкадра:
где gp = текущее декодированное усиление LTP, gp (-1)= усиление LTP, используемое для последнего хорошего субкадра (BFI=0), и
где gc=текущее декодированное усиление фиксированной кодовой книги, и gc (-1)=усиление фиксированной кодовой книги, используемое для последнего хорошего субкадра (BFI=0).
Остальная часть принятых речевых параметров обычно используется при синтезе речи. Текущий кадр речевых параметров сохраняется.
Третья из этих трех комбинаций - BFI=1, prevBFI=0 или 1, состояние = 1... 6: ошибка обнаружена в принятом речевом кадре, и начинается процедура замены и заглушения. Усиление LTP и усиление фиксированной кодовой книги заменяются ослабленными значениями из предыдущих субкадров:
где gp обозначает текущее декодированное усиление LTP и gp(-1),..., gp(-n) обозначают усиление LTP, используемое для последних n субкадров, и median5() обозначает операцию усреднения по 5 точкам и
P(state) = коэффициент ослабления,
где (P(1)=0,98, P(2)=0,98, P(3)=0,8, P(4)=0,3, P(5)=0,2, P(6)=0,2) и state = количество состояний, и
где gc обозначает текущее декодированное усиление фиксированной кодовой книги и gc(-1), ..., gc(-n) обозначают усиление фиксированной кодовой книги, используемое для последних n субкадров, и median5() обозначает операцию усреднения по 5 точкам и C(state)=коэффициент ослабления, где (C(1)=0,98, C(2)=0,98, C(3)=0,98, C(4)=0,98, C(5)=0,98, C(6)=0,7) и state = количество состояний.
В AMR значения LTP-отставания (LTP=долгосрочное предсказание) заменяются предыдущим значением из 4-го субкадра предыдущего кадра (режим 12,2) или немного модифицированными значениями, основываясь на последнем правильно принятом значении (все другие режимы).
Согласно AMR, принятые импульсы инновационной фиксированной кодовой книги из ошибочного кадра используются в том состоянии, в котором они были приняты, когда принимаются поврежденные данные. В случае, когда никакие данные не были приняты, должны использоваться случайные индексы фиксированной кодовой книги.
Рассматривая CNG в AMR, согласно [3GP12a, раздел 6.4] каждый первый потерянный кадр SID заменяют при использовании информации SID из ранее принятых действительных кадров SID, и данная процедура применяется для действительных кадров SID. Для последующих потерянных кадров SID методика ослабления применяется к комфортному шуму, уровень которого будет плавно изменяться на выходе. Поэтому проверяется, выполняется или нет условие, что последнее обновление SID больше 50 кадров (=1 с) назад, если да, то выходной сигнал будет заглушаться (ослабление уровня -6/8 дБ за кадр [3GP12d, dtx_dec{}@sp_dec.c], что приводит к 37,5 дБ в секунду). Следует отметить, что плавное изменение, относящееся к CNG, выполняется в области LP.
В последующем рассматривают AMR-WB. Адаптивное кодирование с переменной скоростью - WB [ITU03, 3GP09c] является кодеком для разговорных сигналов ACELP, основанным на AMR (см. раздел 1.8). Он использует параметрическое расширение полосы пропускания и также поддерживает DTX/CNG. В описании стандарта [3GP12g] приведены примерные решения маскирования, которые являются такими же, как для AMR [3GP12a] с незначительными отклонениями. Поэтому, только различия с AMR описаны в данной работе. Для описания стандарта см. приведенное выше описание.
Рассматривая ACELP, в AMR-WB плавное изменение ACELP выполняется, основываясь на эталонном исходном коде [3GP12c] с помощью модификации тонового усиления gp (для вышеприведенного AMR называется усилением LTP), и с помощью модификации кодового усиления gp.
В случае потерянного кадра тоновое усиление gp для первого субкадра является тем же самым, как в последнем хорошем кадре, за исключением того, что оно ограничено между 0,95 и 0,5. Для второго, третьего и последующих субкадров тоновое усиления gp уменьшается с коэффициентом 0,95 и снова ограничивается.
AMR-WB предлагает, чтобы в маскируемом кадре gc было основано на последнем gc:
Для маскирования LTP-отставания в AMR-WB хронология пяти прошлых хороших LTP-отставаний и LTP-усилений используется для поиска наилучшего способа обновления в случае потери кадра. В случае, если кадр принимается с ошибками в символе, выполняется предсказание, пригодно или нет принятое отставание LTP для использования [3GP12g].
Рассматривая CNG, в AMR-WB, если последним правильно принятым кадром был кадр SID и кадр классифицирован как потерянный, то он должен быть заменен информацией последнего действительного кадра SID и должна применяться процедура для действительных кадров SID.
Для последовательно потерянных кадров SID AMR-WB предлагает применять методику ослабления к комфортному шуму, которая будет постепенно уменьшать уровень на выходе. Поэтому проверяется, выполняется или нет условие, что последнее обновление SID было больше чем 50 кадров (=1 с) назад, если да, то выходной сигнал будет заглушаться (ослабление уровня -3/8 дБ за кадр [3GP12f, dtx_dec {} @dtx.c], что приводит к 18,75 дБ в секунду). Следует отметить, что плавное изменение, относящееся к CNG, выполняется в области LP.
Теперь рассматривают AMR-WB+. Адаптивное кодирование с переменной скоростью - WB+[3GP09a] является переключаемым кодеком, использующим ACELP и TCX (TCX=преобразование кодированного возбуждения) в качестве основных кодеков. Он использует параметрическое расширение полосы пропускания и также поддерживает DTX/CNG.
В AMR-WB+применяется логика экстраполяции режима для экстраполяции режимов потерянных кадров в пределах искаженного суперкадра. Эта экстраполяция режима основана на том факте, что существует избыточность в определении индикаторов режима. Логика решения (заданная в [3GP09a, фиг. 18]), предложенная AMR-WB+, является следующей:
- Определяется векторный режим (m−1, m0, m1, m2, m3), где m−1 указывает режим последнего кадра предыдущего суперкадра и m0, m1, m2, m3, указывают режимы кадров в текущем суперкадре (декодированном из битового потока), где mk = -1, 0, 1, 2 или 3 (-1: потерянный, 0: ACELP, 1: TCX20, 2: TCX40, 3: TCX80), и где количество потерянных кадров nloss может быть между 0 и 4.
- Если m−1 =3 и два из индикаторов режима кадров 0-3 будут равны трем, то все индикаторы будут установлены в три, потому что наверняка, что один кадр TCX80 указан в пределах суперкадра.
- Если только один индикатор кадров 0-3 равен трем (и количество потерянных кадров nloss равно трем), то режим будет установлен в (1, 1, 1, 1), потому что в таком случае 3/4 целевого спектра TCX80 потеряно, и вероятно, что глобальное усиление TCX потеряно.
- Если режим укажет (x, 2, -1, x, x) или (x, -1, 2, x, x), то он будет экстраполироваться к (x, 2, 2, x, x), указывая кадр TCX40. Если режим укажет (x, x, x, 2, -1) или (x, x, -1, 2), то он будет экстраполироваться к (x, x, x, 2, 2), также указывая кадр TCX40. Нужно отметить, что (x, [0, 1], 2. 2, [0, 1]) являются недействительными конфигурациями.
- После этого для каждого кадра, который потерян (режим = -1), режим устанавливается в ACELP (режим=0), если предыдущим кадром был ACELP, и режим устанавливается в TCX20 (режим=1) для всех других случаев.
Рассматривая ACELP, согласно AMR-WB+, если режим потерянных кадров приводит к mk=0 после экстраполяции режима, тот же самый подход как в [3GP12g] применяется для этого кадра (см. выше).
В AMR-WB+, в зависимости от количества потерянных кадров и экстраполируемого режима, соотнесенные подходы маскирования следующего TCX отличаются (TCX=преобразование кодированного возбуждения):
- Если весь кадр потерян, то применяется аналогичное ACELP маскирование: последнее возбуждение повторяется и маскируемые коэффициенты ISF (немного сдвинутые к их адаптивному среднему значению) используются для синтеза сигнала во временной области. Дополнительно, коэффициент плавного изменения, равный 0,7 за кадр (20 мс) [3GP09b, dec_tcx.c], умножается в области линейного предсказания непосредственно перед синтезом LPC (кодирования с линейным предсказанием).
- Если последним режимом был TCX80, а также режимом экстраполируемого (частично потерянного) суперкадра является TCX80 (nloss=[1, 2], режим=(3, 3, 3, 3, 3)), то маскирование выполняется в области FFT, используя экстраполяцию фазы и амплитуды, учитывая последний правильно принятый кадр. Подход экстраполяции информации фазы не имеет никакого интереса в данной работе (никакого отношения к стратегии плавного изменения) и поэтому не описан. Для дополнительных подробностей см. [3GP09a, раздел 6.5.1.2.4]. По отношению к модификации амплитуды A-WB+, подход, выполняемый для маскирования TCX, состоит из следующих этапов [3GP09a, раздел 6.5.1.2.3]:
- Вычисляется спектр значения предыдущего кадра:
- Вычисляется спектр значения текущего кадра:
- Вычисляется разница усиления энергии непотерянных спектральных коэффициентов между предыдущим и текущим кадром:
- Экстраполируется амплитуда недостающих спектральных коэффициентов, используя:
- В любом другом случае потерянного кадра с mk=[2, 3], целевой TCX (обратное FFT декодированного спектра плюс заполнение шумом (используя уровень шума, декодированный из битового потока)) синтезируется, используя всю доступную информацию (включающую в себя глобальное усиление TCX). Плавное изменение в этом случае не применяется.
Рассматривая CNG, в AMR-WB+ используется тот же самый подход, как в AMR-WB (см. выше).
В последующем рассматривают OPUS. OPUS [IET12] внедряет технологию из двух кодеков: ориентированного на речь SILK (известного как кодек Skype) и с низким временем ожидания CELT (CELT=перекрывающееся преобразование с ограниченной энергией). OPUS может беспроблемно адаптироваться между высокой и низкой скоростями передачи битов, и внутренне он переключается между кодеком линейного предсказания в более низкими скоростями передачи битов (SILK) и кодеком преобразования в более высокими скоростями передачи битов (CELT), так же как гибрид для короткого перекрытия.
Рассматривая сжатие и распаковку звуковых данных SILK, в OPUS существует несколько параметров, которые ослабляются во время маскирования в подпрограмме декодера SILK. Параметр усиления LTP ослабляется с помощью умножения всех коэффициентов LPC или на 0,99, 0,95 или на 0,90 за кадр, в зависимости от количества последовательных потерянных кадров, причем возбуждение создается с помощью использования последнего цикла тонов из возбуждения предыдущего кадра. Параметр отставания тона очень медленно увеличивается во время последовательных потерь. Для одиночных потерь он сохраняется постоянным по сравнению с последним кадром. Кроме того, параметр усиления возбуждения по экспоненте уменьшается с 0,99lostcnt за кадр, так, чтобы параметр усиления возбуждения был равен 0,99 для первого параметра усиления возбуждения, так, чтобы параметр усиления возбуждения был равен 0,992 для второго параметра усиления возбуждения, и так далее. Возбуждение генерируется, используя генератор случайных чисел, который генерирует белый шум с помощью переменного переполнения. Кроме того, коэффициенты LPC экстраполируются/усредняются, основываясь на последнем правильно принятом наборе коэффициентов. После генерации ослабленного вектора возбуждения маскируемые коэффициенты LPC используются в OPUS для синтеза выходного сигнала во временной области.
Теперь рассматривают CELT в контексте OPUS. CELT является основанным на преобразовании кодеком. Маскирование CELT показывает подход PLC, основанного на тоне, который применяется к до пяти последовательно потерянных кадров. Начиная с 6-го кадра применяется подход шумоподобного маскирования, который генерирует фоновый шум, характеристики которого, как предполагается, звучат как предшествующий фоновый шум.
Фиг. 5 показывает режим работы CELT при потере пачки. В частности, фиг. 5 изображает спектрограмму (ось X: время; ось у: частота) маскируемого с помощью CELT речевого сегмента. Светло-серый квадрат указывает первые 5 последовательно потерянных кадров, где применяется основанный на тоне подход PLC. Кроме того, показано шумоподобное маскирование. Нужно отметить, что переключение выполняется немедленно, переход не происходит постепенно.
Рассматривая маскирование на основе тона, в OPUS маскирование на основе тона состоит из обнаружения периодичности в декодированном сигнале с помощью автокорреляции и повторения кадрированного колебательного сигнала (в области возбуждения, используя анализ и синтез LPC), используя смещение тона (отставание тона). Кадрированный колебательный сигнал перекрывается таким образом, чтобы сохранить маскирование наложения спектров во временной области с предыдущим кадром и следующим кадром [IET12]. Дополнительно коэффициент плавного изменения извлекается и применяется с помощью следующего кода:
opus_val32 E1=1, E2=1;
int period;
if (pitch_index <= MAX_PERIOD/2) {
period = pitch_index;
}
else {
period=MAX_PERIOD/2;
}
for (i=0;i<period;i++)
{
E1 += exc[MAX_PERIOD- period+i]* exc[MAX_PERIOD- period+i];
E2+=exc[MAX_PERIOD-2*period+i]* exc[MAX_PERIOD-2*period+i];
}
if (E1>E2) {
E1=E2;
}
decay = sqrt(E1/E2));
attenuation = decay;
В этом коде exc содержит сигнал возбуждения до выборок MAX_PERIOD перед потерей.
Сигнал возбуждения позже умножается на ослабление, затем синтезируется и выводится через синтез LPC.
Алгоритм плавного изменения для подхода во временной области может быть получен в итоге в таком виде:
- Находят равновесную энергию тона последнего цикла тонов перед потерей.
- Находят равновесную энергию тона второго последнего цикла тонов перед потерей.
- Если энергия увеличивается, то ее ограничивают так,