Настоящее изобретение относится к обработке сигнала звуковой частоты для его передачи или хранения. В частности, изобретение относится к изменению частоты дискретизации при кодировании или декодировании сигнала звуковой частоты.
Существует множество методик сжатия (с потерями) сигнала звуковой частоты, такого, как речевой или музыкальный сигнал. Кодирование можно выполнять непосредственно на частоте дискретизации входного сигнала, как, например, в рекомендациях ITU-T G.711 или G.729, в которых входной сигнал дискретизирован при 8 кГц, а кодер и декодер действуют на этой же частоте.
Однако некоторые способы кодирования используют изменение частоты дискретизации, например, для уменьшения сложности кодирования, для адаптации кодирования в соответствии с разными подполосами частот, подлежащими кодированию, или для преобразования входного сигнала с целью его соответствия предварительно определенной внутренней частоте дискретизации кодера.
При кодировании подполос, определенном в рекомендации ITU-T G.722, входной сигнал при 16 кГц разделяют на две подполосы (дискретизированные при 8 кГц), кодируемые по отдельности кодером, относящимся к типу ADPCM (адаптивная дифференциальная импульсно-кодовая модуляция). Такое разделение на две подполосы осуществляют посредством блока зеркальных фильтров в квадратурном режиме с импульсной характеристикой конечной длительности (FIR) порядка 23, что теоретически в результате приводит к задержке анализа-синтеза (кодер+декодер) в 23 дискретных значения за 16 мс; этот блок фильтров реализуют в многофазной реализации. Разделение на две подполосы в G.722 делает возможным распределение этим двум подполосам различных битовых скоростей передачи данных предварительно определенным образом в зависимости от их предположительной важности для восприятия, а также уменьшает общую сложность кодирования путем исполнения двух кодеров ADPCM-типа с менее высокой частотой. Однако это вызывает алгоритмическую задержку по сравнению с прямым кодированием ADPCM.
Известны различные способы изменения частоты дискретизации, также называемого передискретизацией, цифрового сигнала путем использования, в качестве примера и неисчерпывающим образом, фильтра FIR (с импульсной характеристикой конечной длительности), фильтра IIR (с импульсной характеристикой бесконечной длительности) или полиномиальной интерполяции (в том числе сплайнов). Обзор традиционных способов передискретизации можно найти, например, в статье R.W. Schafer, L.R. Rabiner, A Digital Signal Processing Approach to Interpolation, Proceedings of the IEEE, vol. 61, no. 6, June 1973, pp. 692-702.
Преимущество (симметричного) фильтра FIR заключается в его упрощенной реализации и, при определенных условиях, в возможности обеспечения линейной фазовой характеристики. Линейно-фазовая фильтрация делает возможным сохранение формы волны входного сигнала, но она также сопровождается временным растягиванием (или звоном), способным создавать артефакты, относящиеся к типу опережающего эха, при переходных процессах. Этот способ в результате приводит к задержке (зависящей от длительности импульсной характеристики), обычно порядка от 1 мс до нескольких мс, для обеспечения должных характеристик фильтрации (неравномерности амплитудно-частотной характеристики в полосе пропускания, уровня подавления, достаточного для исключения эффекта наложения спектров или спектральных изображений…).
Альтернативная передискретизация посредством фильтра IIR обычно приводит к нелинейной фазовой характеристике, если фаза не компенсирована посредством дополнительной ступени фазового фильтра, как описано, например, в статье P.A. Regalia, S.K. Mitra, P.P. Vaidyanathan, The Digital All-Pass Filter: A Versatile Signal Processing Building Block, Proceedings of the IEEE, vol. 76, no. 1, Jan. 1988, с примерной реализацией в подпрограмме «iirgrpdelay» программного обеспечения MATLAB; фильтр IIR обычно имеет менее высокий порядок, и его сложнее реализовать в представлении с фиксированной запятой, состояния (или блоки памяти) фильтра способны достигать высоких динамических значений для рекуррентной части, и эта проблема усиливается при использовании фазовой компенсации посредством фазовой фильтрации.
На фиг. 1 изображен один из примеров понижающей дискретизации с коэффициентом 4/5 посредством фильтра FIR длиной 2×60+1=121 коэффициент при 64 кГц для изменения от 16 кГц до 12,8 кГц. Оси х отображают время (приведенное в мс для представления сигналов, синхронизированных на разных частотах), а оси y - амплитуды. Квадраты в верхней части представляют временные положения дискретных значений входного сигнала при 16 кГц; здесь предполагается, что эти дискретные значения соответствуют концу кадра длительностью 20 мс. Сплошные вертикальные линии отмечают соответствующие моменты выборки при 16 кГц. В нижней части фигуры пунктирные вертикальные линии отмечают соответствующие моменты выборки при 12,8 кГц, а звезды символизируют выходные дискретные значения при 12,8 кГц. Также представлена (симметричная) импульсная характеристика из 121 коэффициента для фильтра FIR при 64 кГц; эта характеристика расположена для вычисления последнего дискретного значения текущего кадра при 12,8 кГц (положение максимума импульсной характеристики совмещено с этим дискретным значением). Круги показывают использованные значения (соответствующие моменту выборки входного сигнала) в многофазном представлении; для получения выходного дискретного значения эти значения умножают на соответствующее входное дискретное значение, и эти результаты складывают. Следует отметить, что на этой фигуре при 12,8 кГц нельзя точно вычислить 12 дискретных значений (вплоть до конца входного кадра), так как входные дискретные значения после окончания текущего кадра (начала следующего кадра) еще не известны; задержка дискретизации в условиях фиг. 1 составляет 12 дискретных значений, т.е. 12/12,8=0,9375 мс.
Существуют методики уменьшения задержки, вносимой изменениями частоты дискретизации FIR-типа.
В стандарте 3GPP AMR-WB (также определенном как рекомендация ITU-T G.722.2) входной сигнал, дискретизированный при 16 кГц, подвергают понижающей дискретизации до внутренней частоты 12,8 кГц перед применением кодирования CELP-типа; сигнал, декодированный при 12,8 кГц, затем подвергают передискретизации до 16 кГц и объединяют с сигналом высокочастотного диапазона.
Преимущество прохождения через промежуточную частоту 12,8 кГц заключается в том, что это делает возможным уменьшение сложности кодирования CELP, а также получение длительности кадра, кратной степени числа 2, что облегчает кодирование некоторых параметров CELP. Используемый способ представляет собой традиционную передискретизацию с коэффициентом 4/5 посредством фильтра FIR (со 121 коэффициентом при 64 кГц) в многофазной реализации для сведения сложности к минимуму.
В теории такая передискретизация в кодере и декодере AMR-WB должна в результате приводить к задержке способом, аналогичным обработке, представленной на фиг. 1. В случае кодека AMR-WB с фильтром FIR со 121 коэффициентом суммарная задержка теоретически должна составлять 2×60 дискретных значений при 64 кГц, т.е. 2×15 дискретных значений при 16 кГц, или 1,875 мс; в сущности, в кодере AMR-WB реализуют специальную методику исключения (компенсации) связанной задержки только в части кодера, и, таким образом, делят фактическую задержку на 2.
Данный способ компенсации описан в стандарте 3GPP TS 26.190, пункт 5.1 и в рекомендации ITU-T G.722.2, пункт 5.1. Способ компенсации задержки фильтрации FIR состоит в добавлении к каждому новому кадру, дискретизированному при 16 кГц и подлежащему преобразованию к 12,8 кГц, предварительно определенного количества нулей в конце текущего кадра. Эти нули ограничены входной частотой дискретизации, а их количество соответствует задержке передискретизации фильтра FIR при этой частоте (т.е. при 16 кГц добавляют 15 нулей). Передискретизацию реализуют для кадра длительностью 20 мс (320 дискретных значений). Поэтому передискретизация в кодере AMR-WB является эквивалентной дополнению входного кадра из 320 дискретных значений слева (в направлении прошлого) 30 дискретными значениями от конца предыдущего кадра (память передискретизации) и справа - 15 нулями для формирования вектора из 30+320+15=365 дискретных значений, которые затем подвергают передискретизации с коэффициентом 4/5. Поэтому фильтр FIR можно, таким образом, реализовать с нулевой фазой без задержки, так как добавляется нулевой будущий сигнал. В теории передискретизацию FIR с коэффициентом 4/5 выполняют в соответствии со следующими этапами:
- повышающая дискретизация в 4 раза (от 16 кГц до 64 кГц) путем добавления 3 дискретных значений с 0 после каждого входного дискретного значения;
- низкочастотная фильтрация передаточной функции Hdecim(z) симметричного FIR-типа порядка 120 при 64 кГц;
- понижающая дискретизация в 5 раз (от 64 кГц до 12,8 кГц) путем сохранения для сигнала, подвергнутого низкочастотной фильтрации, только одного дискретного значения из пяти.
На практике передискретизацию реализуют эквивалентным образом в соответствии с оптимизированной многофазной реализацией без вычисления промежуточного сигнала при 64 кГц и без сцепления сигнала, подлежащего преобразованию, посредством нулей (см. файл «decim54.c» исходного кода кодека AMR-WB); фильтрация FIR для каждой «фазы» эквивалентна фильтру FIR порядка 24 при 12,8 кГц с задержкой в 12 дискретных значений, т.е. 0,9375 мс, при 12,8 кГц.
Результат передискретизации FIR каждого кадра длительностью 20 мс от 16 кГц до 12,8 кГц идентичен передискретизации, сформированной на «полном» (т.е. не разрезанном на кадры) входном сигнале за исключением последних 12 дискретных значений каждого результирующего кадра при 12,8 кГц, содержащих ошибку из-за использования в качестве будущего сигнала блока нулей вместо «истинного» будущего сигнала, доступного только в следующем кадре. Фактически, вводимые нули моделируют случай нулевого входного сигнала в следующем кадре.
Эта обработка в конце кадра длительностью 20 мс изображена на фиг. 2, представляющего последние входные значения при 16 кГц квадратами в верхней части; вертикальные линии отмечают соответствующие моменты выборки при 16 кГц. В нижней части фигуры звезды символизируют выходные дискретные значения при 12,8 кГц, которые можно получить путем традиционной передискретизации с задержкой в 12 дискретных значений. Тогда треугольники в нижней части соответствуют 12 дискретным значениям при 12,8 кГц, полученным путем использования по меньшей мере одного дискретного значения с нулевым значением, добавляемого в конце кадра, для того чтобы иметь возможность продолжить фильтрацию и уменьшить задержку. Эти дискретные значения пронумерованы от №1 до №12 в соответствии с их положением относительно конца вывода, получаемого посредством традиционной фильтрации. Также представлена импульсная характеристика фильтра при 64 кГц, используемого в положении, соответствующем последнему выходному дискретному значению при 12,8 кГц (максимум этой импульсной характеристики совпадает с данным дискретным значением). Круги показывают значения (соответствующие моменту выборки входного сигнала), используемые в многофазном представлении; для получения выходного дискретного значения эти значения умножают на соответствующее входное дискретное значение или на 0 - для значений после окончания кадра, и эти результаты складывают друг с другом. Как видно, для этого последнего значения почти половина дискретных значений, использованных из импульсной характеристики, умножены на добавочные нули, что, таким образом, вносит значительную ошибку оценки. Также, следует понимать, что ошибка первых дискретных значений, сгенерированных после традиционной фильтрации (то есть исходя только из истинного входного сигнала), является небольшой (вес импульсной характеристики на ее концах является низким), и ошибка становится больше по мере увеличения расстояния от традиционной фильтрации (тогда вес импульсной характеристики является бóльшим). Это можно наблюдать в результатах по фиг. 7.
Способ компенсации задержки, используемый в кодеке AMR-WB, где в конце каждого блока длительностью 20 мс (или кадра), подлежащего передискретизации, добавляют нули, делает возможным исключение задержки передискретизации в кодере, но обычно не является удовлетворительным, когда значения, генерируемые в конце текущего кадра (с нулями, добавленными на вводе), кодируют непосредственно и не заменяют истинными значениями, как только входной сигнал из следующего кадра станет известен. Фактически, эти регулярные ошибки в конце каждого кадра порождают периодические разрывы при переходе к истинному выходному сигналу в начале следующего кадра. Эти разрывы часто являются слышимыми и весьма неприятными. Поэтому компенсацию задержки применяют только в кодере и только в части будущего сигнала, называемой просмотром вперед, а не в декодере AMR-WB.
Фактически, в кодере AMR-WB каждый новый входной кадр длительностью 20 мс при 16 кГц соответствует временному отрезку, соответствующему последним 15 мс текущего кадра, подлежащего кодированию посредством модели ACELP, и 5 мс будущего сигнала (или просмотра вперед). Первые 5 мс текущего кадра, подлежащего кодированию, уже были приняты и сохранены как «просмотр вперед» предыдущего отрезка. Поэтому последние 12 дискретных значений, полученных после передискретизации от 16 кГц до 12,8 кГц в кодере, соответствуют последним дискретным значениям 5 мс будущего сигнала при 12,8 кГц. Следовательно, текущий кадр длительностью 20 мс при 12,8 кГц (т.е. 256 дискретных значений) и 5 мс будущего сигнала (т.е. 64 дискретных значений) дополнены 5 мс прошлого первоначального сигнала (возвратная петля) для формирования буфера анализа LPC из 384 дискретных значений (30 мс), взвешенного по окну анализа LPC той же длины.
Последние 12 дискретных значений «просмотра вперед» при 12,8 кГц, содержащие ошибку передискретизации, имеют очень низкий относительный вес в окне, используемом для линейного предсказания (LPC), и они с большой вероятностью оказывают воздействие только на оценочную огибающую LPC, и это воздействие является чрезвычайно незначительным. Важно отметить, что 12 ошибочных дискретных значений заменяются «точными» дискретными значениями, подвергнутыми передискретизации, в следующем кадре, поэтому ошибка для будущего сигнала (просмотра вперед) присутствует в текущем кадре лишь временно и оказывает влияние только на анализ LPC. Таким образом, методика компенсации задержки кодера AMR-WB не оказывает влияния на кодирование в кодеке AMR-WB формы волны сигнала в текущем кадре. Этот режим здесь и далее будет именоваться «использование посредством кадра с будущим сигналом». Дискретные значения, генерируемые таким образом, используются лишь временно для промежуточных вычислений (анализа LPC) и заменяются правильно подвергнутыми передискретизации дискретными значениями тогда, когда становится известен сигнал из следующего кадра. Следует отметить, что в данной конфигурации для выходного кадра с длительностью lg_out для каждого кадра путем передискретизации генерируется lg_out +12 дискретных значений.
Данную методику компенсации задержки, используемую в кодере AMR-WB, в декодере AMR-WB не применяют.
Таким образом, кодек (кодер+декодер) имеет суммарную алгоритмическую задержку 25,9375 мс, вызванную кодером (кадр длительностью 20 мс+5 мс просмотра вперед) и передискретизацией в декодере (0,9375 мс).
Методику компенсации задержки в кодере AMR-WB нельзя использовать для уменьшения задержки фильтрации QMF кодека G.722, так как это сильно ухудшало бы качество кодированного сигнала. Фактически, в кодеке G.722 дискретные значения, являющиеся результатом фильтрации (сигналы низкочастотного и высокочастотного диапазонов) непосредственно составляют входные сигналы двух подкодеков ADPCM, действующих без «просмотра вперед» и не делающих возможным исправление этих значений от кадра к кадру. Данный режим будет здесь и далее именоваться «непрерывное покадровое использование».
Настоящее изобретение улучшает ситуацию, имеющуюся на известном уровне техники.
С этой целью предлагается способ передискретизации сигнала звуковой частоты при кодировании или декодировании этого сигнала звуковой частоты. Этот способ является таковым, что он включает для каждого блока сигнала, подлежащего передискретизации, следующие этапы:
- определение посредством адаптивного линейного предсказания некоторого количества дискретных значений будущего сигнала, причем это количество определяют в зависимости от выбранной задержки передискретизации;
- построение опорного вектора передискретизации, по меньшей мере, из дискретных значений текущего блока и определяемых дискретных значений будущего сигнала;
- применение фильтра с передискретизацией к дискретным значениям опорного вектора передискретизации.
Таким образом, передискретизация в соответствии с изобретением делает возможным уменьшение задержки передискретизации посредством фильтра (для каждого блока или для каждого кадра) и, в то же время, сохраняет уровень производительности, очень близкий к непрерывной передискретизации. Предсказание будущего сигнала в каждом блоке или кадре делает возможным получение дискретных значений, более близких к реальным дискретным значениям, чем если бы этим будущим дискретным значениям было присвоено нулевое значение. Поэтому производительность процесса передискретизации для этих последних дискретных значений является повышенной.
Способ передискретизации также является адаптивным, поскольку возможна адаптация количества дискретных значений будущего сигнала, подлежащих принятию во внимание, в зависимости от требуемой задержки. Тогда для передискретизации без задержки количество подлежащих определению дискретных значений будущего сигнала соответствует задержке фильтра с передискретизацией. Если допускается задержка ниже задержки фильтра, то количество дискретных значений будущего сигнала может соответствовать только части задержки фильтра с передискретизацией.
При адаптации задержки передискретизации, выполняемой для каждого блока, можно легко переключаться - от одного блока к другому или от одного кадра к другому - между различными конфигурациями передискретизации (содержащими для этой цели фильтр FIR) или переключаться от прямого кодирования данного кадра на некоторой частоте дискретизации к кодированию следующего кадра с передискретизацией и наоборот.
Различные частные варианты осуществления, упоминаемые в данном описании ниже, могут быть добавлены - независимо или в комбинации друг с другом - к этапам определенного выше способа передискретизации.
В одном простом варианте осуществления этап определения адаптивного линейного предсказания включает следующие этапы:
- получение коэффициентов фильтра с линейным предсказанием предварительно определенного порядка;
- получение дискретных значений будущего сигнала путем применения полученного фильтра с предсказанием к сигналу возбуждения с нулевым значением.
В одном из частных вариантов осуществления коэффициенты фильтра с линейным предсказанием получают, считывая параметры, сохраненные на этапе кодирования или декодирования.
Таким образом, если модуль кодирования независимо от устройства передискретизации содержит анализ LPC, уже определяющий параметры фильтра с предсказанием, то в повторном вычислении этих параметров в способе передискретизации нет необходимости. Достаточно просто считать параметры (квантованные или нет), которые были сохранены.
В другом варианте осуществления коэффициенты фильтра с линейным предсказанием получают путем анализа, по меньшей мере, из дискретных значений текущего блока.
Тогда анализ LPC осуществляют непосредственно в устройстве передискретизации.
В одном из примерных вариантов осуществления линейное предсказание выполняют на сигнале звуковой частоты, на котором была выполнена обработка предыскажения.
Предыскажение делает возможным обеспечение повышенной устойчивости сигнала в реализации представления с фиксированной запятой, в частности, для сигналов, имеющих сильную крутизну и спектральную динамику. Это уменьшает спектральную динамику сигнала, и, таким образом, распределение энергии сигнала по полосам частот после предыскажения становится более равномерным. Параметры моделирования после предыскажения обладают меньшей динамикой, поэтому легче обеспечить устойчивость системы, а также легче реализовать алгоритм, использующий эту модель, посредством арифметики в представлении с фиксированной запятой.
В возможных вариантах осуществления адаптивное линейное предсказание представляет собой предсказание по одному из следующих способов:
- краткосрочное линейное предсказание;
- долгосрочное линейное предсказание;
- комбинация краткосрочного линейного предсказания и долгосрочного линейного предсказания;
- процесс сокрытия стертого кадра.
Таким образом, для реализации способа можно использовать более или менее точное предсказание любого типа, в то же время, обеспечивая эффективность с точки зрения преимущественного отношения сигнал-шум.
Настоящее изобретение также нацелено на устройство для передискретизации сигнала звуковой частоты в кодере или декодере сигнала звуковой частоты. Это устройство является таковым, что оно содержит:
- модуль адаптивного линейного предсказания, пригодный для определения для каждого блока сигнала некоторого количества дискретных значений будущего сигнала, определяемых в зависимости от выбранной задержки передискретизации;
- модуль для построения опорного вектора передискретизации, по меньшей мере, из дискретных значений текущего блока и определяемых дискретных значений будущего сигнала;
- фильтр с передискретизацией, применяемый к дискретным значениям опорного вектора передискретизации.
Данное устройство предполагает такие же преимущества, как и описанный ранее способ, им реализуемый.
В одном из частных вариантов осуществления модуль адаптивного линейного предсказания действует совместно с модулем анализа предсказания, заключенным в модуле кодирования или декодирования с предсказанием кодера или декодера.
Таким образом, уменьшается сложность устройства передискретизации, поскольку во включении в него какого-либо модуля анализа LPC нет необходимости. Параметры, получаемые из модуля анализа модуля кодирования или декодирования, являются сохраненными при кодировании или декодировании и поэтому могут быть использованы при передискретизации.
Настоящее изобретение также нацелено на кодер и декодер сигнала звуковой частоты, содержащий, по меньшей мере, одно описанное устройство передискретизации.
В одном из частных вариантов осуществления, этот кодер или декодер содержит устройство передискретизации, использующее по меньшей мере два фильтра с передискретизацией, имеющие разные задержки, при этом по меньшей мере один из этих фильтров реализован в соответствии с ранее описанным способом, для которого определение количества дискретных значений будущего сигнала зависит от разности задержек этих двух используемых фильтров с передискретизацией.
Так как фильтры с передискретизацией часто связаны с разными режимами кодирования, этот вариант осуществления делает возможным простое переключение от одного режима кодирования к другому без каких-либо слышимых артефактов.
Изобретение нацелено на компьютерную программу, содержащую команды кода для реализации описанных этапов способа передискретизации, когда эти команды исполняются процессором.
Наконец, изобретение относится к читаемому процессором носителю данных, встроенному или не встроенному в устройство передискретизации, возможно, съемному, хранящему в памяти компьютерную программу, реализующую ранее описанный способ передискретизации.
Другие характерные признаки и преимущества изобретения станут более понятны при прочтении нижеследующего описания, данного исключительно в качестве неограничивающего примера, со ссылкой на приложенные графические материалы, в которых:
- на фиг. 1 изображена импульсная характеристика фильтра с передискретизацией в ранее описанном способе на известном уровне техники;
- на фиг. 2 изображена импульсная характеристика фильтра с передискретизацией в ранее описанном способе на известном уровне техники с компенсацией задержки нулями;
- на фиг. 3 изображен один из примеров кодера звукового сигнала, содержащий устройство передискретизации в соответствии с одним из вариантов осуществления изобретения;
- на фиг. 4а в форме схемы последовательности операций изображены этапы способа передискретизации в соответствии с одним из вариантов осуществления изобретения;
- на фиг. 4b в форме схемы последовательности операций изображены этапы одного из вариантов осуществления способа передискретизации в соответствии с изобретением;
- на фиг. 5а в форме схемы последовательности операций изображены подробности этапа определения коэффициента предыскажения в соответствии с одним из вариантов осуществления изобретения;
- на фиг. 5b в форме схемы последовательности операций изображены подробности этапа линейного предсказания в соответствии с одним из вариантов осуществления изобретения;
- на фиг. 6 изображена форма окна анализа, используемого в одном из вариантов осуществления изобретения;
- на фиг. 7а-7l для разных положений дискретного значения, следующих за текущим кадром сигнала, подлежащим передискретизации, изображено сравнение отношения сигнал-шум в зависимости от центральной частоты, полученной путем применения к испытательному сигналу способа передискретизации на известном уровне техники, реализованного в кодере AMR-WB, и способа передискретизации в соответствии с первым и вторым вариантами осуществления изобретения;
- на фиг. 8а-8с для разных положений дискретного значения, следующих за текущим кадром сигнала, подлежащим передискретизации, изображено сравнение отношения сигнал шум для трех разных случаев изменения частот передискретизации в соответствии со способом передискретизации на известном уровне техники, реализованным в кодере AMR-WB, и со способом передискретизации в соответствии с первым и вторым вариантами осуществления изобретения; и
- на фиг. 9 изображен один из примеров декодера звукового сигнала, содержащего устройство передискретизации в соответствии с одним из вариантов осуществления изобретения;
- на фиг. 10 изображено физическое представление устройства передискретизации в соответствии с одним из вариантов осуществления изобретения.
На фиг. 3 изображен один из примеров аудиокодера, содержащего устройство 300 передискретизации в соответствии с одним из вариантов осуществления изобретения.
Изображенный здесь кодек представляет собой кодер (монофонических) звуковых сигналов с несколькими битовыми скоростями передачи данных (с битовыми скоростями передачи данных от 7,2 кбит/с до 128 кбит/с), действующий на входной и выходной частотах дискретизации 8, 16, 32 или 48 кГц. В первую очередь интерес сосредоточен на части кодера, представленной на фиг. 3, а связанный декодер описывается позднее в связи с фиг. 9.
Входной сигнал разделяют на кадры длительностью 20 мс (блок 310), каждый кадр может кодироваться либо в соответствии с подходом временной области (TD) типа CELP (309), либо в соответствии с подходом частотной области (FD) типа MDCT (блок 312) перед уплотнением в модуле 313 уплотнения. В данном документе считается, что кодирования CELP и MDCT-типа известны специалистам в данной области техники. Выбор режима (блок 311), включающий таковой для внутренней частоты кодирования, здесь подробно не рассматривается.
В данном кодеке, являющемся гибким в выражении битовых скоростей передачи данных и частот дискретизации, необходимо некоторое количество конфигураций передискретизации частоты «fIn» («In» - от «ввод») в частоту «fOut» («Out» -от «вывод»). Конфигурации, используемые в описываемом здесь варианте осуществления, перечислены ниже в таблице 1.
Таблица 1
(fIn-> fOut)
В данной таблице значения частоты, выделенные жирным, указывают «внешние» частоты (то есть входные и/или выходные частоты) кодека, а остальные значения частоты представляют собой «внутренние» частоты дискретизации для кодирования низкочастотного диапазона сигнала способом, аналогичным кодированию AMR-WB, имеющему только одну внешнюю частоту 16 кГц и одну внутреннюю частоту 12,8 кГц. «filt_lenin» представляет длину фильтра, «fac_num» представляет коэффициент повышающей дискретизации, а «fac_den» -коэффициент понижающей дискретизации.
Без потери общности, фильтры FIR в приведенном здесь примере рассчитаны в соответствии с традиционным способом, называемым «оконный способ», так как он включает взвешивание с использованием кардинальной синусной (sin(x)/x) оконной функции. Фильтры FIR рассчитывают, например, так, как описывается ниже.
Например, фильтр f_5_8_129 получают по следующей команде matlab:
f_5_8_129=[0 0 0 0 fir1(248,(3775/32000),hanning(249))*4.999895 0 0 0 0];
c частотой отсечки (-6 дБ) при 64 кГц, равной 3775 Гц.
Эти коэффициенты используют в качестве фильтра из 16 коэффициентов при 8000 Гц (т.е. 128 коэффициентов при 64 кГц) и в качестве фильтра из 24 коэффициентов при 12800 Гц (т.е. 120 коэффициентов при 64000 Гц, пренебрегая последними значениями).
Фильтр f_12_180 получают по следующим командам matlab:
ftmp=fir1(358,1/12,hanning(359));
f_12_180=[0 ftmp/ftmp(180) 0];
c частотой отсечки (-6 дБ) при 192 кГц, равной 8000 Гц.
Фильтр f_12_180 получают по следующим командам matlab:
ftmp=fir1(358,1/15,hanning(359));
f_12_180=[0 ftmp/ftmp(180) 0];
c частотой отсечки (-6 дБ) при 192 кГц, равной 6400 Гц.
Разумеется, в вариантах изобретения можно использовать и другие способы расчета фильтров FIR.
Эти конфигурации преобразования без потери общности обоснованы здесь использованием в алгоритме кодирования 2 внутренних частот: 12,8 кГц и 16 кГц. Ни способ, которым делается выбор внутренней частоты дискретизации (12,8 кГц или 16 кГц), ни способ, которым делается выбор типа кодирования, подлежащего использованию (блок 311), здесь подробно не описывается. Это превышает объем изобретения. Однако следует напомнить, что выбор внутренней частоты можно делать независимо в каждом кадре для одной и той же входной и/или выходной частоты кодека, что, например, означает, что в кадре N можно использовать передискретизацию в соответствии с конфигурацией i, в кадре N+1 - передискретизацию в соответствии с конфигурацией j, отличающейся от i (но с той же «внешней» частотой), а в кадре N+2 - не использовать передискретизацию, что означает прямое кодирование кадра на входной частоте fIn - на практике последний случай возможен в предпочтительном варианте осуществления только в следующих ситуациях:
если выбранный режим кодирования представляет собой кодирование FD-типа, которое всегда действует на частоте fIn;
если выбранный режим кодирования представляет собой кодирование TD, и входная частота fIn соответствует внутренней частоте кодирования TD.
Однако в одном из вариантов изобретения кодирование FD-типа можно вынудить действовать на такой же внутренней частоте кодирования, как и кодирование TD, с целью содействия переключению между ними.
Следует отметить, что переход от кодирования TD к кодированию FD и наоборот здесь не описывается, так как это выходит за пределы объема изобретения.
Если частота дискретизации входного сигнала fIn больше внутренней частоты дискретизации кодирования, то кодирование сигнала в высокочастотном диапазоне (частоты выше 6,4 кГц или 7 кГц) обеспечивает алгоритм кодирования TD COD или FC COD, и кодирование высокочастотного диапазона здесь подробно не описывается.
Таким образом, кодер содержит устройство 300 передискретизации, содержащее параметризуемый фильтр с передискретизацией, поскольку он действует посредством некоторого количества конфигураций коэффициентов фильтра FIR (блок 305). В вариантах осуществления, описываемых ниже в данном описании, фильтр с передискретизацией представляет собой многофазный фильтр. Изобретение также применимо и к реализациям передискретизации посредством фильтров FIR других типов, таких как, например, фильтр с передискретизацией неоптимальной сложности, не включающий многофазное представление. Более того, изобретение также применимо и к другим коэффициентам преобразования частоты дискретизации.
За исключением первых трех конфигураций (номера 1-3), все остальные конфигурации используют многофазный фильтр FIR-типа с задержкой 0,9375 мс (12 дискретных значений при 12,8 кГц, 15 дискретных значений - при 16 кГц, 30 дискретных значений - при 32 кГц, и 45 дискретных значений - при 48 кГц).
Многофазную фильтрацию с передискретизацией (блок 305) в конфигурациях 4-13 выполняют в соответствии с алгоритмом, полученным исходя из многофазной передискретизации посредством FIR, определенной в кодеке ITU-T G.718 (см. реализацию исходного кода G.718 в файле «modify_fs.c»).
Здесь интерес сосредоточен на первых трех конфигурациях, включающих «внешнюю» частоту дискретизации 8000 Гц. Для получения достаточной производительности фильтрации, в частности, для того чтобы гарантировать достаточное подавление спектральных изображений или эффекта наложения спектров, которые могут возникать на частотах, к которым очень чувствительно ухо, для этих конфигураций необходим более длинный фильтр FIR.
Без реализации способа передискретизации согласно изобретению эти 3 конфигурации обычно приводили бы в результате к 25 дискретным значениям задержки при 12,8 кГц для случая передискретизации от 8000 Гц до 12800 Гц, и 15 дискретным значениям задержки при 8 кГц - для случаев передискретизации от 12800 Гц до 8000 Гц и передискретизации от 16000 Гц до 8000 Гц. Обычно задержку на выходной частоте дискретизации округляют до целого числа ниже filt_len*fac_num/fac_den, где filt_len - длина фильтра, fac_num - коэффициент повышающей дискретизации, и fac_den - коэффициент понижающей дискретизации (см. также таблицу 1), но также было бы возможно рассматривать задержку с долей в половину дискретного значения.
Реализация в устройстве 300 передискретизации способа передискретизации в соответствии с изобретением, описываемого ниже со ссылкой на фиг. 4а и 4b, в случае кодера, делает возможным:
- ограничение фактической задержки конфигураций 1-3 для получения задержки, идентичной остальным конфигурациям преобразования 4-13 (имеющим задержку 0,9375 мс). Для осуществления этого устройство передискретизации содержит модуль 301 адаптивного линейного предсказания, пригодный для определения для каждого кадра сигнала некоторого количества дискретных значений будущего сигнала, определяемых в зависимости от выбранной задержки передискретизации. Следует отметить, что это количество дискретных значений теоретически является параметризуемым, однако на практике оно остается постоянным для определенной конфигурации кодека;
- переключение между определенными конфигурациями передискретизации, даже если связанные с ними теоретические задержки отличаются.
В одном из частных вариантов осуществления, не описанном в таблице 1, кодер может содержать некоторое количество полифазных фильтров FIR с передискретизацией (по меньшей мере два), в результате приводящих к разным задержкам. Например, в кодере с несколькими битовыми скоростями передачи данных для ввода, всегда имеющего частоту 16000 Гц, возможны 2 разных кодирующих ядра на внутренней частоте в соответствии с битовой скоростью передачи данных: 8000 Гц - для менее высоких битовых скоростей передачи данных, и 12800 Гц - для более высоких битовых скоростей передачи данных. Для того чтобы получить достаточный уровень производительности фильтрации, в частности, для того чтобы гарантировать достаточное подавление спектральных изображений или эффектов наложения спектров, передискретизация от 16000 Гц до 8000 Гц требует более длинного фильтра FIR, чем передискретизация от 16000 Гц до 12800 Гц. Поэтому две эти фильтрации обладают разными задержками. Для того чтобы иметь возможность переключения между этими двумя режимами кодирования без артефактов (в случае изменения битовой скорости передачи данных), эти задержки должны быть гармонизированы (сделаны равными). Если длину фильтра FIR с передискретизацией уменьшить от 16000 Гц до 8000 Гц, качество обычно ухудшается, так как эффект наложения спектров не будет достаточно ослаблен и станет слышимым. Если длину фильтра FIR с передискретизацией увеличить от 16000 Гц до 12800 Гц, или если применить к подвергнутому передискретизации сигналу дополнительную задержку, увеличится общая задержка кодирования/декодирования, что может препятствовать согласованности действий.
Используя способ передискретизации согласно настоящему изобретению, можно уменьшить задержку более длинных фильтраций FIR до уровня задержки менее длинного фильтра без заметной потери качества в сравнении с первоначальной фильтрацией. Фактически, результаты моделирования показывают, что отношения сигнал-шум между обычной фильтрацией и фильтрацией с малой задержкой в соответствии с настоящим изобретением являются очень высокими. Также испытаниями по прослушиванию продемонстрировано, что разница между сигналами, полученными при обычной фильтрации и при фильтрации с малой задержкой в соответствии с настоящим изобретением, не является слышимой.
Таким образом, в представленном здесь случае кодер (или даже декодер) содержит два многофазных фильтра с передискретизацией с разными задержками. По меньшей мере один из фильтров с передискретизацией представляет собой фильтр, реализованный, как описано ранее в соответствии с изобретением, в котором определение количества дискретных значений будущего сигнала зависит от разности задержек двух фильтров с передискретизацией, используемых в двух этих устройствах.
Например, конфигурации 3-7 в таблице 1 можно использовать для внешней частоты 16000 Гц и внутренних частот 8000 Гц и 12800 Гц. В этом случае видно, что задержка на входной частоте (filt_len) составляет, соответственно, 30 и 15 дискретных значений; поэтому для того чтобы иметь возможность уменьшить задержку конфигурации 3 до уровня задержки конфигурации 7, необходимо предсказать эту разность, т.е. 15 дискретных значений при 16000 Гц. Изобретение, более подробно описываемое далее, будет пригодно для использования при уменьшении задержки конфигурации 3 и будет способно прозрачно чередоваться между конфигурациями 3 и 7, так как они имеют одинаковую задержку в 15 дискретных значений.
Возвращаясь к примеру кодера по фиг. 3 и к конфигурациям, перечисленным в таблице 1:
в случае передискретизации от 8000 Гц до 12800 Гц, необходимо уменьшить задержку от 25 до 12 дискретных значений, т.е. генерировать plus_sample_out=13 дополнительных дискретных значений при 12800 Гц, что делает необходимой экстраполяцию plus_sample_in=8 дискретных значений при 8000 Гц.
Для случая передискретизации от 12800 Гц до 8000 Гц необходимо уменьшить задержку от 15 до 7 дискретных значений, т.е. генерировать plus_sample_out=8 дополнительных дискретных значений при 8000 Гц, что делает необходимой экстраполяцию plus_sample_in=12 дискретных значений при 12800 Гц.
Для случая передискретизации от 16000 Гц до 8000 Гц необходимо уменьшить задержку от 15 до 7 дискретных значений, т.е. генерировать plus_sample_out=8 дополнительных дискретных значений при 8000 Гц, что делает необходимой экстраполяцию plus_sample_in=15 дискретных значений при 16000 Гц. Следует отметить, что при 8000 Гц 0,9375 мс соответствуют 7,5 дискретных значений, округленных до 7 дискретных значений.
Устройство 300 передискретизации, изображенное на фиг. 3, принимает в качестве ввода блоки звукового сигнала и, в данном варианте осуществления, они представляют собой кадры длительностью 20 мс, принимаемые блоком 310, также содержащим в памяти набор дискретных значений из прошлых кадров.
Это устройство передискретизации содержит модуль 301 адаптивного линейного предсказания, пригодный для определения для каждого блока или кадра сигнала некоторого количества дискретных значений будущего сигнала, определяемых в зависимости от выбранной задержки передискретизации.
Это предсказанное количество дискретных значений будущего сигнала используют для определения опоры передискретизации, определяемой модулем 304 для построения опорного вектора передискретизации. Этот опорный вектор передискретизации представляет собой, например, цепочку возможных дискретных значений прошлого сигнала, дискретных значений из текущего блока или кадра и дискретных значений будущего сигнала, предсказанных модулем 301. Дискретные значения прошлого сигнала служат в качестве памяти для фильтра FIR с передискретизацией.
Тем не менее, построение этого опорного вектора также включает следующую реализацию:
- прошлый сигнал может храниться в блоках памяти фильтра FIR с передискретизацией и поэтому может не подвергаться сцеплению с дискретными значениями текущего кадра (но сигнал текущего кадра в действительности представляет собой непрерывность с блоками памяти, содержащими прошлый сигнал);
- предсказанный будущий сигнал также может храниться в отдельном векторе, и его передискретизацию можно осуществлять отдельно от сигнала текущего кадра до тех пор, пока необходимые блоки памяти обновляются верно. В случае передискретизации будущего сигнала по отдельности, блоки памяти фильтра с передискретизацией инициализируют самыми поздними дискретными значениями текущего сигнала. И снова, несмотря на это разделение, предсказанный будущий сигнал в действительности является продолжением сигнала текущего кадра.
В данном документе термин «построение опорного вектора» без потери общности также охватывает случаи, в которых сигналы реально не копируют один за другим в один и тот же вектор, но хранят их в разных векторах.
Фильтр 305 затем применяют к этому опорному вектору передискретизации, чтобы получить сигнал, подвергнутый передискретизации до требуемой выходной частоты.
Модуль 301 линейного предсказания может содержать модуль 302 анализа краткосрочного предсказания (LPC), пригодный для определения коэффициентов фильтра с линейным предсказанием так, как описывается позднее в отношении фиг. 4а. В другом преимущественном варианте осуществления этот модуль (302b) анализа LPC может быть включен в модуль 309 кодирования с предсказанием временного кодирования TD-типа (например, кодирования CELP). Таким образом, один и тот же модуль анализа можно использовать как для предсказания полезных будущих дискретных значений для устройства передискретизации, так и для кодирования сигнала перед передачей. Таким образом, снижается сложность устройства передискретизации, действующего совместно с модулем анализа модуля кодирования.
Модуль 301 дополнительно содержит модуль 303 фильтрации с предсказанием посредством фильтрации 1/A(z) нулевого сигнала для получения набора будущих дискретных значений buffut.
Поэтому на фиг. 4а изображены основные этапы способа передискретизации в соответствии с одним из вариантов осуществления изобретения.
Этапы этого способа реализованы с кадрами из lg дискретных значений в качестве ввода (BufIn) на входной частоте дискретизации fIn. Также имеется доступ к прошлым дискретным значениям этого входного сигнала посредством блоков памяти. Исходя из данного входного сигнала, на этапе Е401 определяют количество дискретных значений, подлежащих предсказанию, plus_sample_in, в зависимости от требуемой задержки и предсказывают это количество дискретных значений будущего сигнала посредством линейного предсказания. Результат этого предсказания сцепляют с входным сигналом (текущим кадром и прошлыми кадрами для блоков памяти) на этапе Е402 построения опорного вектора передискретизации. Поэтому данный опорный вектор, в одном из вариантов осуществления, представляет собой цепочку из дискретных значений прошлого сигнала, дискретных значений текущего кадра и определяемых дискретных значений будущего сигнала.
На этапе Е403 выполняют фильтрацию с передискретизацией путем применения фильтра с передискретизацией, например, фильтра с импульсной характеристикой конечной длительности (FIR), к дискретным значениям опорного вектора передискретизации, и подвергнутый передискретизации сигнал bufout подают в качестве вывода на выходной частоте дискретизации fout.
Тогда возможно несколько случаев:
- В случае непрерывного покадрового использования (lg дискретных значений в качестве ввода), вычисляют только lg_out=lg*fac_num/fac_den последних дискретных значений.
- В случае если следует получить больше дискретных значений (использование посредством кадра с будущим сигналом) (lg+plus_sample_in дискретных значений в качестве ввода), как в случае кодера согласно стандарту AMR-WB, вычисляют lg_out+plus_sample_out дискретных значений, где plus_sample_out=plus_sample_in*fac_num/fac_den. Фактически, в кодере AMR-WB подвергают передискретизации текущий кадр длительностью 20 мс и подвергают передискретизации 15 дополнительных дискретных значений; первый этап устраняет ошибку передискретизации, выполненной на втором этапе. В данном примере lg=320, plus_sample_in=15.
- Использование также может быть единичным, если, например, память (фрагмент или блок сигнала) подвергают передискретизации, например, в случае переключения между двумя режимами кодирования. В этом случае, ввод передискретизации представляет собой не кадр (например, длительностью 20 мс), но блок сигнала. Для применения изобретения важно отметить, что существенным является наличие прошлого блока, подвергаемого преобразованию, или, иначе, модели LPC, уже предварительно вычисленной исходя из прошлого - следует отметить, что при кодировании TD-типа, уже использующем линейное предсказание, обычно можно сохранять эти параметры (коэффициенты LPC или эквивалентные коэффициенты), вычисленные и/или закодированные в кодере и/или декодере TD в каждом кадре. Таким образом, в одном из вариантов изобретения эти параметры LPC будут пригодны для повторного использования, что упрощает реализацию блока 302, так как он тогда использует простой поиск сохраненных значений (возможно, квантованных).
Параллельно, на этапе Е405 обновляется память фильтра с передискретизацией. И снова, возможно несколько случаев:
- в случае непрерывного использования с бóльшим количеством дискретных значений, подлежащих генерированию, как в случае стандарта AMR-WB, сохраняют последние mem_len дискретных значений входного кадра без предсказанных значений: mem_sig(0 … mem_len-1)=frame(lg-mem_len … lg-1), после возобновления передискретизации дискретные значения, полученные на выходной частоте дискретизации, заменяют дискретные значения, полученные путем использования предсказанного входного сигнала.
- В случае непрерывного покадрового использования, дискретные значения, полученные путем использования предсказанного входного сигнала, не заменяют и вычисляют только lg_out дискретных значений на выходной частоте дискретизации. Если считать, что новый кадр начинается на дискретном значении с индексом g+plus_sample_in, то память фильтрации FIR с передискретизацией пополняют прошлыми дискретными значениями с индексом (lg+plus_sample_in-mem_len … lg+plus_sample_in-1), из которых часть памяти с индексом (lg … lg+plus_sample_in-1) может представлять собой либо истинный сигнал, либо предсказанный сигнал. При использовании истинного сигнала первые дискретные значения равны дискретным значениям, полученным при фильтрации без предсказания (результат, считающийся оптимальным), однако между последним дискретным значением, полученным путем предсказания в течение предыдущего кадра, и первым дискретным значением, полученным с истинным сигналом, может получиться небольшой разрыв. В случае использования предсказанного сигнала в блоке памяти разрыв отсутствует, но по другим filt_len дискретных значений размножается ошибка. В предпочтительном варианте осуществления используют первое решение, так как указанный небольшой разрыв не является слышимым.
- В случае единичного использования обновление памяти после передискретизации не является необходимым, но блоки памяти передискретизации должны быть инициализированы перед операцией передискретизации соответствующим прошлым входным сигналом.
В одном из вариантов анализ LPC, используемый для предсказания будущего сигнала, выполняют не непосредственно на сигнале в текущем кадре, а на подвергнутом предыскажению сигнале, полученном в результате фильтрации текущего кадра посредством фильтра формы 1-μz-1, где μ вычисляют адаптивно или задают как предварительно определенное значение. Этот вариант изображен на фиг. 4b. В сравнении с фиг. 4а, добавлен этап Е406 определения коэффициента μ предыскажения. Используя данный коэффициент μ, входной сигнал на данном этапе Е407 подвергают предыскажению посредством фильтрации 1-μz-1. Следует отметить, что данная фильтрация нуждается в дискретном значении из памяти, поэтому в данном варианте размер блока памяти нужно увеличить на 1. Подвергнутый предыскажению сигнал представляет собой ввод этапов E401 и E402. Сцепленный сигнал затем, на этапе Е408 подвергают компенсации предыскажения с использованием того же самого коэффициента μ посредством фильтрации 1/(1-μz-1). Следует отметить, что для данного сигнала расположение предыскажения в последовательности перед анализом LPC c последующей компенсацией предыскажения посредством коэффициента μ является прозрачным, то есть входной сигнал точно восстанавливается. Поэтому если сигнал перед предыскажением сохраняют, то для уменьшения вычислительной сложности компенсации предыскажения подвергают только предсказанную часть. Эту подвергнутую компенсации предыскажения предсказанную часть затем сцепляют с сохраненным сигналом для формирования опорного вектора передискретизации.
Имеется множество методик для определения коэффициента предыскажения μ, значения которого находятся между -1 и +1.
- μ может являться постоянным, например, μ=0,68;
- μ может являться постоянным и зависящим от входной частоты дискретизации;
- μ может являться адаптивным в соответствии с анализом наклона спектра (способ, известный на данном уровне техники).
На фиг. 5а изображен этап Е406 определения коэффициента предыскажения по фиг. 4b. На этапе Е501 сигнал подвергают взвешиванию с использованием оконной функции посредством окна анализа. На этапе Е502 вычисляют автокорреляцию порядка M=1 (r(0) и r(1)), и на этапе Е503, во избежание арифметических проблем с низкоуровневыми входными сигналами, к r(0) применяют шумовой порог (минимальный уровень шума).
Данные этапы автокорреляции и применения шумового порога описаны, например, в подразделе 3.2.1 рекомендации ITU-T G.729.
Вычисления автокорреляций r(k) с окном длиной L для сдвигов окна k=0,…,M имеют форму:
в которой и соответствуют последним L дискретным значениям сигнала текущего кадра и, возможно, прошлого сигнала - если длина L больше длины текущего кадра.
В предпочтительном варианте осуществления используется окно LPC длиной L=240, пример которого изображен на фиг. 6.
Как видно, форма этого окна является асимметричной с весом, сосредоточенным на конце его носителя (на самых последних дискретных значениях). Команды matlab для построения этого окна, например, с L=240 даны ниже:
L1=L-8;
for i=0:(L1-1)
w(i+1)=0,54-0,46*cos(2*i*pi/(2*L1-1));
end
for i=L1:(L-1)
w(i+1)=cos((i-L1)*2*pi/(31));
end
В вариантах изобретения можно, не изменяя сущность изобретения, использовать и другие значения порядка М LPC, другие формы и длины окна LPC. «Минимальный уровень шума» можно использовать традиционным образом, умножая первый коэффициент корреляции на коэффициент >1 или ограничивая значение этого первого коэффициента минимальным значением. Наконец, на этапе Е504 вычисляют коэффициент, как μ=r(1)/r(0).
На фиг. 5b более подробно описан один из вариантов осуществления этапа Е401 линейного предсказания для определения будущих дискретных значений по фиг. 4 в соответствии с изобретением.
Например, этот этап Е401 может включать этап Е506 вычисления коэффициентов фильтра c линейным предсказанием предварительно определенного порядка исходя из дискретных значений текущего кадра и, возможно, дискретных значений из предыдущих кадров, и этап Е507 получения дискретных значений будущего сигнала путем применения вычисленного фильтра с предсказанием к сигналу возбуждения с нулевым значением.
Этапы E501, E502 и E503 на фиг. 5а и 5b являются сходными, но имеющими разный порядок М предсказания. Также могут отличаться и другие параметры, такие, как форма или длина окна анализа или даже «минимальный уровень шума». В обоих случаях эти модули можно использовать совокупно с целью уменьшения вычислительной сложности.
Конкретнее, на этапе Е501 входной сигнал (подвергнутый или не подвергнутый предыскажению) взвешивают с использованием оконной функции. Можно, например, использовать окно такого же типа, как изображенное на фиг. 6. На этапе Е502 вычисляют автокорреляционную функцию выбранного порядка (например, М=10), и на этапе Е503 минимальный уровень шума применяют к r(0), как описано, например, в подразделе 3.2 стандарта G.729.
На этапе Е505 выполняют этап, называемый «взвешивание с использованием корреляционного окна» (способ, известный специалистам в данной области техники), также описанный, в особенности, в подразделе 3.2.1 стандарта G.729.
Этап «взвешивания с использованием корреляционного окна» для входной частоты дискретизации (fIn) имеет форму:
r(i)=r(i)*, i=0,…,M
в которой коэффициенты определены следующим образом:
где=fIn - частота сигнала, подлежащего передискретизации, и где, например, =60 Гц.
На этапе Е506 (реализуемом модулем 302 по фиг. 3) посредством алгоритма Левинсона-Дарбина, описанного со ссылкой на подраздел 3.2.2 стандарта G.729 или подраздел 6.4.3 стандарта AMR-WB, вычисляют коэффициенты A[i], i=0,…,M, фильтра с линейным предсказанием A(z) порядка М. В предпочтительном варианте осуществления используют порядок LPC М=10.
На этапе Е507 (реализуемом модулем 303 по фиг. 3) к нулевому сигналу применяют синтезирующий фильтр 1/A(z), дающий предсказание дискретных значений будущего сигнала.
Это предсказание выполняют рекуррентно посредством фильтрации 1/A(z) с нулевым вводом (сигнал возбуждения фильтра) для plus_sample_in дискретных значений в конце кадра длиной lg (i=lg … lg+plus_sample_in -1):
В одном из вариантов изобретения можно использовать и другие способы вычисления коэффициентов линейного предсказания, например, можно использовать метод Берга, реализованный, например, в кодере SILK, известном на данном уровне техники.
В другом варианте коэффициенты линейного предсказания можно оценить при помощи подхода, относящегося к типу адаптивной фильтрации LMS (метод наименьших квадратов) или RLS (рекуррентный метод наименьших квадратов).
В другом альтернативном варианте коэффициенты LPC можно непосредственно получить из анализа и/или квантования связанных параметров, выполняемого на сигнале в кодере TD-типа (309) с использованием предсказания LPC (302b) даже в кодере FD при условии, что линейное предсказание выполняют в кодере FD.
Например, в декодере CELP кодека AMR-WB в каждом подкадре имеются коэффициенты LPC (порядка 16), и, в частности, для предсказания будущего декодированного сигнала можно использовать коэффициенты LPC, декодированные в последнем подкадре и, таким образом, исключить задержку передискретизации декодера CELP.
В другом варианте нулевое возбуждение (нулевой ввод) на этапе Е507 можно заменить возбуждением, предсказанным, например, посредством предсказания основного тона в области возбуждения.
В других вариантах изобретения (краткосрочное) линейное предсказание будет заменено (долгосрочным) предсказанием основного тона в области сигнала, и это предсказание может быть дробным или многоотводным.
Следует отметить, что вместо временного подхода было бы возможно выполнять предсказание в частотной области; однако этот альтернативный подход в частотной области требует анализирующего преобразования (например, FFT), предсказания будущего спектра, например, путем воспроизведения амплитуд и непрерывности фаз наиболее важных спектральных лучей, и обратного синтезирующего преобразования или синтеза синусоид; эта альтернатива обычно является более сложной, чем описанный ранее временной подход, тем более что частотному анализу требуется наличие временной поддержки, достаточно длительной для того, чтобы получать разрешающую способность по частоте, достаточную для идентификации спектральных лучей (тонов). Этот подход не является идеальным, если намерение заключается в экстраполяции ограниченного количества дискретных значений (меньше длительности кадра).
В еще одном варианте осуществления ранее описанное адаптивное линейное предсказание можно заменить процессом сокрытия стертого кадра с целью экстраполяции будущего сигнала посредством более сложной модели сигнала. Такая методика описана, например, в европейском патенте, опубликованном под номером EP 1316087.
В других вариантах изобретения передискретизацию посредством фильтра FIR можно заменить другими способами передискретизации посредством фильтрации IIR или полиномиальной интерполяции. В этом случае, принцип остается неизменным: будущий сигнал предсказывают, а передискретизацию применяют, принимая во внимание будущий сигнал. В одном из вариантов осуществления рассматриваются 2 конфигурации передискретизации с разными задержками, и изобретение делает возможным приведение более длительной задержки к наименьшему значению задержки.
Для того чтобы иметь возможность продемонстрировать эффективность дискретизации с малой задержкой в соответствии со способом изобретения, описанным ранее в примере передискретизации от 8000 Гц до 12800 Гц, используют испытательный сигнал, состоящий из смеси 10 синусоид, частота которых изменяется каждую секунду. Для сигнала на i-й секунде частоты этих синусоид были выбраны случайно вокруг центральной частоты fecenter(i) в интервале [fecenter(i)- 600, fecenter(i)+600], и fecenter(i)=500+100*i Гц, i=1, …, 28.
На фиг. 7а-7l представлены результаты сравнения между способом передискретизации на известном уровне техники в AMR-WB (пунктирная линия), результаты для способа в соответствии с изобретением с фильтром с предсказанием порядка М=4 и окном анализа в 20 дискретных значений (штрихпунктирная линия) и результаты для способа в соответствии с изобретением с фильтром с линейным предсказанием порядка 10 и окном анализа в 240 дискретных значений (сплошная линия).
Фигуры отображают отношение сигнал-шум в зависимости от центральной частоты испытательного сигнала.
Каждая фигура соответствует отличающемуся положению дискретного значения относительно конца традиционного кадра, полученного традиционной фильтрацией (что соответствует нумерации №1, …, №12 по фиг. 2). Например, на фиг. 7а представлено отношение сигнал-шум (SNR) для дискретных значений во втором положении после конца традиционного кадра, на фиг. 7b представлено отношение сигнал-шум для предсказанного дискретного значения в третьем положении после конца текущего кадра и т. д. Таким образом, на фиг. 7l представлено отношение сигнал-шум для предсказанного дискретного значения в 13-м положении после текущего кадра.
Можно наблюдать, что SNR уменьшается по мере увеличения положения, так как в ходе фильтрации в возрастающей степени используются предсказанные дискретные значения, и что для одного и того же положения SNR уменьшается по мере увеличения центральной частоты, так как высокие частоты являются менее предсказуемыми. Однако во всех случаях наблюдается, что способ в соответствии с изобретением даже при низком порядке предсказания является значительно более эффективным, чем способ, используемый в кодере AMR-WB.
Преимуществом использования предсказания низкого порядка является его низкая сложность и легкость реализации для вычислений, прежде всего для арифметики в представлении с фиксированной запятой. Чем выше порядок, тем сильнее возрастает сложность, и, в то же время, тем сложнее становится обеспечение устойчивости фильтра.
На фиг. 8а-8с показаны однотипные результаты по очень широкой базе речевых сигналов. Здесь показано SNR в зависимости от положения дискретного значения для 3 разных случаев: от 8000 Гц до 12800 Гц - на фиг. 8а, от 12800 Гц до 8000 Гц - на фиг. 8b, и от 16000 Гц до 8000 Гц - на фиг. 8с. И снова, алгоритм в соответствии с изобретением является значительно более эффективным, чем алгоритм, используемый на известном уровне техники (AMR-WB), даже для малого порядка предсказания с коротким окном.
На фиг. 9 изображен один из примеров аудиодекодера, содержащего устройство 300 передискретизации в соответствии с изобретением. Это устройство передискретизации является таким же, как устройство, описанное со ссылкой на фиг. 3.
Изображенный здесь декодер представляет собой декодер (монофонических) звуковых сигналов c несколькими битовыми скоростями передачи данных (с битовыми скоростями передачи данных от 7,2 кбит/с до 128 кбит/с), действующий на выходных частотах дискретизации 8, 16, 32 или 48 кГц.
На основании принятого и разуплотненного (блок 901) кадра вывод переключают (904) между выводом декодера с временным разделением (TD DEC), относящегося к типу CELP (902), использующим линейное предсказание (902b), и декодером в частотной области (FD DEC).
На фиг. 10 представлен один из примеров аппаратного варианта осуществления устройства 300 передискретизации в соответствии с изобретением. Последнее может быть осуществлено как неотъемлемая часть кодера сигнала звуковой частоты, декодера или единицы оборудования, принимающей сигналы звуковой частоты.
Устройство данного типа содержит процессор PROC, действующий совместно с блоком BM запоминающего устройства, содержащим хранилище данных и/или рабочую память МЕМ.
Такое устройство содержит модуль Е ввода, пригодный для приема кадров BufIn звукового сигнала на частоте дискретизации fIn.
Оно содержит модуль S вывода, пригодный для передачи сигнала BufOut звуковой частоты на частоте дискретизации fOut.
Блок запоминающего устройства преимущественно может содержать компьютерную программу, содержащую команды кода для реализации этапов способа дискретизации в смысле изобретения, когда эти команды исполняются процессором PROC, и, в частности, этапов определения посредством адаптивного линейного предсказания количества дискретных значений будущего сигнала, причем это количество определяется в зависимости от выбранной задержки передискретизации, построения опорного вектора передискретизации, по меньшей мере, из дискретных значений текущего блока и предварительно определенных дискретных значений будущего сигнала, и применения фильтра с передискретизацией к дискретным значениям опорного вектора передискретизации.
Этапы алгоритма такой компьютерной программы, как правило, повторяют описание фиг. 4а. Эта компьютерная программа также может храниться в запоминающей среде, пригодной для считывания устройством считывания указанного устройства, или она может быть загружена в его область памяти.
Запоминающее устройство МЕМ обычно хранит в памяти все данные, необходимые для реализации способа.
Изобретение относится к области вычислительной техники для обработки аудиосигналов. Технический результат заключается в повышении качества обработки сигнала звуковой частоты. Технический результат достигается за счет передискретизации сигнала звуковой частоты с помощью устройства кодирования или декодирования сигнала звуковой частоты, в котором передискретизация содержит следующие действия для каждого блока сигнала, подлежащего передискретизации: определение посредством адаптивного линейного предсказания количества дискретных значений будущего сигнала, причем это количество определяют в зависимости от выбранной задержки передискретизации; построение опорного вектора передискретизации, по меньшей мере, из дискретных значений текущего блока сигнала и определяемых дискретных значений будущего сигнала; и применение фильтра с передискретизацией к дискретным значениям опорного вектора передискретизации; обеспечения переключения между двумя режимами кодирования; обеспечения передискретизации текущего блока сигнала с учетом переключения. 2 н. и 2 з.п. ф-лы, 25 ил.
1. Способ передискретизации сигнала звуковой частоты в кодере или декодере сигнала звуковой частоты, содержащий:
- передискретизацию сигнала звуковой частоты с помощью устройства кодирования или декодировании сигнала звуковой частоты, в котором передискретизация содержит следующие действия для каждого блока сигнала, подлежащего передискретизации:
- определение посредством адаптивного линейного предсказания количества дискретных значений будущего сигнала, причем это количество определяют в зависимости от выбранной задержки передискретизации;
- построение опорного вектора передискретизации, по меньшей мере, из дискретных значений текущего блока сигнала и определяемых дискретных значений будущего сигнала; и
- применение фильтра с передискретизацией к дискретным значениям опорного вектора передискретизации,
причем способ дополнительно содержит этапы, на которых:
- обеспечивают переключение между двумя режимами кодирования;
- обеспечивают передискретизацию текущего блока сигнала с учетом переключения.
2. Способ по п. 1, в котором использование фильтра с передискретизацией является единичным в случае переключения между двумя режимами кодирования.
3. Способ по п.1, в котором параметры анализа краткосрочного предсказания (LPC), используемые для кадра текущего блока сигнала, пригодны для повторного использования.
4. Устройство для передискретизации сигнала звуковой частоты в кодере или декодере сигнала звуковой частоты, отличающееся тем, что оно содержит:
- модуль адаптивного линейного предсказания, пригодный для определения для блока сигнала количества дискретных значений будущего сигнала в зависимости от выбранной задержки передискретизации;
- модуль построения опорного вектора передискретизации, по меньшей мере, из дискретных значений текущего блока сигнала и определяемых дискретных значений будущего сигнала;
- фильтр с передискретизацией, применяемый к дискретным значениям опорного вектора передискретизации, причем устройство выполнено с возможностью:
переключения между двумя режимами кодирования;
обеспечения передискретизации текущего блока сигнала с учетом переключения.
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
УСТРОЙСТВО ДЛЯ КРЕПЛЕНИЯ КОНТЕЙНЕРОВ НА ПЛАТФОРМЕ | 2008 |
|
RU2397080C2 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
ПЕРЕДИСКРЕТИЗАЦИЯ В КОМБИНИРОВАННОМ БАНКЕ ФИЛЬТРОВ ТРАНСПОЗИТОРА | 2010 |
|
RU2494478C1 |
Авторы
Даты
2021-09-24—Публикация
2014-09-26—Подача