СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ АУДИОСИГНАЛОВ (ВАРИАНТЫ)
METHOD AND APPARATUS FOR ENCODING AND DECODING AUDIO SIGNALS (VERSIONS)

Изобретение относится к способу сжатия цифровых сигналов, таких как аудиосигналы; а более конкретно к алгоритму распределения бит, подстановке шума и адаптивному эффективному сжатию коэффициента квантования.
В настоящее время большинство аудиокодеров основаны на кодировании в частотной области. Эти кодеры состоят из модуля преобразования сигнала из временной формы в частотную, квантователя и модуля сжатия без потерь. Ошибка квантования контролируется при помощи информации от психоакустической модели, и квантованные спектральные коэффициенты вместе с некоторой дополнительной информацией кодируются без потерь.
Аудиокодер G.719 является стандартным по ITU-T [1] кодером, основанным на частотном преобразовании с адаптивным распределением бит и векторным квантованием. Входной временной сигнал преобразуется в спектральные коэффициенты при помощи преобразования МДКП (Модифицированное Дискретное Косинусное Преобразование). Спектральные коэффициенты группируются в частотные полосы и энергии полос (нормы) оцениваются для каждой полосы. Эти нормы используются для нормализации спектра, а также в алгоритме распределения бит. Нормализованные спектральные коэффициенты векторно квантуются и кодируются тем числом бит, которое было определено для каждой полосы. Перед алгоритмом распределения бит нормы дополнительно взвешиваются при помощи некоторых психоакустических критериев, таких как маскирующий эффект. Схема распределения бит использует взвешенные квантованные нормы для распределения общего доступного количества бит между полосами внутри одного кадра. Алгоритм выделяет один бит на частоту для каждой полосы до тех пор, пока все выделенные биты не будут потрачены. На каждой итерации выбирается наибольшая норма, выделяется бит для соответствующей полосы, и норма уменьшается на 6 дБ. Алгоритм распределения бит также использует взвешивание спектра на основе психоакустического критерия, однако коэффициент взвешивания в значительной мере ограничен, поэтому повышает качество незначительно. Кроме того, точность распределения бит из-за целочисленных вычислений может быть недостаточна для эффективного сжатия на низкой скорости.
В декодере G.719 для спектральных коэффициентов, которые не были переданы из-за недостаточного количества доступных бит, используется алгоритм заполнения спектра. В полосах, где был передан хотя бы один коэффициент, заполнение не производится. На низкой скорости, где число полос с несколькими закодированными частотами достаточно велико, появляется много провалов в спектре, что приводит к слышимым искажениям.
Стандарт кодирования речи ITU-T G.718 [2] основан на факториальном импульсном кодировании (FPC) для кодирования коэффициентов МДКП. Этот способ кодирования, как известно, эффективно кодирует амплитуды единичными импульсами и использует вычисление комбинаторных функций. Эти расчеты являются вычислительно сложными, так как требуют много операций умножения и деления, особенно если длина сигнала велика, или сигнал имеет большую амплитуду. Учитывая выделенные на полосы биты, FPC оценивает число импульсов в этих полосах. Как правило, для определения отношения между битами и импульсами используется таблица и хорошо известный алгоритм двоичного поиска. Этот алгоритм является достаточно простым, однако операция вычисления логарифма, требующаяся при каждом сравнении, достаточно сложна. Вышеуказанные подходы в разной степени реализованы в известных из уровня техники решениях [3], [4] и [5].
Задача, на решение которой направлено заявляемое изобретение, состоит в том, чтобы преодолеть указанные выше недостатки, а именно снизить как уровень искажений, так и высокую сложность кодирования FPC.
Технический результат достигается за счет разработки усовершенствованного способа более эффективного распределения бит среди частотных полос при кодировании аудиосигналов на основе преобразований, а также за счет разработки усовершенствованного устройства для кодирования/декодирования звукового сигнала. В рамках заявляемого способа описан алгоритм двухступенчатого определения числа импульсов с низкой сложностью - предсказание числа импульсов в полосе, а затем двоичный поиск внутри уже небольшого поддиапазона с помощью таблицы констант. Кроме того, заявляемое решение содержит схему заполнения спектра для подстановки шума вместо нулевых коэффициентов, и эффективное FPC кодирование при помощи адаптивной передачи коэффициента нормы. Дополнительно уменьшена сложность оценки количества импульсов.
Конкретно, в основном варианте заявляемого способа предусматривается кодирование временного звукового сигнала, которое заключается в том, что входной сигнал преобразуют в спектральные коэффициенты, группируют спектральные коэффициенты в частотные полосы и оценивают нормы для каждой полосы как среднюю энергию в полосе, нормализуют спектр на основании оцененных норм, взвешивают нормы на основе психоакустических свойств звука, рассчитывают распределения бит на основании взвешенных норм, квантуют и кодируют спектр полученным количеством бит, при этом распределение бит рассчитывают на основании психоакустичсской модели, построенной по квантованным нормам.
При кодировании на низкой скорости биты должны распределяться эффективно с точки зрения качества восприятия звука человеком. В заявляемом изобретении предлагаются два метода распределения бит на основе психоакустической модели: с передачей дополнительно информации, и без нее. Оба метода предусматривают возможность реализации с низкой сложностью.
Квантованный спектр МДКП может содержать много нулевых коэффициентов при кодировании с низкой скоростью, что приводит к слышимым искажениям в виде металлических призвуков. Заполнение шумом является хорошим методом маскировки провалов в спектре, однако этот шум может испортить тональные сигналы - они становятся зашумленными и тусклыми. Предлагаемый в заявляемом изобретении алгоритм подстановки шума обеспечивает адаптивное заполнение спектра с учетом тональности закодированных спектральных коэффициентов.
Что касается снижения сложности кодирования FPC, то в рамках заявляемого изобретения предлагается также алгоритм двухступенчатого определения числа импульсов с низкой сложностью - предсказание числа импульсов в полосе, а затем двоичный поиск внутри уже небольшого поддиапазона с помощью таблицы констант.
Согласно одному из заявляемых вариантов изобретения определение распределения бит выполняют на основе критерия отношения энергии сигнала к маскирующему порогу.
Согласно одному из заявляемых вариантов изобретения расчет количества импульсов выполняют на основе критерия отношения энергии сигнала к маскирующему порогу.
Согласно одному из вариантов изобретения число бит определяют по формуле факториального импульсного кодирования (FPC) из известного числа импульсов.
Согласно одному из вариантов изобретения в предложенном способе кодирования вычисляют параметры заполнения шумом для квантованных в ноль спектральных коэффициентов, с целью маскировки провалов спектра, после чего параметры передают в поток данных.
Согласно одному из вариантов изобретения в предложенном способе кодирования число импульсов по заданным битам в полосе определяют с помощью двухступенчатого алгоритма с низкой вычислительной сложностью.
Согласно одному из вариантов заявляемого изобретения в настоящей заявке предлагается способ декодирования закодированного звукового сигнала, включающий: декодирование и восстановление норм, расчет распределения бит на основе восстановленных норм, декодирование спектра и обратное преобразование спектральных коэффициентов в сигнал во временной области, отличающийся тем, что распределение бит оценивают на основе психоакустической модели, построенной по восстановленным нормам.
Согласно одному из вариантов изобретения в предложенном способе декодирования закодированного звукового сигнала параметры шума декодируют из потока данных, и квантованные в ноль спектральные коэффициенты заполняют шумом с целью маскировки провалов спектра.
Согласно одному из вариантов изобретения в предложенном способе декодирования закодированного звукового сигнала число импульсов по заданным битам в полосе определяют с помощью двухступенчатого алгоритма с низкой вычислительной сложностью.
Согласно другому варианту заявляемого изобретения в настоящей заявке предлагается способ кодирования временного звукового сигнала, заключающийся в том, что входной сигнал преобразуют в спектральные коэффициенты, группируют спектральные коэффициенты в частотные полосы и оценивают нормы для каждой полосы как среднюю энергию в полосе, нормализуют спектр на основании оцененных норм, взвешивают нормы на основе психоакустических свойств звука, рассчитывают распределения бит на основании взвешенных норм, квантуют и кодируют спектр полученным количеством бит, отличающийся тем, что распределение бит рассчитывается на основании психоакустической модели, построенной по спектральным коэффициентам.
Согласно предложенному варианту в способе кодирования временного звукового сигнала психоакустические свойства сигнала оценивают на основе коэффициентов модифицированного дискретного косинусного преобразования (МДКП).
Согласно предложенному варианту в способе кодирования временного звукового сигнала распределение бит квантуют и передают в качестве дополнительной информации.
Согласно предложенному варианту в способе кодирования временного звукового сигнала определение распределения бит основано на критерии отношения энергии сигнала к маскирующему порогу.
Согласно предложенному варианту в способе кодирования временного звукового сигнала расчет количества импульсов основан на критерии отношения энергии сигнала к маскирующему порогу.
Согласно предложенному варианту в способе кодирования временного звукового сигнала число бит определяется по формуле FPC из известного числа импульсов.
Согласно предложенному варианту в способе кодирования временного звукового сигнала вычисляют параметры заполнения шумом для квантованных в ноль спектральных коэффициентов, с целью маскировки провалов спектра, затем параметры передают в поток данных.
Согласно предложенному варианту в способе кодирования временного звукового сигнала число импульсов по заданным битам в полосе определяют с помощью двухступенчатого алгоритма с низкой вычислительной сложностью.
Согласно другому варианту заявляемого изобретения в настоящей заявке предлагается способ декодирования закодированного звукового сигнала, включающий: декодирование и восстановление норм; расчет распределения бит на основе восстановленных норм; декодирование спектра и обратное преобразование спектральных коэффициентов в сигнал во временной области, отличающийся тем, что распределение бит декодируют из потока данных.
Согласно предложенному варианту в способе декодирования закодированного звукового сигнала параметры шума декодируют из потока данных и квантованные в ноль спектральные коэффициенты заполняют шумом с целью маскировки провалов спектра.
Согласно предложенному варианту в способе декодирования закодированного звукового сигнала число импульсов по заданным битам в полосе определяют с помощью двухступенчатого алгоритма с низкой вычислительной сложностью.
В настоящей заявке также предлагается устройство для кодирования/декодирования звукового сигнала, содержащее кодер и связанный с ним декодер,
при этом кодер включает в себя следующие блоки:
- блок МДКП преобразования, выполненный с возможностью преобразования входного сигнала в спектральные коэффициенты;
- блок оценки и квантования норм, выполненный с возможностью группировки спектральных коэффициентов в частотные полосы и оценки нормы для каждой полосы, как средней энергии в полосе;
- блок кодирования норм;
- блок построения психоакустической модели по квантованным нормам, предназначенный для определения важности полос;
- первый блок расчета распределения бит, выполненный с возможностью расчета распределения бит на основе данных о важности психоакустической модели, построенной по квантованным нормам;
- блок квантования и кодирования спектра, выполненный с возможностью кодирования спектра полученным числом бит;
- мультиплексор для передачи кодированных данных в битовый поток;
а декодер включает в себя следующие последовательно связанные блоки:
- демультиплексор, предназначенный для разбития и расшифровки данных потока;
- блок декодирования норм;
- блок деквантования норм;
- блок построения психоакустической модели по восстановленным нормам;
- второй блок расчета распределения бит, выполненный с возможностью расчета распределения бит на основе данных психоакустической модели, построенной по восстановленным нормам;
- блок декодирования и деквантования спектра, выполненный с возможностью декодирования спектра с учетом информации о распределении бит;
- блок масштабирования декодированных спектральных коэффициентов в соответствии с восстановленными нормами;
- блок обратного преобразования спектральных коэффициентов в сигнал во временной области.
Согласно одному из вариантов заявленного изобретения кодер предлагаемого устройства для кодирования/декодирования звукового сигнала дополнительно содержит блок вычисления параметров шума для квантованных в ноль спектральных коэффициентов, передающий вычисленные параметры в поток данных.
Согласно одному из вариантов заявленного изобретения декодер предлагаемого устройства для кодирования/декодирования звукового сигнала дополнительно содержит блок подстановки шума, выполненный с возможностью восстановления подстановкой шума декодированных в ноль спектральных коэффициентов.
Согласно другому варианту заявленного изобретения в настоящей заявке также предлагается устройство для кодирования/декодирования звукового сигнала, содержащее кодер и связанный с ним декодер, при этом кодер включает в себя следующие блоки:
- блок МДКП преобразования, выполненный с возможностью преобразования входного сигнала в спектральные коэффициенты;
- блок оценки и квантования норм, выполненный с возможностью группировки спектральных коэффициентов в частотные полосы и оценки нормы для каждой полосы как средней энергии в полосе;
- блок кодирования норм;
- блок построения психоакустической модели по спектральным коэффициентам, предназначенный для определения важности спектральных коэффициентов;
- блок расчета распределения бит, выполненный с возможностью расчета распределения бит на основе данных о важности психоакустической модели;
- блок квантования и кодирования спектра, выполненный с возможностью кодирования спектра полученным числом бит;
- блок кодирования распределения бит;
- мультиплексор для передачи кодированных данных в битовый поток;
а декодер включает в себя следующие блоки:
- демультиплексор, предназначенный для разбития и расшифровки данных потока;
- блок декодирования норм;
- блок деквантования норм;
- блок декодирования распределения бит, на вход которого поступают данные из потока;
- блок декодирования и деквантования спектра, на вход которого поступают данные о распределении бит и данные из потока;
- блок нормализации декодированных спектральных коэффициентов в соответствии с восстановленными нормами;
- блок обратного преобразования спектральных коэффициентов в сигнал во временной области.
Согласно указанному варианту заявленного изобретения кодер предлагаемого устройства для кодирования/декодирования звукового сигнала дополнительно содержит блок вычисления параметров шума для квантованных в ноль спектральных коэффициентов, передающий вычисленные параметры в поток данных.
Согласно указанному варианту заявленного изобретения декодер предлагаемого устройства для кодирования/декодирования звукового сигнала дополнительно содержит блок подстановки шума, выполненный с возможностью восстановления подстановкой шума декодированных в ноль спектральных коэффициентов.
Для лучшего понимания существа заявляемого изобретения далее приводится его подробное описание с соответствующими чертежами.
На Фиг.1 изображена схема кодера в соответствии с изобретением, где спектральные коэффициенты вычисляются при помощи МДКП преобразования, и средняя энергия вычисляется для полос спектра. Используя среднюю энергии в полосе или энергии спектральных коэффициентов, психоакустическая модель (НАМ) вычисляет параметры важности. Выход модуля НАМ используется для адаптивного распределения бит. Нормализованные спектральные коэффициенты квантуются и кодируются определенным количеством бит в каждой полосе.
На Фиг.2 изображена схема декодера в соответствии с изобретением, где средняя энергия полос и данные о FPC квантовании декодируются из потока. Далее вычисляется распределение бит при помощи модуля ПАМ, основанного на энергии полос. При помощи этой информации декодируются спектральные коэффициенты.
На Фиг.3 изображен другой пример схемы кодера в соответствии с изобретением. Информация о распределении бит кодируется и передается через битовый поток.
На Фиг.4 изображен другой пример схемы декодера в соответствии с изобретением. Информация о распределении бит декодируется из битового потока и используется для декодирования спектральных коэффициентов.
Фиг.5 иллюстрирует блок-схему психоакустической модели, использующей усредненную энергию в полосах для вычисления уровня звукового давления и маскирующего порога слышимости. Для интерполяции точек между серединами полос используются различные функции распространения звука в случае маскирующего порога слышимости и уровня звукового давления.
Фиг.6 иллюстрирует блок-схему психоакустической модели, использующей спектральные коэффициенты для вычисления уровня звукового давления и маскирующего порога слышимости. Функция распространения звука используется для моделирования эффекта маскирования.
На Фиг.7 изображена блок-схема алгоритма распределения бит, в котором число импульсов в полосе определяется по разности между уровнем звукового давления и минимальным значением маскирующего порога. По полученному числу пульсов определяется необходимое число бит. Затем применяются ограничения на количество бит, накладываемые алгоритмом FPC.
Фиг.8 иллюстрирует алгоритм для определения уровня тонального сигнала и применения функции распространения звука с низкой вычислительной сложностью, за счет устранения операции свертки.
На Фиг.9 показана схема перераспределения бит на понятийном уровне, где применяются ограничения на количество бит в полосе, возникающие в алгоритме FPC.
На Фиг.10 показана блок-схема алгоритма масштабирования бит, для поддержания заданной скорости кодирования.
Фиг.11 иллюстрирует процесс подстановки шума с использованием защитного интервала. Спектральные коэффициенты, квантованные в ноль, восстанавливаются генерацией случайного шума. Защитный интервал позволяет снизить избыточную шумность декодированного звука в случае тональных фрагментов сигнала.
Фиг.12 иллюстрирует кодирующее устройство подстановки шума. Информация о шуме вычисляется на основе энергии спектральных коэффициентов, которые квантуются в ноль. Информация о шуме усредняется для вычисления общего уровня шумности на кадр.
Фиг.13 иллюстрирует декодирующее устройство подстановки шума. Информация о шуме декодируется из потока данных и восстанавливается с помощью операции обратной квантованию. Для всех полос, с нулевыми квантованными коэффициентами, случайный шум подставляется в качестве сигнала. Защитный интервал применяется для уменьшения уровня шума в полосах с тональными фрагментами звука.
Фиг.14 иллюстрирует кодирующее и декодирующее устройства адаптивной передачи коэффициента FPC. Коэффициент FPC передается только для полос с повышенной тональностью звука, в случае других полос информация о коэффициенте FPC не передается.
Фиг.15 иллюстрирует быстрый алгоритм для оценки числа пульсов по заданному количеству бит. Алгоритм состоит из двух уровней. На первом уровне вычисляются нижняя и верхняя границы на число пульсов. На втором уровне используется двоичный поиск с малым динамическим диапазоном.
1
2
3
k-1
Блок-схема аудиокодера, используемого в качестве примера, представлена на Фиг.1. Входной временной сигнал попадает в блок 101 МДКП. В зависимости от того, переходный или стационарный тип сигнала был определен, применяется адаптивное частотное преобразование. Для нестационарных сигналов используется более высокое разрешение по времени. Спектральные коэффициенты группируются в полосы с неравными длинами и средняя энергия в полосе (норма) вычисляется для каждой полосы. Нормы квантуются и кодируются (блоки 102, 104). В блоке 106 ПАМ анализируется значимость каждой полосы или частоты, с точки зрения восприятия человеком, и вычисляется маскирующий порог. Для переходных кадров полученные спектральные коэффициенты подкадров перемежаются до группировки, для того чтобы использовать маскирующий эффект для соседних частот в блоке 106 ПАМ. Например, если каждый кадр состоит из четырех подкадров и минимальная длина полосы равна восьми, то два коэффициента из каждого подкадра будут перемежены и разделены на полосы. На следующем шаге биты для кодирования спектральных коэффициентов распределяются между полосами, на основе результатов работы блока 107 НАМ. Из полученного числа бит вычисляется количество импульсов внутри полос и спектральные коэффициенты кодируются при помощи факториального импульсного кодирования (блок 108). Алгоритм FPC использует комбинаторную схему спектральных коэффициентов y={y, y, y,…y}, сохраняя минимальную среднеквадратичную ошибку и ограничение на общее количество импульсов
в каждой полосе. Чтобы свести к минимуму разницу между набором импульсов и нормализованным спектром с точки зрения энергии, вычисляется коэффициент FPC (блок 108) и передается через битовый поток (блок 110). Для всех спектральных коэффициентов, которые были проквантованы в ноль, передается информация о шуме при помощи низкоскоростного алгоритма вычисления параметров шума (блок 109).
Фиг.2 иллюстрирует блок-схему декодирующего устройства, которое соответствует кодирующему устройству на Фиг.1. Данные потока разбиваются и расшифровываются в блоке 211. Данные о нормах декодируются в блоке 212 и восстанавливаются в блоке 216 с помощью операции обратной квантованию. Информация о распределении бит, полученная в кодирующем устройстве, также требуется для декодирования в декодирующем устройстве. Для того чтобы восстановить распределение бит в декодирующем устройстве применяется такая же психоакустическая модель (блок 206) как и на стороне кодирующего устройства, используя декодированные нормы (блок 216). Общее количество бит распределяется среди полос в блоке 207 на основе данных психоакустической модели. Алгоритм распределения бит более детально описан в последующем разделе. Спектральные коэффициенты декодируются и восстанавливаются в блоке 214, используя операцию обратную квантованию. Коэффициенты спектра, декодированные в ноль, восстанавливаются подстановкой шума в блоке 215. Восстановленные коэффициенты спектра масштабируются в соответствии с нормами в блоке 217. Затем применяется обратное преобразование в блоке 218 для восстановления временного сигнала. Психоакустическая модель показана на Фиг.5 и основана на аппроксимации маскирующего порога слышимости и уровня звукового давления, при этом используют усредненную энергию в полосах. Изначально уровень тонального сигнала оценивается для каждой полосы в блоке 512 для того, чтобы получить аппроксимацию уровня звукового давления:
где
- восстановленные значения норм в полосе b, c - усиливающий коэффициент преобразования. Аппроксимация уровня звукового давления спектральных коэффициентов строится на основе функции распространения звука в блоке 500 для уровня тонального сигнала (1) каждой полосы:
где
- отношение индекса полосы к общему количеству, coef - коэффициент, зависящий от типа кадра и целевой скорости кодирования, Bark(i) - частота по шкале Барка для индекса спектрального коэффициента i, i и j индексы спектральных коэффициентов, maskHihg и maskLow - коэффициенты, определяющие наклон функции распространения звука. Функция распространения звука определяет количество маскируемой энергии в позиции j позицией i. Поскольку точное определение тональности каждого коэффициента не используется, то индекс i означает середину полосы.
Уровень тонального сигнала полосы для построения аппроксимации маскирующего порога слышимости вычисляется в блоке 510:
где
- восстановленное значение нормы для полосы b, с усиливающий коэффициент преобразования, РN константа определяющая смещение уровня тонального сигнала. Аппроксимация маскирующего порога каждого спектрального коэффициента строится на основе функции распространения звука в блоке 511 для уровня тонального сигнала (3) каждой полосы:
где Bark(i) - частота по шкале Барка для индекса спектрального коэффициента i, i и j индексы спектральных коэффициентов, maskHihg и maskLow - коэффициенты, определяющие наклон функции распространения звука. Коэффициенты функции распространения звука (3) and (4) могут быть различны.
Вычислительная сложность психоакустической модели на основе полос в несколько раз меньше сложности психоакустической модели для каждого спектрального коэффициента. В заявляемом изобретении предлагается быстрый алгоритм определения уровня тонального сигнала и применения функции распространения звука, показанный на Фиг.8. Для того чтобы уменьшить вычислительную сложность предложено проверять, маскируется ли текущий уровень тонального сигнала (блок 800) предыдущим уровнем тонального сигнала полосы. Если текущий уровень тонального сигнала маскируется, тогда любое распространение звука данным уровнем тонального сигнала маскируется, следовательно, нет необходимости проводить какие-либо расчеты для уровня тонального сигнала текущей полосы. Только для всех незамаскированных уровней тонального сигнала (блок 801) вычисляется функция распространения звука. Для каждого уровня тонального сигнала левый и правый наклон функции распространения звука анализируется и определяется точка пересечения (блок 803). В завершение вычисляется уравнение прямой между точкой пересечения и уровнем тонального сигнала (блоки 802 и 804) и вычисляется единожды значение функции распространения звука. Таким образом, нет необходимости применять свертку в (2) и (4), что существенно снижает вычислительную сложность. Также, в случае использования психоакустической модели на основе полос нет необходимости передавать распределение бит, так как достаточно повторить эти же вычисления в декодирующем устройстве. Выходные данные психоакустической модели используются для распределения бит между полосами спектра.
Фиг.3 иллюстрирует другой пример кодирующего устройства в соответствии с заявляемым изобретением. МДКП (блок 301) применяется для вычисления спектральных коэффициентов из временного сигнала. Спектральные коэффициенты группируются по неравномерно распределенным полосам. Для каждой полосы вычисляется норма, представляющая собой среднюю энергию в полосе. Нормы квантуются в блоке 302 и кодируются в блоке 304. Психоакустическая модель (блок 306) анализирует субъективную важность каждого спектрального коэффициента и вычисляет маскирующий порог слышимости. Общее количество бит распределяется между полосами на основе психоакустической информации (блок 307). Спектральные коэффициенты квантуются алгоритмом FPC в блоке 308 в соответствии с полученным распределением бит по полосам. Информация о распределении бит между полосами кодируется в блоке 310 и передается в поток данных (блок 311). Для всех спектральных коэффициентов, квантованных в ноль, вычисляются необходимые параметры шума, используя низкоскоростной алгоритм в блоке 309. Например, кодирование распределения бит может быть организовано с использованием векторного квантования. В данном случае, нет необходимости на стороне декодирующего устройства выполнять вычисления связанные с психоакустической моделью, так как распределение бит может быть восстановлено по информации, переданной в поток данных. Фиг.6 иллюстрирует блок-схему психоакустической модели построенной для каждого спектрального коэффициента. Уровень звукового давления для каждого спектрального коэффициента вычисляется в блоке 600. Уровень тонального и шумового сигнала вычисляется в блоке 601 и 604. Функция распространения звука применяется (блоки 602 и 605) для тонального и шумового уровня сигнала с целью вычисления маскирующего порога слышимости в блоке (603). Полученный маскирующий порог сравнивается абсолютным порогом слышимости в блоке 606 и выбирается наибольший. Фиг.4 иллюстрирует блок-схему декодирующего устройства, которое соответствует кодирующему устройству на Фиг.3. Поток данных разбивается и расшифровывается в блоке 411. Нормы декодируются в блоке 412 и восстанавливаются в блоке 416. Распределение бит между полосами декодируется из потока в блоке 413. Спектральные коэффициенты декодируются и восстанавливаются в блоке 414. Коэффициенты спектра, декодированные в ноль, восстанавливаются подстановкой шума в блоке 215. Декодированные спектральные коэффициенты нормализуются в соответствии с восстановленными нормами в блоке 417. В завершение обратное преобразование МДКП (блок 418) применяется для восстановления временного сигнала.
Целью алгоритма распределения бит является распределение доступных бит между частотными полосами. Предлагаемый алгоритм использует маскирующий порог и уровни звукового давления, вычисленные в модуле психоакустического анализа.
Независимо от модуля ПАМ, основанного на энергии спектральных полос (106) или на спектральных коэффициентах (306), алгоритм распределения бит работает аналогично. Сначала вычисляется максимальное отношение сигнал/маскирующий порог (СМР) внутри полосы, вместо использования индивидуальных СМР для каждой частоты. Это сделано из-за того, что полосы кодируются совместно, и общие допустимые при квантовании искажения не должны превышать заданные в ПАМ для каждой частоты. Для вычисления максимального СМР, находится минимальное значение маскирующего порога в полосе по формуле 5:
i
min -
где MTH - это маскирующий порог, вычисленный в ПАМ для i-й частоты, MTH это минимальный маскирующий порог среди не превосходящих по значению энергию соответствующих спектральных коэффициентов в полосе.
Число выделенных импульсов m на одну спектральную полосу может быть оценено по формуле 6:
i
где E означает энергию i-й частоты в логарифмическом масштабе (дБ).
Используя вычисленное выше число импульсов, можно оценить количество бит на полосу, при помощи формулы 7:
где n - это длина полосы, m - это число импульсов. Формула 7 требует высокой вычислительной сложности, и в заявляемом изобретении предлагается метод снижения сложности алгоритма оценки числа бит по числу импульсов. Детальное описание этого метода будет приведено ниже.
В качестве другого примера распределения бит, уровень звукового давления вычисляется по средней энергии полосы и минимуму маскирующего порога в полосе, который затем используется для оценки числа импульсов в полосе:
После того как оптимальное число бит на полосу было определено для всех полос, необходимо привести общее число бит на все полосы к значению, определенному в блоке контроля битовой скорости. На Фиг.10 приведена блок-схема данного метода согласно предлагаемому в заявляемом изобретении. Во-первых, вычисляется число импульсов на одну частоту для каждой полосы. Путем прибавления или отнимания некоторого контролирующего коэффициента С из этого числа возможно изменять общее число бит на кадр. Число импульсов, измененное после алгоритма контроля битовой скорости, вычисляется как показано в формуле 9:
После этого применяются ограничения на битовую скорость, которые накладываются из-за свойств самого алгоритма FPC. Для полос, где число выделенных бит оказалось больше максимально возможного в алгоритме FPC, излишек бит будет сохранен в битовом резервуаре. Аналогичным образом биты будут извлечены из полос, где число выделенных бит оказалось меньше минимально возможного для алгоритма FPC.
Затем сохраненные в резервуаре биты будут равномерно распределены между полосами с ненулевым количеством бит, но меньшим максимально возможного для FPC. Если все ненулевые полосы уже равны максимальному порогу, а биты все еще есть, то остаток будет распределен среды самых низкочастотных полос спектра.
Модуль подстановки шума генерирует случайный шум в качестве спектральных коэффициентов, которые были закодированы и восстановлены как ноль. Основная идея подстановки шума заключается в маскировании спектральных дыр случайным шумом. Фиг.11 иллюстрирует принцип подстановки шума. Фиг.12 иллюстрирует блок-схему кодирующего устройства для подстановки шума. Оригинальный и восстановленный спектры используются для определения позиций спектра, в которых необходимо применять подстановку шума. Для участков применения подстановки шума вычисляется средняя амплитуда шума на отсчет в блоке 1200:
b
b
i
где E - средняя амплитуда шума на отсчет в полосе с номером b, S - количество отсчетов квантованных в ноль для полосы с номером b, y - спектральные коэффициенты исходного спектра в полосе b. Количество отсчетов квантованных в ноль вычисляется в блоке 1201:
где
- восстановленный спектр в полосе b. Блок 1202 ограничивает амплитуду шума (10) в соответствии с ограничением на общее количество энергии в полосе и максимальное среднее значение амплитуды спектрального коэффициента:
b
где E - средняя амплитуда шума в полосе b,
восстановленный не в ноль спектр в полосе b.
Амплитуда шума (12) вычисляется для каждой полосы, в которой существует хотя бы один спектральный коэффициент, квантованный в ноль. Далее, амплитуда шума усредняется на кадр по причине уменьшения битовых затрат. Средняя магнитуда шума на кадр квантуется логарифмической шкалой на 8 уровней в блоке 1203 и применяется ограничение на максимальное значение кванта в блоке 1205:
b
где E - средняя амплитуда шума в полосе b, q - номер кванта, F количество полос где применяется подстановка шума. В завершение, средняя амплитуда шума на кадре кодируется тремя битами в блоке 1204.
Фиг.13 иллюстрирует блок-схему декодирующего устройства для подстановки шума. Амплитуда шума декодируется в блоке 1301 и восстанавливается в блоке 1302:
-q
Е=2,
b≤
где E - средняя амплитуда шума на кадр, q - номер кванта. Количество отсчетов восстановленных в ноль определяет в блоке 1306, так же как и в кодирующем устройстве по формуле (11). Для каждой полосы с S2 вычисляется уровень звукового давления в блоке 1308 на основе значения нормы и восстановленного спектра:
где L - длина спектра,
- восстановленное значение нормы в полосе b,
- ненулевой восстановленный спектр в полосе b. Далее, вычисляется защитный интервал в блоке 1307 для уменьшения эффекта шумности. Защитный интервал определяет количество отсчетов вокруг восстановленной частоты, которые не могут быть использованы для подстановки шума:
i
i
j
где spl - уровень звукового давления для ненулевого восстановленного спектра, g i - защитный интервал, Thr - порог для определения необходимости использования защитного интервала с длиной j.
Случайная подстановка шума (блок 1303) основывается на амплитуде шума и ограничениях на значение средней энергии полосы и максимальной амплитуды шума:
i
где noise(X) - генератор случайного шума, при котором средняя амплитуда шума равна X,
- восстановленный спектр в полосе b,
- восстановленный спектр с подставленным шумом. Защитный интервал применяется в блоке 1307 как обнуление g соседних шумовых позиций:
i±j
где
- восстановленный спектр с подставленным шумом, g - защитный интервал для отсчета i±j. Энергия каждой полосы нормализуется в блоке 1304 в соответствии с энергией оригинального спектра:
где
- восстановленный спектр с подставленным шумом,
-  восстановленный спектр в полосе b.
Фиг.14 иллюстрирует блок-схему кодирующего и декодирующего устройства для адаптивного кодирования коэффициента FPC. Квантование FPC (блок 1403) является равномерным скалярным квантованием, в котором номером кванта является количество пульсов:
i
b
i
где z - количество пульсов в позиции i для полосы b, m общее число пульсов в полосе b, y спектральный коэффициент на позиции i в полосе b. Общее количество пульсов определяется в блоке 1400. Квантованный спектр кодируется как номер комбинации в блоке 1404. Уравнение (13) является решением условно-экстремальной задачи минимизации ошибки при квантовании. Данное решение использует коэффициент FPC (блок 1401), который управляет энергией полосы:
i - b
i
i
где zколичество пульсов на позиции i, y - спектральный коэффициент на позиции i, G - оптимальный коэффициент FPC для восстановления спектральных коэффициентов. Таким образом, восстановление спектральных коэффициентов является умножением числа пульсов z на коэффициент G:
,
i
где z - количество пульсов на позиции i,
- спектральный коэффициент на позиции i, G - FPC коэффициент. Вместо коэффициента FPC в поток передается ошибка его предсказания в блоке 1401, поскольку передача коэффициента требует существенных битовых затрат:
b -
i
p
где N длина полосы b, z - количество пульсов на позиции i. Отношение между вычисленным коэффициентом G (14) и предсказанным G (15) называется ошибкой. Передача ошибки предсказания в битовый поток иногда избыточна, поскольку точное значение коэффициента FPC важно только для тональных участков сигнала. Таким образом, полосы с тональным сигналом определяются в блоке 1402 на основе общего числа пульсов или числа бит для полосы. Например, критерием может быть выбрано:
b
b
p
где bits - число бит в полосе, BitsN - количество бит при кодировании N пульсов, G - коэффициент FPC, G - предсказанный коэффициент FPC. Ошибка предсказания коэффициента FPC квантуется и адаптивно передается в поток данных в блоке 1406.
Фиг.14 иллюстрирует блок-схему декодирующего устройства для коэффициента FPC. Общее количество пульсов определяется в блоке 1409. Ошибка предсказания адаптивно декодируется, используя тот же критерий? что и кодирующее устройство. Номер комбинации множества пульсов декодируется в блоке 1410. Кванты спектральных коэффициентов восстанавливаются в блоке 1412. Спектральные коэффициенты восстанавливаются в блоке 1411.
Фиг.15 иллюстрирует предложенный двухуровневый алгоритм для оценки числа пульсов по заданному количеству бит. Данный алгоритм существенно превосходит по вычислительной сложности метод, основанный на двоичном поиске по таблице. На первом уровне нижняя и верхняя границы на число пульсов определяются. На втором уровне выполняется двоичный поиск в малом диапазоне значений. Нижняя граница на число пульсов оценивается в блоке 1500, используя формулу (21). Верхняя граница оценивается в блоке 1501, используя формулу (20). Двоичный поиск между нижней и верхней границей используется для определения точного значения пульсов в блоке 1502. Данное предложение позволяет сократить количество сравнений в несколько раз.
В большинстве случаев число пульсов вычисляется с использованием двоичного поиска по заданной таблице с достаточно большим диапазоном. Таблица, как правило, содержит более 512 элементов, что соответствует как минимум 9-ти сравнениям в случае двоичного поиска. На каждом сравнении выполняется анализ соответствия заданного числа бит и полученного при предположении количества пульсов. Зависимость числа пульсов от количества бит является достаточно сложной:
где b - количество бит, n - длина вектора с пульсами, m - число пульсов.
Выражение (16) может быть упрощено:
где b - количество бит, n - длина вектора с пульсами, m - число пульсов, z(m,n) - полином определяемый как:
В действительности в формуле (17) справедливо равенство z(n,m)=z(m,n), поскольку порядок аргументов не важен. Следовательно, можно оценить число пульсов по заданному количеству бит, используя формулу:
где b - количество бит, n - длина вектора с пульсами, m - число пульсов, Z(n,m) - полином.
Выражения (17) и (18) являются точными, но вычислительная сложность их достаточно высока. В данном изобретении предлагается разделить (18) на два уровня. На первом уровне оцениваются нижняя и верхняя граница, а на втором находится точное значение. Нижняя граница на оценку битовых затрат может быть выражена как:
Выражение (19) позволяет найти нижнюю и верхнюю границы на число пульсов в зависимости от заданного количества:
где b - количество бит, n - длина вектора с пульсами, m - число пульсов, F - смещение, позволяющее определить нижнюю границу на число пульсов:
где n - длина вектора с пульсами. Выражение (21) может быть легко определено для любого значения n с использование моделирования выражений (20) и (16). В большинстве случаев длина меньше, чем 17, что позволяет сделать вывод о необходимости только одного или двух сравнений при двоичном поиске на втором уровне заявляемого алгоритма.
Заявляемое изобретение может найти применение в устройствах, обеспечивающих обработку цифровых сигналов, в частности, в устройствах, предназначенных для сжатия цифровых сигналов, таких как аудио сигналы.
Ссылки
1. ITU-T Rec. G.719, "Low-complexity, full-band audio coding for high-quality, conversational applications," 2008.
2. ITU-T Rec. G.718, "Frame error robust narrowband and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s," 2008.
3. RU 2427978. Кодирование и декодирование аудио.
4. RU 2428748. Кодирование аудиосигнала.
5. RU 2432624. Способ уменьшения объема данных при широкополосном кодировании речевого сигнала.