КОДИРОВАНИЕ ОБОБЩЕННЫХ АУДИОСИГНАЛОВ НА НИЗКИХ СКОРОСТЯХ ПЕРЕДАЧИ БИТОВ И С НИЗКОЙ ЗАДЕРЖКОЙ
CODING OF GENERALISED AUDIO SIGNALS AT LOW BIT RATES AND LOW DELAY

Область техники, к которой относится изобретение
[0002] Настоящее раскрытие сущности относится к устройствам и способам смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала, а также к соответствующему кодеру и декодеру с использованием этих устройств и способов смешанного кодирования во временной области/частотной области.
Уровень техники
[0003] Речевой кодек предшествующего уровня техники может представлять чистый речевой сигнал с очень хорошим качеством со скоростью передачи битов приблизительно в 8 кбит/с и достигать прозрачности на скорости передачи битов в 16 кбит/с. Тем не менее на скоростях передачи битов ниже 16 кбит/с, речевые кодеки с низкой задержкой обработки, чаще всего кодирующие входной речевой сигнал во временной области, не являются подходящими для обобщенных аудиосигналов, таких как музыка и реверберирующая речь. Чтобы преодолевать этот недостаток, введены переключаемые кодеки, по существу с использованием подхода на основе временной области для кодирования входных сигналов с преобладанием речи и подхода на основе частотной области для кодирования обобщенных аудиосигналов. Тем не менее такие переключаемые решения типично требуют большей задержки обработки, необходимой как для классификации речи и музыки, так и для преобразования в частотную область.
[0004] Чтобы преодолевать вышеуказанный недостаток, предлагается более унифицированная модель временной области и частотной области.
Сущность изобретения
[0005] Настоящее раскрытие сущности относится к устройству смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала, содержащему: модуль вычисления доли возбуждения во временной области в ответ на входной звуковой сигнал; модуль вычисления частоты отсечки для доли возбуждения во временной области в ответ на входной звуковой сигнал; фильтр, чувствительный к частоте отсечки, для регулирования частотного охвата доли возбуждения во временной области; модуль вычисления доли возбуждения в частотной области в ответ на входной звуковой сигнал; и сумматор фильтрованной доли возбуждения во временной области и доли возбуждения в частотной области, чтобы формировать смешанное возбуждение во временной области/частотной области, составляющее кодированную версию входного звукового сигнала.
[0006] Настоящее раскрытие сущности также относится к кодеру с использованием модели временной области и частотной области, содержащему: классификатор входного звукового сигнала в качестве речевого или неречевого; кодер только во временной области; вышеописанное устройство смешанного кодирования во временной области/частотной области; и модуль выбора одного из кодера только во временной области и устройства смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала в зависимости от классификации входного звукового сигнала.
[0007] В настоящем раскрытии сущности, описывается устройство смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала, содержащее: модуль вычисления доли возбуждения во временной области в ответ на входной звуковой сигнал, при этом модуль вычисления доли возбуждения во временной области обрабатывает входной звуковой сигнал в последовательных кадрах входного звукового сигнала и содержит модуль вычисления числа субкадров, которые должны быть использованы в текущем кадре входного звукового сигнала, при этом модуль вычисления доли возбуждения во временной области использует в текущем кадре число субкадров, определенное посредством модуля вычисления числа субкадров для текущего кадра; модуль вычисления доли возбуждения в частотной области в ответ на входной звуковой сигнал; и сумматор доли возбуждения во временной области и доли возбуждения в частотной области, чтобы формировать смешанное возбуждение во временной области/частотной области, составляющее кодированную версию входного звукового сигнала.
[0008] Настоящее раскрытие сущности дополнительно относится к декодеру для декодирования звукового сигнала, кодированного с использованием одного из устройств смешанного кодирования во временной области/частотной области, как описано выше, содержащее: преобразователь смешанного возбуждения во временной области/частотной области во временную область; и синтезирующий фильтр для синтезирования звукового сигнала в ответ на смешанное возбуждение во временной области/частотной области, преобразованное во временную область.
[0009] Настоящее раскрытие сущности также относится к способу смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала, содержащему: вычисление доли возбуждения во временной области в ответ на входной звуковой сигнал; вычисление частоты отсечки для доли возбуждения во временной области в ответ на входной звуковой сигнал; в ответ на частоту отсечки, регулирование частотного охвата доли возбуждения во временной области; вычисление доли возбуждения в частотной области в ответ на входной звуковой сигнал; и суммирование отрегулированной доли возбуждения во временной области и доли возбуждения в частотной области, чтобы формировать смешанное возбуждение во временной области/частотной области, составляющее кодированную версию входного звукового сигнала.
[0010] В настоящем раскрытии сущности, дополнительно описывается способ кодирования с использованием модели временной области и частотной области, содержащий: классификацию входного звукового сигнала в качестве речевого или неречевого; предоставление способа кодирования только во временной области; предоставление вышеописанного способа смешанного кодирования во временной области/частотной области и выбор одного из способа кодирования только во временной области и способа смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала в зависимости от классификации входного звукового сигнала.
[0011] Настоящее раскрытие сущности еще дополнительно относится к способу смешанного кодирования во временной области/частотной области для кодирования входного звукового сигнала, содержащему: вычисление доли возбуждения во временной области в ответ на входной звуковой сигнал, при этом вычисление доли возбуждения во временной области содержит обработку входного звукового сигнала в последовательных кадрах входного звукового сигнала и вычисление числа субкадров, которые должны быть использованы в текущем кадре входного звукового сигнала, при этом вычисление доли возбуждения во временной области также содержит использование в текущем кадре числа субкадров, вычисленного для текущего кадра; вычисление доли возбуждения в частотной области в ответ на входной звуковой сигнал; и суммирование доли возбуждения во временной области и доли возбуждения в частотной области, чтобы формировать смешанное возбуждение во временной области/частотной области, составляющее кодированную версию входного звукового сигнала.
[0012] В настоящем раскрытии сущности, дополнительно описан способ декодирования звукового сигнала, кодированного с использованием одного из способов смешанного кодирования во временной области/частотной области, как описано выше, содержащий: преобразование смешанного возбуждения во временной области/частотной области во временную область; и синтезирование звукового сигнала через синтезирующий фильтр в ответ на смешанное возбуждение во временной области/частотной области, преобразованное во временную область.
[0013] Вышеприведенные и другие признаки должны становиться более понятными после прочтения нижеприведенного неограничивающего описания иллюстративного варианта осуществления предложенной модели временной области и частотной области, представленного только в качестве примера со ссылкой на прилагаемые чертежи.
Краткое описание чертежей
[0014] На прилагаемых чертежах:
[0015] Фиг.1 является принципиальной блок-схемой, иллюстрирующей общее представление улучшенного кодера на основе CELP (линейного прогнозирования с возбуждением по коду), например, кодера на основе ACELP (линейного прогнозирования с возбуждением по алгебраическому коду);
[0016] Фиг.2 является блок-схемой более подробной структуры улучшенного CELP-кодера по фиг.1;
[0017] Фиг.3 является блок-схемой общего представления модуля вычисления частоты отсечки;
[0018] Фиг.4 является блок-схемой более подробной структуры модуля вычисления частоты отсечки по фиг.3;
[0019] Фиг.5 является блок-схемой общего представления частотного квантователя; и
[0020] Фиг.6 является блок-схемой более подробной структуры частотного квантователя по фиг.5.
Подробное описание
[0021] Предложенная более унифицированная модель временной области и частотной области позволяет повышать качество синтеза для обобщенных аудиосигналов, таких как, например, музыка и/или реверберирующая речь без увеличения задержки обработки и скорости передачи битов. Эта модель работает, например, в области остатка линейного прогнозирования (LP), в которой доступные биты динамически выделяются для адаптивной таблицы кодирования, одной или более фиксированных таблиц кодирования (например, алгебраической таблицы кодирования, гауссовой таблицы кодирования и т.д.) и режима кодирования в частотной области, в зависимости от характеристик входного сигнала.
[0022] Чтобы достигать речевого кодека с низкой скоростью передачи битов и низкой задержкой обработки, который повышает качество синтеза обобщенных аудиосигналов, таких как музыка и/или реверберирующая речь, режим кодирования в частотной области может быть интегрирован максимально тесно с режимом кодирования во временной области на основе CELP (линейного прогнозирования с возбуждением по коду). С этой целью, режим кодирования в частотной области использует, например, преобразование частоты, выполняемое в области LP-остатка. Это обеспечивает переключение практически без артефакта от одного кадра, например, кадра в 20 мс, на другой. Кроме того, интеграция двух (2) режимов кодирования является достаточно тесной так, что она обеспечивает динамическое повторное выделение битового бюджета другому режиму кодирования, если определено то, что текущий режим кодирования не является достаточно эффективным.
[0023] Один признак предложенной более унифицированной модели временной области и частотной области представляет собой поддержку регулируемого времени компонента временной области, который варьируется от четверти кадра до полного кадра на покадровой основе, и называется субкадром. В качестве иллюстративного примера, кадр представляет 20 мс входного сигнала. Это соответствует 320 выборкам, если внутренняя частота дискретизации кодека составляет 16 кГц, или 256 выборкам на каждый кадр, если внутренняя частота дискретизации кодека составляет 12,8 кГц. В таком случае, четверть кадра (субкадр) представляет 64 или 80 выборок в зависимости от внутренней частоты дискретизации кодека. В следующем иллюстративном варианте осуществления, внутренняя частота дискретизации кодека составляет 12,8 кГц, предоставляя длину кадра в 256 выборок. Поддержка регулируемого времени позволяет захватывать главные временные события с минимальной скоростью передачи битов, чтобы создавать базовую долю возбуждения во временной области. На очень низкой скорости передачи битов поддержка времени обычно является целым кадром. В этом случае, доля временной области в сигнале возбуждения состоит только из адаптивной таблицы кодирования, и соответствующая информация основного тона с соответствующим коэффициентом усиления передаются один раз на каждый кадр. Когда доступна большая скорость передачи битов, можно захватывать больше временных событий посредством сокращения поддержки времени (и увеличения скорости передачи битов, выделяемой режиму кодирования во временной области). В конечном счете, когда поддержка времени является достаточно короткой (вплоть до четверти кадра), и доступная скорость передачи битов является достаточно высокой, доля временной области может включать в себя долю адаптивной таблицы кодирования, долю фиксированной таблицы кодирования или и то, и другое, с соответствующими коэффициентами усиления. Параметры, описывающие индексы и коэффициенты усиления таблиц кодирования, затем передаются для каждого субкадра.
[0024] На низкой скорости передачи битов речевые кодеки не допускают надлежащее кодирование верхних частот. Это приводит к существенному ухудшению качества синтеза, когда входной сигнал включает в себя музыку и/или реверберирующую речь. Чтобы разрешать эту проблему, добавляется признак для того, чтобы вычислять эффективность доли возбуждения во временной области. В некоторых случаях, независимо от входной скорости передачи битов и поддержки временных кадров, доля возбуждения во временной области не является значимой. В этих случаях, все биты повторно выделяются следующему этапу кодирования в частотной области. Но большую часть времени, доля возбуждения во временной области является значимой только вплоть до определенной частоты (частоты отсечки). В этих случаях, доля возбуждения во временной области отфильтровывается выше частоты отсечки. Операция фильтрации позволяет хранить значимую информацию, кодированную с помощью доли возбуждения во временной области, и удалять незначимую информацию выше частоты отсечки. В иллюстративном варианте осуществления, фильтрация выполняется в частотной области посредством задания элементов разрешения по частоте выше определенной частоты равными нулю.
[0025] Поддержка регулируемого времени в сочетании с переменной частотой отсечки обеспечивает высокую динамику выделению битов в интегрированной модели временной области и частотной области. Скорость передачи битов после квантования LP-фильтра может выделяться полностью временной области или полностью частотной области или в промежутке. Выделение скорости передачи битов между временными и частотными областями осуществляется в качестве функции от числа субкадров, используемых для доли временной области, из доступного битового бюджета и вычисленной частоты отсечки.
[0026] Чтобы создавать полное возбуждение, которое более эффективно совпадает с входным остатком, применяется режим кодирования в частотной области. Признак в настоящем раскрытии сущности заключается в том, что кодирование в частотной области выполняется для вектора, который содержит разность между частотным представлением (преобразованием частоты) входного LP-остатка и частотным представлением (преобразованием частоты) фильтрованной доли возбуждения во временной области вплоть до частоты отсечки и который содержит частотное представление (преобразование частоты) входного LP-остатка непосредственно выше этой частоты отсечки. Сглаженный переход спектра вставляется между обоими сегментами чуть выше частоты отсечки. Другими словами, сначала обнуляется высокочастотная часть частотного представления доли возбуждения во временной области. Переходная область между неизменной частью спектра и обнуленной частью спектра вставляется чуть выше частоты отсечки, чтобы обеспечивать сглаженный переход между обеими частями спектра. Этот модифицированный спектр доли возбуждения во временной области затем вычитается из частотного представления входного LP-остатка. Результирующий спектр тем самым соответствует разности обоих спектров ниже частоты отсечки и частотному представлению LP-остатка выше ее с некоторой переходной областью. Частота отсечки, как упомянуто выше, может варьироваться между кадрами.
[0027] Безотносительно выбранного способа частотного квантования (режима кодирования в частотной области), всегда существует возможность опережающего эхо, особенно при длинных окнах. В этой технологии, используемые окна являются квадратными окнами, так что дополнительная длина окна по сравнению с кодированным сигналом является нулевой (0), т.е. суммирование с перекрытием не используется. Хотя это соответствует оптимальному окну для того, чтобы уменьшать любое потенциальное опережающее эхо, некоторое опережающее эхо при этом может быть слышимым при временных атаках. Предусмотрено множество технологий для того, чтобы разрешать такую проблему опережающего эхо, но настоящее раскрытие сущности предлагает простой признак для подавления этой проблемы опережающего эхо. Этот признак основан на режиме  кодирования без запоминания во временной области, который получен из документа "Transition Mode" рекомендации ITU-T G.718; ссылочный документ [ITU-T Recommendation G.718 "Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s", июнь 2008 года, раздел 6.8.1.4 и раздел 6.8.4.2]. Идея в основе этого признака состоит в том, чтобы использовать преимущество того факта, что предложенная более унифицированная модель временной области и частотной области интегрируется в область LP-остатка, что обеспечивает переключение без артефакта практически в любое время. Когда сигнал считается обобщенным аудио (музыкой и/или реверберирующей речью), и когда временная атака обнаруживается в кадре, то только этот кадр кодируется с помощью этого специального режима  кодирования без запоминания во временной области. Этот режим должен контролировать временные атаки, тем самым исключая опережающее эхо, которое может быть введено при кодировании в частотной области этого кадра.
Иллюстративный вариант осуществления
[0028] В предложенной более унифицированной модели временной области и частотной области, вышеуказанная адаптивная таблица кодирования, одна или более фиксированных таблиц кодирования (например, алгебраическая таблица кодирования, гауссова таблица кодирования и т.д.), т.е. так называемые таблицы кодирования во временной области, и квантование частотной области (режим кодирования в частотной области) могут рассматриваться в качестве библиотеки таблиц кодирования, и биты могут распределяться между всеми доступными таблицами кодирования или их поднабором. Это означает, например, что если входной звуковой сигнал является чистой речью, все биты должны выделяться режиму кодирования во временной области, по существу сокращая кодирование для унаследованной схемы CELP. С другой стороны, для некоторых музыкальных сегментов, все биты, выделяемые для того, чтобы кодировать входной LP-остаток, иногда лучше всего расходуются в частотной области, например, в области преобразования.
[0029] Как указано в вышеприведенном описании, временная поддержка для режимов кодирования временной области и частотной области не обязательно должна быть идентичной. Хотя биты, расходуемые на различные способы квантования во временной области (поиски в адаптивной и алгебраической таблице кодирования), обычно распределяются на основе субкадров (типично для четверти кадра или в 5 мс для поддержки времени), биты, выделяемые режиму кодирования в частотной области, распределяются на основе кадров (типично в 20 мс для поддержки времени), чтобы улучшать частотное разрешение.
[0030] Битовый бюджет, выделяемый режиму CELP-кодирования во временной области, также может динамически управляться в зависимости от входного звукового сигнала. В некоторых случаях, битовый бюджет, выделяемый режиму CELP-кодирования во временной области, может быть нулевым, что фактически означает то, что общий битовый бюджет приписывается режиму кодирования в частотной области. Выбор обработки в области LP-остатка для подходов на основе временной области и частотной области обладает двумя (2) основными преимуществами. Во-первых, он является совместимым с режимом CELP-кодирования, доказавшим свою эффективность при кодировании речевых сигналов. Следовательно, не вводятся артефакты вследствие переключения между двумя типами режимов кодирования. Во-вторых, меньшая динамика LP-остатка относительно исходного входного звукового сигнала и его относительная плоскостность упрощает использование квадратного окна для преобразований частоты, тем самым обеспечивая использование неперекрывающегося окна.
[0031] В неограничивающем примере, в котором внутренняя частота дискретизации кодека составляет 12,8 кГц (что означает 256 выборок на каждый кадр), аналогично рекомендации ITU-T G.718, длина субкадров, используемых в режиме CELP-кодирования во временной области, может варьироваться от типичной 1/4 длины кадра (5 мс) до половины кадра (10 мс) или длины полного кадра (20 мс). Решение по длине субкадра основано на доступной скорости передачи битов и на анализе входного звукового сигнала, в частности, на спектральной динамике этого входного звукового сигнала. Решение по длине субкадра может приниматься в режиме с замкнутым контуром. Чтобы снижать сложность, также можно базировать решение по длине субкадра на режиме с разомкнутым контуром. Длина субкадра может быть изменена между кадрами.
[0032] После того как длина субкадров выбирается в конкретном кадре, выполняется стандартный анализ основного тона с замкнутым контуром, и первая доля в сигнале возбуждения выбирается из адаптивной таблицы кодирования. Затем, в зависимости от доступного битового бюджета и характеристик входного звукового сигнала (например, в случае входного речевого сигнала), вторая доля из одной или нескольких фиксированных таблиц кодирования может добавляться перед кодированием в области преобразования. Результирующее возбуждение называется долей возбуждения во временной области. С другой стороны, на очень низких скоростях передачи битов и в случае обобщенного аудио, зачастую лучше пропускать стадию фиксированной таблицы кодирования и использовать все оставшиеся биты для режима кодирования в области преобразования. Режим кодирования в области преобразования может быть, например, режимом кодирования в частотной области. Как описано выше, длина субкадра может иметь длину в одну четверть кадра, в одну половину кадра или в один кадр. Доля фиксированной таблицы кодирования используется только в том случае, если длина субкадра равна одной четверти длины кадра. В случае если длина субкадра определяется как составляющая половину кадра или целый кадр, то только доля адаптивной таблицы кодирования используется для того, чтобы представлять возбуждение во временной области, и все оставшиеся биты выделяются режиму кодирования в частотной области.
[0033] После того как завершено вычисление доли возбуждения во временной области, ее эффективность должна оцениваться и квантоваться. Если выигрыш кодирования во временной области является очень низким, более эффективно полностью удалять долю возбуждения во временной области и использовать все биты для режима кодирования в частотной области вместо этого. С другой стороны, например, в случае чистой входной речи, режим кодирования в частотной области не требуется, и все биты выделяются режиму кодирования во временной области. Но зачастую кодирование во временной области является эффективным только вплоть до определенной частоты. Эта частота называется частотой отсечки доли возбуждения во временной области. Определение такой частоты отсечки обеспечивает то, что кодирование полностью во временной области помогает получать лучший конечный синтез по сравнению с обработкой кодирования в частотной области.
[0034] Частота отсечки оценивается в частотной области. Чтобы вычислять частоту отсечки, спектры как LP-остатка, так и кодированной доли временной области сначала разбиваются на предварительно заданное число полос частот. Число полос частот и число элементов разрешения по частоте, покрываемых посредством каждой полосы частот, могут варьироваться между реализациями. Для каждой из полос частот нормализованная корреляция вычисляется между частотным представлением доли возбуждения во временной области и частотным представлением LP-остатка, и корреляция сглаживается между смежными полосами частот. Корреляции на каждую полосу частот являются более низкими с ограничением 0,5 и нормализуются между 0 и 1. Средняя корреляция затем вычисляется в качестве среднего корреляций для всех полос частот. Для цели первой оценки частоты отсечки средняя корреляция затем масштабируется между 0 и половиной частоты дискретизации (при этом половина частоты дискретизации соответствует значению нормализованной корреляции в 1). Первая оценка частоты отсечки затем находится в качестве верхней границы полосы частот, являющейся ближайшей к этому значению. В примере реализации, шестнадцать (16) полос частот в 12,8 кГц задаются для вычисления корреляции.
[0035] С использованием преимущества психоакустических свойств человеческого уха, повышается надежность оценки частоты отсечки посредством сравнения оцененной позиции частоты 8-ой гармоники основного тона с частотой отсечки, оцененной посредством вычисления корреляции. Если эта позиция выше частоты отсечки, оцененной посредством вычисления корреляции, частота отсечки модифицируется так, что она соответствует позиции частоты 8-ой гармоники основного тона. Конечное значение частоты отсечки затем квантуется и передается. В примере реализации, 3 или 4 бита используются для такого квантования, давая 8 или 16 возможных частот отсечки в зависимости от скорости передачи битов.
[0036] После того, как известна частота отсечки, выполняется частотное квантование доли возбуждения в частотной области. Сначала определяется разность между частотным представлением (преобразованием частоты) входного LP-остатка и частотным представлением (преобразованием частоты) доли возбуждения во временной области. Затем создается новый вектор, состоящий из этой разности вплоть до частоты отсечки и плавного перехода в частотное представление входного LP-остатка для оставшегося спектра. Частотное квантование затем применяется к совершенно новому вектору. В примере реализации, квантование состоит в кодировании знака и позиции преобладающих (наиболее энергетических) спектральных импульсов. Число импульсов, которые должны быть квантованы на каждую полосу частот, связано со скоростью передачи битов, доступной для режима кодирования в частотной области. Если доступно недостаточно битов для того, чтобы покрывать все полосы частот, оставшиеся полосы частот заполняются только шумом.
[0037] Частотное квантование полосы частот с использованием способа квантования, описанного в предыдущем абзаце, не гарантирует, что все элементы разрешения по частоте в этой полосе частот квантуются. Это является, в частности, истинным на низких скоростях передачи битов, на которых число импульсов, квантованных на каждую полосу частот, является относительно низким. Чтобы предотвращать появление звуковых артефактов вследствие этих неквантованных элементов разрешения, добавляется некоторый шум для того, чтобы заполнять эти интервалы отсутствия сигнала. Поскольку на низких скоростях передачи битов квантованные импульсы должны преобладать в спектре над вставленным шумом, амплитуда спектра шума соответствует только части амплитуды импульсов. Амплитуда добавленного шума в спектре является более высокой, когда доступный битовый бюджет является низким (обеспечивая больший шум), и более низкой, когда доступный битовый бюджет является высоким.
[0038] В режиме кодирования в частотной области коэффициенты усиления вычисляются для каждой полосы частот, чтобы сопоставлять энергию неквантованного сигнала с квантованным сигналом. Коэффициенты усиления векторно квантуются и применяются на каждую полосу частот к квантованному сигналу. Когда кодер изменяет свое выделение битов с режима кодирования только во временной области на режим смешанного кодирования во временной области/частотной области, энергия спектра возбуждения на каждую полосу частот режима кодирования только во временной области не совпадает с энергией спектра возбуждения на каждую полосу частот режима смешанного кодирования во временной области/частотной области. Это несовпадение энергии может создавать некоторые артефакты при переключении, в частности, на низкой скорости передачи битов. Чтобы уменьшать слышимое ухудшение качества, созданное посредством этого повторного выделения битов, долговременный коэффициент усиления может вычисляться для каждой полосы частот и может применяться, чтобы корректировать энергию каждой полосы частот для нескольких кадров после переключения с режима кодирования во временной области на режим смешанного кодирования во временной области/частотной области.
[0039] После завершения режима кодирования в частотной области полное возбуждение находится посредством суммирования доли возбуждения в частотной области с частотным представлением (преобразованием частоты) доли возбуждения во временной области, и затем сумма долей возбуждения преобразуется обратно во временную область, чтобы формировать полное возбуждение. В завершение, синтезированный сигнал вычисляется посредством фильтрации полного возбуждения через синтезирующий LP-фильтр. В одном варианте осуществления, в то время как компоненты памяти CELP-кодирования обновляются на основе субкадров с использованием только доли возбуждения во временной области, полное возбуждение используется для того, чтобы обновлять эти компоненты памяти на кадровых границах. В другой возможной реализации, компоненты памяти CELP-кодирования обновляются на основе субкадров, а также на кадровых границах с использованием только доли возбуждения во временной области. Это приводит к встроенной структуре, в которой квантованный сигнал частотной области составляет верхний слой квантования, независимый от базового CELP-слоя. В данном случае, фиксированная таблица кодирования всегда используется для того, чтобы обновлять контент адаптивной таблицы кодирования. Тем не менее режим кодирования в частотной области может применяться к целому кадру. Этот встроенный подход работает для скоростей передачи битов приблизительно в 12 кбит/с и выше.
1) Классификация типов звуков
[0040] Фиг.1 является принципиальной блок-схемой, иллюстрирующей общее представление улучшенного CELP-кодера 100, например, ACELP-кодера. Конечно, другие типы улучшенных CELP-кодеров могут быть реализованы с использованием идентичного принципа. Фиг.2 является принципиальной блок-схемой более подробной структуры улучшенного CELP-кодера 100.
[0041] CELP-кодер 100 содержит препроцессор 102 (фиг.1) для анализа параметров входного звукового сигнала 101 (фиг.1 и 2). Ссылаясь на фиг.2, препроцессор 102 содержит LP-анализатор 201 входного звукового сигнала 101, спектральный анализатор 202, анализатор 203 основного тона с разомкнутым контуром и классификатор 204 сигналов. Анализаторы 201 и 202 выполняют LP- и спектральный анализ, обычно выполняемый при CELP-кодировании, как описано, например, в рекомендации ITU-T G.718, разделы 6.4 и 6.1.4, и, следовательно, не описываются дополнительно в настоящем раскрытии сущности.
[0042] Препроцессор 102 осуществляет первый уровень анализа, чтобы классифицировать входной звуковой сигнал 101 между речевым и неречевым (обобщенное аудио (музыка или реверберирующая речь)), например, способом, аналогичным способу, описанному в ссылочном документе [T.Vaillancourt et al., "Inter-tone noise reduction in the low bit rate CELP decoder", Proc. IEEEICASSP, Тайбэй, Тайвань, апрель 2009 года, стр.4113-16], содержимое которого полностью содержится в данном документе по ссылке, или с помощью любых других надежных способов различения речевых/неречевых сигналов.
[0043] После этого первого уровня анализа препроцессор 102 выполняет второй уровень анализа параметров входного сигнала, чтобы обеспечивать использование CELP-кодирования во временной области (без кодирования в частотной области) для некоторых звуковых сигналов с сильными неречевыми характеристиками, которые при этом еще лучше кодируются с помощью подхода на основе временной области. Когда возникает важное изменение энергии, этот второй уровень анализа дает возможность CELP-кодеру 100 переключаться в режим  кодирования без запоминания во временной области, в общем, называемый переходным режимом в ссылочном документе [Eksler, V. и Jelinek, M. (2008), "Transition mode coding for source controlled CELP codecs", IEEE Proceedings of International Conference on Acoustics, Speech and Signal Processing, март-апрель, стр.4001-40043], содержимое которого полностью содержится в данном документе по ссылке.
[0044] В ходе этого второго уровня анализа классификатор 204 сигналов вычисляет и использует изменение  сглаженной версии  корреляции основного тона с разомкнутым контуром из анализатора 203 основного тона с разомкнутым контуром, текущую полную энергию  кадра и разность между текущей полной энергией кадра и предыдущей полной энергией  кадра. Сначала изменение сглаженной корреляции основного тона с разомкнутым контуром вычисляется следующим образом:
,
где:
является сглаженной корреляцией основного тона с разомкнутым контуром, заданной следующим образом:
является корреляцией основного тона с разомкнутым контуром, вычисленной посредством анализатора 203 с использованием способа, известного специалистам в данной области техники CELP-кодирования, например, как описано в рекомендации ITU-T G.718, раздел 6.6;
является средним по последним 10 кадрам сглаженной корреляции  основного тона с разомкнутым контуром;
является изменением сглаженной корреляции основного тона с разомкнутым контуром.
[0045] Когда в ходе первого уровня анализа классификатор 204 сигналов классифицирует кадр в качестве неречевого, следующие верификации выполняются посредством классификатора 204 сигналов, чтобы определять на втором уровне анализа то, безопасно или нет использовать режим смешанного кодирования во временной области/частотной области. Иногда тем не менее лучше кодировать текущий кадр с помощью режима кодирования во временной области только, с использованием одного из подходов на основе временной области, оцененных посредством функции предварительной обработки режима кодирования во временной области. В частности, может быть лучше использовать режим  кодирования без запоминания во временной области, чтобы сводить к минимуму любое возможное опережающее эхо, которое может быть введено в режиме смешанного кодирования во временной области/частотной области.
[0046] В качестве первой верификации того, должно или нет использоваться смешанное кодирование во временной области/частотной области, классификатор 204 сигналов вычисляет разность между текущей полной энергией кадра и предыдущей полной энергией кадра. Когда разность  между текущей полной энергией  кадра и предыдущей полной энергией кадра выше 6 дБ, это соответствует так называемой "временной атаке" во входном звуковом сигнале. В таком случае, решение относительно речевых/неречевых сигналов и выбранный режим кодирования перезаписываются, и предписывается режим кодирования без запоминания во временной области. Более конкретно, улучшенный CELP-кодер 100 содержит модуль 103 выбора кодирования только во времени/во времени и по частоте (фиг.1), непосредственно содержащий модуль 205 выбора речи/ обобщенного аудио (фиг.2), детектор 208 временных атак (фиг.2) и модуль 206 выбора режима  кодирования без запоминания во временной области. Другими словами, в ответ на определение неречевого сигнала (обобщенного аудио) посредством модуля 205 выбора и обнаружения временной атаки во входном звуковом сигнале посредством детектора 208, модуль 206 выбора предписывает CELP-кодеру 207 с замкнутым контуром (фиг.2) использовать режим  кодирования без запоминания во временной области. CELP-кодер 207 с замкнутым контуром является частью кодера 104 только во временной области по фиг.1.
[0047] В качестве второй верификации, когда разность  между текущей полной энергией  кадра и предыдущей полной энергией кадра ниже или равна 6 дБ, но:
- сглаженная корреляция  основного тона с разомкнутым контуром выше 0,96; или
- сглаженная корреляция  основного тона с разомкнутым контуром выше 0,85, и разность  между текущей полной энергией  кадра и предыдущей полной энергией кадра ниже 0,3 дБ; или
- изменение сглаженной корреляции  основного тона с разомкнутым контуром ниже 0,1, и разность  между текущей полной энергией  кадра и последней предыдущей полной энергией кадра ниже 0,6 дБ; или
- текущая полная энергия  кадра ниже 20 дБ;
- и он представляет собой, по меньшей мере, второй последовательный кадр (), в котором решение в отношении первого уровня анализа должно быть изменено, в таком случае модуль 205 выбора речи/обобщенного аудио определяет то, что текущий кадр должен быть кодирован с использованием режима только во временной области с использованием обобщенного CELP-кодера 207 с замкнутым контуром (фиг.2).
[0048] В противном случае, модуль 103 выбора кодирования во времени/во времени и по частоте выбирает режим смешанного кодирования во временной области/частотной области, который выполняется посредством устройства смешанного кодирования во временной области/частотной области, раскрытого в нижеприведенном описании.
[0049] Это может обобщаться, например, когда неречевой звуковой сигнал является музыкой с помощью следующего псевдокода:
если (обобщенное аудио)
если
режим кодирования = во временной области, без запоминания
cnt=1
еще если
cnt++
если (cnt>=2)
режим кодирования = во временной области
еще
режим кодирования = смешанный в временной/частотной области
При этом  является текущей энергией кадра, выражаемой следующим образом:
(где x(i) представляет выборки входного звукового сигнала в кадре), и  является разностью между текущей полной энергией  кадра и последней предыдущей полной энергией кадра.
2) Решение в отношении длины субкадра
[0050] В типичном CELP, выборки входного звукового сигнала обрабатываются в кадрах по 10-30 мс, и эти кадры разделяются на несколько субкадров для анализа фиксированной таблицы кодирования и адаптивной таблицы кодирования. Например, кадр в 20 мс (256 выборок, когда внутренняя частота дискретизации составляет 12,8 кГц) может быть использован и разделен на 4 субкадра по 5 мс. Переменная длина субкадра является признаком, используемым для того, чтобы получать полную интеграцию временной области и частотной области в один режим кодирования. Длина субкадра может варьироваться от типичной  длины кадра до половины кадра или длины полного кадра. Конечно, может быть реализовано использование другого числа субкадров (длины субкадра).
[0051] Решение в отношении длины субкадров (числа субкадров) или поддержки времени принимается посредством модуля 210 вычисления числа субкадров на основе доступной скорости передачи битов и анализа входного сигнала в препроцессоре 102, в частности, высокочастотной спектральной динамики входного звукового сигнала 101 из анализатора 209, и анализа основного тона с разомкнутым контуром, включающего в себя сглаженную корреляцию основного тона с разомкнутым контуром из анализатора 203. Анализатор 209 является чувствительным к информации из спектрального анализатора 202, чтобы определять высокочастотную спектральную динамику входного сигнала 101. Спектральная динамика вычисляется из признака, описанного в рекомендации ITU-T G.718, раздел 6.7.2.2, в качестве входного спектра без минимального уровня шума, предоставляющего представление динамики входного спектра. Когда средняя спектральная динамика входного звукового сигнала 101 в полосе частот между 4,4 кГц и 6,4 кГц, определенная посредством анализатора 209, ниже 9,6 дБ, и последний кадр считается имеющим высокую спектральную динамику, входной сигнал 101 больше не считается имеющим высокий динамический спектральный контент в верхних частотах. В этом случае, большее число битов может выделяться частотам ниже, например, 4 кГц, посредством добавления большего числа субкадров в режим кодирования во временной области или посредством задействования большего числа импульсов в части нижних частот доли частотной области.
[0052] С другой стороны, если увеличение средней динамики контента верхних частот входного сигнала 101 по сравнению со средней спектральной динамикой последнего кадра, который не считается имеющим высокую спектральную динамику, как определено посредством анализатора 209, превышает, например, 4,5 дБ, входной звуковой сигнал 101 считается имеющим высокий динамический спектральный контент выше, например, 4 кГц. В этом случае, в зависимости от доступной скорости передачи битов, некоторые дополнительные биты используются для кодирования высоких частот входного звукового сигнала 101, чтобы обеспечивать одно или более кодирований частотных импульсов.
[0053] Длина субкадра, определенная посредством модуля 210 вычисления (фиг.2), также зависит от доступного битового бюджета. На очень низкой скорости передачи битов, например, на скоростях передачи битов ниже 9 кбит/с, только один субкадр доступен для кодирования во временной области, в противном случае, число доступных битов является недостаточным для кодирования в частотной области. Для средних скоростей передачи битов, например, для скоростей передачи битов между 9 кбит/с и 16 кбит/с, один субкадр используется для случая, в котором высокие частоты содержат высокий динамический спектральный контент, и два субкадра - если нет. Для средних и высоких скоростей передачи битов, например, для скоростей передачи битов приблизительно в 16 кбит/с и выше, случай четырех (4) субкадров также становится доступным, если сглаженная корреляция  основного тона с разомкнутым контуром, как задано в абзаце [0037] раздела классификации типов звуков, выше 0,8.
[0054] Хотя случай с одним или двумя субкадрами ограничивает кодирование во временной области долей только адаптивной таблицы кодирования (с кодированным запаздыванием основного тона и коэффициентом усиления основного тона), т.е. фиксированная таблица кодирования не используется в этом случае, четыре (4) субкадра разрешают доли адаптивной и фиксированной таблицы кодирования, если доступный битовый бюджет является достаточным. Случай четырех (4) субкадров разрешен, начиная приблизительно с 16 кбит/с и выше. Вследствие ограничений по битовому бюджету возбуждение во временной области состоит только из доли адаптивной таблицы кодирования на более низких скоростях передачи битов. Простая доля фиксированной таблицы кодирования может добавляться для более высоких скоростей передачи битов, например, начиная с 24 кбит/с. Для всех случаев эффективность кодирования во временной области оценивается впоследствии для того, чтобы определять то, до какой частоты такое кодирование во временной области является значимым.
3) Анализ основного тона с замкнутым контуром
[0055] Когда используется режим смешанного кодирования во временной области/частотной области, выполняются анализ основного тона с замкнутым контуром и после этого, если требуется, поиск в фиксированной алгебраической таблице кодирования. С этой целью, CELP-кодер 100 (фиг.1) содержит модуль 105 вычисления доли возбуждения во временной области (фиг.1 и 2). Этот модуль вычисления дополнительно содержит анализатор 211 (фиг.2), чувствительный к анализу основного тона с разомкнутым контуром, осуществляемому в анализаторе 203 основного тона с разомкнутым контуром, и к определению длины субкадра (или числа субкадров в кадре) в модуле 210 вычисления, чтобы выполнять анализ основного тона с замкнутым контуром. Анализ основного тона с замкнутым контуром известен специалистам в данной области техники, и пример реализации описывается, например, в ссылочном документе [рекомендация ITU-T G.718; раздел 6.8.4.1.4.1], причем его содержимое полностью содержится в данном документе по ссылке. Анализ основного тона с замкнутым контуром приводит к вычислению параметров основного тона, также известных как параметры адаптивной таблицы кодирования, которые, главным образом, состоят из запаздывания основного тона (индекса T адаптивной таблицы кодирования) и коэффициента усиления основного тона (или коэффициента усиления b адаптивной таблицы кодирования). Доля адаптивной таблицы кодирования обычно представляет собой предыдущее возбуждение при задержке T или его интерполированную версию. Индекс T адаптивной таблицы кодирования кодируется и передается в удаленный декодер. Коэффициент усиления b основного тона также квантуется и передается в удаленный декодер.
[0056] Когда анализ основного тона с замкнутым контуром завершен, CELP-кодер 100 содержит фиксированную таблицу 212 кодирования, в которой выполняется поиск для того, чтобы находить оптимальные параметры фиксированной таблицы кодирования, обычно содержащие индекс фиксированной таблицы кодирования и коэффициент усиления фиксированной таблицы кодирования. Индекс и коэффициент усиления фиксированной таблицы кодирования формируют долю фиксированной таблицы кодирования. Индекс фиксированной таблицы кодирования кодируется и передается в удаленный декодер. Коэффициент усиления фиксированной таблицы кодирования также квантуется и передается в удаленный декодер. Считается, что фиксированная алгебраическая таблица кодирования и выполнение поиска в ней известно специалистам в данной области техники CELP-кодирования и, следовательно, не описывается в настоящем раскрытии сущности.
[0057] Индекс и коэффициент усиления адаптивной таблицы кодирования, а также индекс и коэффициент усиления фиксированной таблицы кодирования формируют долю CELP-возбуждения во временной области.
4) Преобразование частоты интересующего сигнала
[0058] В ходе кодирования в частотной области режима смешанного кодирования во временной области/частотной области два сигнала должны быть представлены в области преобразования, например, в частотной области. В одном варианте осуществления, частотно-временное преобразование может достигаться с использованием 256-точечного DCT (дискретного косинусного преобразования) типа II (или типа IV), предоставляющего разрешение в 25 Гц с внутренней частотой дискретизации 12,8 кГц, но может быть использовано любое другое преобразование. В случае если используется другое преобразование, частотное разрешение (задано выше), число полос частот и число элементов разрешения по частоте на каждую полосу частот (задано дополнительно ниже), возможно, должно быть исправлено соответствующим образом. В этом отношении, CELP-кодер 100 содержит модуль 107 вычисления (фиг.1) доли возбуждения в частотной области в ответ на входной LP-остаток , возникающий в результате LP-анализа входного звукового сигнала посредством анализатора 201. Как проиллюстрировано на фиг.2, модуль 107 вычисления может вычислять DCT 213, например, DCT типа II входного LP-остатка . CELP-кодер 100 также содержит модуль 106 вычисления (фиг.1) преобразования частоты доли возбуждения во временной области. Как проиллюстрировано на фиг.2, модуль 106 вычисления может вычислять DCT 214, например, DCT типа II доли возбуждения во временной области. Преобразование частоты входного LP-остатка  и доли  CELP-возбуждения во временной области могут быть вычислены с использованием следующих выражений:
и:
,
[0059] где  является входным LP-остатком,  является долей возбуждения во временной области, и N является длиной кадра. В возможной реализации, длина кадра составляет 256 выборок для соответствующей внутренней частоты дискретизации в 12,8 кГц. Доля возбуждения во временной области задается посредством следующего отношения:
,
[0060] где v(n) является долей адаптивной таблицы кодирования, b является коэффициентом усиления адаптивной таблицы кодирования, c(n) является долей фиксированной таблицы кодирования, и g является коэффициентом усиления фиксированной таблицы кодирования. Следует отметить, что доля возбуждения во временной области может состоять только из доли адаптивной таблицы кодирования, как описано в вышеприведенном описании.
5) Частота отсечки доли временной области
[0061] Для выборок обобщенного аудио, доля возбуждения во временной области (комбинация адаптивных и/или фиксированных алгебраических таблиц кодирования) не всегда серьезно способствует улучшению кодирования по сравнению с кодированием в частотной области. Зачастую, это реально улучшает кодирование нижней части спектра при том, что улучшение кодирования верхней части спектра является минимальным. CELP-кодер 100 содержит модуль нахождения частоты отсечки и фильтр 108 (фиг.1), т.е. частоту, на которой улучшение кодирования, обеспечиваемое посредством доли возбуждения во временной области, становится слишком низким, чтобы представлять значимость. Модуль нахождения и фильтр 108 содержит модуль 215 вычисления частоты отсечки и фильтр 216 по фиг.2. Частота отсечки доли возбуждения во временной области сначала оценивается посредством модуля 215 вычисления (фиг.2) с использованием вычислителя 303 (фиг.3 и 4) нормализованной взаимной корреляции для каждой полосы частот между преобразованным по частоте входным LP-остатком из модуля 107 вычисления и преобразованной по частоте долей возбуждения во временной области из модуля 106 вычисления, соответственно, обозначенными как  и , которые задаются в вышеприведенном разделе 4. Последняя частота , включенная в каждую, например, из шестнадцати (16) полос частот, задается в Гц следующим образом:
[0062] Для этого иллюстративного примера, число  элементов разрешения по частоте на каждую полосу частот, совокупное число  элементов разрешения по частоте на каждую полосу частот и нормализованная взаимная корреляция  на каждую полосу частот задаются следующим образом для кадра в 20 мс на частоте дискретизации в 12,8 кГц:
где:
и
,
[0063] где  является числом элементов разрешения по частоте на каждую полосу частот  является совокупным числом элементов разрешения по частоте на каждую полосу частот,  является нормализованной взаимной корреляцией на каждую полосу частот,  является энергией возбуждения для полосы частот, и, аналогично,  является остаточной энергией на каждую полосу частот.
[0064] Модуль 215 вычисления частоты отсечки содержит модуль 304 сглаживания (фиг.3 и 4) взаимной корреляции через полосы частот, выполняющий некоторые операции для того, чтобы сглаживать вектор взаимной корреляции между различными полосами частот. Более конкретно, модуль 304 сглаживания взаимной корреляции через полосы частот вычисляет новый вектор  взаимной корреляции с использованием следующего отношения:
,
где:
[0065] Модуль 215 вычисления частоты отсечки дополнительно содержит модуль 305 вычисления (фиг.3 и 4) среднего нового вектора  взаимной корреляции по первым  полосам частот (=13 представляет 5575 Гц).
[0066] Модуль 215 вычисления частоты отсечки также содержит модуль 306 обработки частоты отсечки (фиг.3), включающий в себя модуль 406 ограничения (фиг.4) взаимной корреляции, нормализатор 407 взаимной корреляции и модуль 408 нахождения полосы частот, в которой взаимная корреляция является наименьшей. Более конкретно, модуль 406 ограничения ограничивает среднее вектора взаимной корреляции минимальным значением 0,5, и нормализатор 408 нормализует ограниченное среднее вектора взаимной корреляции между 0 и 1. Модуль 408 нахождения получает первую оценку частоты отсечки посредством нахождения последней частоты из полосы  частот, которая минимизирует разность между упомянутой последней частотой из полосы  частот и нормализованным средним  вектора  взаимной корреляции, умноженным на ширину F/2 спектра входного звукового сигнала:
,
где:
[0067]  является первой оценкой частоты отсечки.
[0068] На низкой скорости передачи битов, на которой нормализованное среднее  никогда не является реально высоким, или для того, чтобы искусственно увеличивать значение , чтобы предоставлять немного больший весовой коэффициент для доли временной области, можно выполнять повышающее масштабирование значения  с фиксированным коэффициентом масштабирования, например, на скорости передачи битов ниже 8 кбит/с,  умножается на 2 все время в примерной реализации.
[0069] Точность частоты отсечки может быть повышена посредством добавления следующего компонента в вычисление. С этой целью, модуль 215 вычисления частоты отсечки содержит экстраполятор 410 (фиг.4) 8-ой гармоники, вычисленной из минимального или наименьшего значения запаздывания основного тона доли возбуждения во временной области всех субкадров, с использованием следующего отношения:
,
где  Гц,  является числом субкадров, и  является индексом адаптивной таблицы кодирования или запаздыванием основного тона для субкадра i.
[0070] Модуль 215 вычисления частоты отсечки также содержит модуль 409 нахождения (фиг.4) полосы частот, в которой располагается 8-ая гармоника . Более конкретно, для всех , модуль 409 нахождения выполняет поиск наибольшей полосы частот, для которой по-прежнему верифицируется следующее неравенство:
Индекс этой полосы частот называется , и он указывает полосу частот, в которой, вероятно, располагается 8-ая гармоника.
[0071] Модуль 215 вычисления частоты отсечки, в завершение, содержит модуль 411 выбора (фиг.4) конечной частоты  отсечки. Более конкретно, модуль 411 выбора сохраняет верхнюю частоту между первой оценкой  частоты отсечки из модуля 408 нахождения и последней частотой из полосы частот, в которой располагается 8-ая гармоника , с использованием следующего отношения:
[0072] Как проиллюстрировано на фиг.3 и 4:
- модуль 215 вычисления частоты отсечки дополнительно содержит модуль 307 (фиг.3) принятия решения по числу элементов разрешения по частоте, которые должны быть обнулены, непосредственно включающий в себя анализатор 415 (фиг.4) параметров и модуль 416 выбора (фиг.4) элементов разрешения по частоте, которые должны быть обнулены; и
- фильтр 216 (фиг.2), работающий в частотной области, содержит модуль 308 обнуления (фиг.3) элементов разрешения по частоте, которые должны быть обнулены. Модуль обнуления может обнулять все элементы разрешения по частоте (модуль 417 обнуления на фиг.4) или (фильтр 418 на фиг.4) только некоторые верхние элементы разрешения по частоте, расположенные выше частоты  отсечки, дополненной сглаженной переходной областью. Переходная область располагается выше частоты  отсечки и ниже обнуленных элементов разрешения, и это обеспечивает сглаженный спектральный переход между неизменным спектром ниже  и обнуленными элементами разрешения в верхних частотах.
[0073] Для иллюстративного примера, когда частота  отсечки из модуля 411 выбора ниже или равна 775 Гц, анализатор 415 считает, что затраты доли возбуждения во временной области являются слишком высокими. Модуль 416 выбора выбирает все элементы разрешения по частоте частотного представления доли возбуждения во временной области, которая должна быть обнулена, и модуль 417 обнуления предписывает обнулять все элементы разрешения по частоте, а также предписывает обнуление частоты  отсечки. Все биты, выделяемые доле возбуждения во временной области, затем повторно выделяются режиму кодирования в частотной области. В противном случае, анализатор 415 предписывает модулю 416 выбора выбирать высокочастотные элементы разрешения выше частоты  отсечки для обнуления посредством модуля 418обнуления.
[0074] В завершение, модуль 215 вычисления частоты отсечки содержит квантователь 309 (фиг.3 и 4) частоты  отсечки в квантованную версию  этой частоты отсечки. Если три (3) бита ассоциированы с параметром частоты отсечки, возможный набор выходных значений может быть задан (в Гц) следующим образом:
[0075] Множество механизмов могут быть использованы для того, чтобы стабилизировать выбор конечной частоты  отсечки, чтобы не допускать переключения квантованной версии  между 0 и 1175 в несоответствующем сегменте сигнала. Чтобы достигать этого, анализатор 415 в этой примерной реализации является чувствительным к долговременному среднему коэффициента усиления 412 основного тона из анализатора 211 основного тона с замкнутым контуром (фиг.2), корреляции  413 с разомкнутым контуром из анализатора 203 основного тона с разомкнутым контуром и сглаженной корреляции  с разомкнутым контуром. Чтобы предотвращать переключение исключительно на кодирование по частоте, когда удовлетворяются следующие условия, анализатор 415 не разрешает кодирование только по частоте, т.е.  не может задаваться равным 0:
или
Гц, и и
или
Гц, и и
или
и и и ,
[0076] где  является корреляцией 413 основного тона с разомкнутым контуром, и  соответствует сглаженной версии корреляции 414 основного тона с разомкнутым контуром, заданной как . Дополнительно,  (элемент 412 по фиг.4) соответствует долговременному среднему коэффициента усиления основного тона, полученного посредством анализатора 211 основного тона с замкнутым контуром в рамках доли возбуждения во временной области. Долговременное среднее коэффициента усиления 412 основного тона задается как , и является средним коэффициентом усиления основного тона по текущему кадру. Чтобы дополнительно снижать скорость переключения между кодированием только по частоте и смешанным кодированием во временной области/частотной области, могут добавляться хвосты сигнала.
6) Кодирование в частотной области
Создание разностного вектора
[0077] После того, как задается частота отсечки доли возбуждения во временной области, выполняется кодирование в частотной области. CELP-кодер 100 содержит модуль вычитания или модуль 109 вычисления (фиг.1, 2, 5 и 6), чтобы формировать первую часть разностного вектора  с помощью разности между преобразованием  502 частоты (фиг.5 и 6) (или другим частотным представлением) входного LP-остатка из DCT 213 (фиг.2) и преобразованием  501 частоты (фиг.5 и 6) (или другим частотным представлением) доли возбуждения во временной области из DCT 214 (фиг.2) от нуля до частоты  отсечки доли возбуждения во временной области. Коэффициент 603 понижающего масштабирования (фиг.6) применяется к преобразованию  501 частоты для следующей переходной области =2 кГц (80 элементов разрешения по частоте в этой примерной реализации) перед ее вычитанием соответствующей спектральной части преобразования  частоты. Результат вычитания составляет вторую часть разностного вектора , представляющую частотный диапазон от частоты  отсечки вплоть до . Преобразование  502 частоты входного LP-остатка используется для оставшейся третьей части вектора . Часть после понижающего масштабирования вектора , возникающая в результате применения коэффициента 603 понижающего масштабирования, может быть выполнена с помощью любого типа функции постепенного ослабевания, она может сокращаться всего до нескольких элементов разрешения по частоте, но она также может опускаться, когда доступный битовый бюджет определяется как достаточный для того, чтобы предотвращать артефакты колебания энергии, когда изменяется частота  отсечки. Например, при разрешении в 25 Гц, соответствующем 1 элементу разрешения по частоте =25 Гц в 256-точечном DCT при 12,8 кГц, разностный вектор может компоноваться следующим образом:
,
где
,
где
, в противном случае
[0078] где  и  заданы в предыдущих разделах 4 и 5.
Поиск частотных импульсов
[0079] CELP-кодер 100 содержит частотный квантователь 110 (фиг.1 и 2) разностного вектора . Разностный вектор  может быть квантован с использованием нескольких способов. Во всех случаях частотные импульсы должны отыскиваться и квантоваться. В одном возможном простом способе, кодирование в частотной области содержит поиск наиболее энергетических импульсов разностного вектора  в спектре. Способ для того, чтобы выполнять поиск в импульсах, может заключаться просто в разбиении спектра на полосы частот и разрешении определенного числа импульсов на каждую полосу частот. Число импульсов на каждую полосу частот зависит от доступного битового бюджета и от позиции полосы частот в спектре. Типично, больше импульсов выделяется низким частотам.
Квантованный разностный вектор
[0080] В зависимости от доступной скорости передачи битов квантование частотных импульсов может быть выполнено с использованием различных технологий. В одном варианте осуществления, на скорости передачи битов ниже 12 кбит/с, простая схема поиска и квантования может быть использована для того, чтобы кодировать позицию и знак импульсов. Эта схема описана в данном документе ниже.
[0081] Например, для частот ниже 3175 Гц, эта простая схема поиска и квантования использует подход на основе факториального импульсного кодирования (FPC), который описывается в литературе, например, в ссылочном документе [Mittal, U., Ashley, J.P. и Cruz-Zeno, E.M. (2007), "Low Complexity Factorial Pulse Coding of MDCT Coefficients using Approximation of Combinatorial Functions", IEEE Proceedings on Acoustic, Speech and Signals Processing, издание 1, апрель, стр.289-292], причем его содержимое полностью содержится в данном документе по ссылке.
[0082] Более конкретно, модуль 504 выбора (фиг.5 и 6) определяет то, что весь спектр не квантуется с использованием FPC. Как проиллюстрировано на фиг.5, FPC-кодирование и кодирование по позициям и знакам импульсов выполняется в кодере 506. Как проиллюстрировано на фиг.6, кодер 506 содержит модуль 609 поиска частотных импульсов. Поиск осуществляется по всем полосам частот для частот ниже 3175 Гц. FPC-кодер 610 затем обрабатывает частотные импульсы. Кодер 506 также содержит модуль 611 нахождения наиболее энергетических импульсов для частот, равных и превышающих 3175 Гц, и квантователь 612 позиции и знака найденных наиболее энергетических импульсов. Если несколько (1) импульсов разрешено в полосе частот, то амплитуда ранее найденного импульса делится на 2, и поиск снова осуществляется по всей полосе частот. Каждый раз, когда находится импульс, его позиция и знак сохраняются для стадии квантования и побитовой упаковки. Следующий псевдокод иллюстрирует эту простую схему поиска и квантования:
где  является числом полос частот (=16 в иллюстративном примере),  является числом импульсов, которые должны быть кодированы в полосе частот  является числом элементов разрешения по частоте на каждую полосу частот  является совокупным числом элементов разрешения по частоте на каждую полосу частот, как задано ранее в разделе 5,  представляет вектор, содержащий найденную позицию импульса,  представляет вектор, содержащий знак найденного импульса, и  представляет энергию найденного импульса.
[0083] На скорости передачи битов выше 12 кбит/с, модуль 504 выбора определяет то, что весь спектр должен быть квантован с использованием FPC. Как проиллюстрировано на фиг.5, FPC-кодирование выполняется в кодере 505. Как проиллюстрировано на фиг.6, кодер 505 содержит модуль 607 поиска частотных импульсов. Поиск осуществляется по всем полосам частот. FPC-процессор 610 затем FPC-кодирует найденные частотные импульсы.
[0084] После этого, квантованный разностный вектор  получается посредством суммирования числа nb_pulses импульсов со знаком  импульса с каждой найденной позицией . Для каждой полосы частот квантованный разностный вектор  может записываться с помощью следующего псевдокода:
Заполнение шумом
[0085] Все полосы частот квантуются с большей или меньшей точностью; способ квантования, описанный в предыдущем разделе, не гарантирует, что все элементы разрешения по частоте в полосах частот квантуются. Это, в особенности, имеет место на низких скоростях передачи битов, на которых число импульсов, квантованных на каждую полосу частот, является относительно низким. Чтобы предотвращать появление звуковых артефактов вследствие этих неквантованных элементов разрешения, заполнитель 507 шумом (фиг.5) добавляет некоторый шум, чтобы заполнять эти интервалы отсутствия сигнала. Это добавление шума выполняется по всему спектру на скорости передачи битов ниже 12 кбит/с, например, но может применяться только выше частоты  отсечки доли возбуждения во временной области для более высоких скоростей передачи битов. Для простоты, интенсивность шума варьируется только с доступной скоростью передачи битов. На высоких скоростях передачи битов уровень шума является низким, при этом уровень шума является более высоким на низких скоростях передачи битов.
[0086] Заполнитель 504 шумом содержит модуль 613 добавления (фиг.6), который добавляет шум в квантованный разностный вектор  после того, как интенсивность или энергетический уровень такого добавленного шума определены в модуле 614 оценки, и до того, как коэффициент усиления на каждую полосу частот определен в вычислителе 615. В иллюстративном варианте осуществления, уровень шума непосредственно связан с кодированной скоростью передачи битов. Например, при 6,60 кбит/с уровень  шума составляет 0,4 от амплитуды спектральных импульсов, кодированных в конкретной полосе частот, и он постепенно снижается до значения в 0,2 от амплитуды спектральных импульсов, кодированных в полосе частот в 24 кбит/с. Шум добавляется только в секцию(и) спектра, в которой определенное число последовательных элементов разрешения по частоте имеет очень низкую энергию, например, когда число последовательных элементов  разрешения с очень низкой энергией составляет половину от числа элементов разрешения, включенных в полосу частот. Для конкретной полосы  частот, шум вводится следующим образом:
где
где, для полосы частот  является совокупным числом элементов разрешения на каждую полосу частот,  является числом элементов разрешения в конкретной полосе частот  является уровнем шума, и  является генератором случайных чисел, который ограничен от -1 до 1.
7) Квантование по усилению на каждую полосу частот
[0087] Частотный квантователь 110 содержит модуль вычисления/квантователь 508 коэффициента усиления на каждую полосу частот (фиг.5), включающий в себя модуль 615 вычисления (фиг.6) коэффициента усиления на каждую полосу частот и квантователь 616 (фиг.6) вычисленного коэффициента усиления на каждую полосу частот. После того, как находится квантованный разностный вектор , включающий в себя при необходимости заполнение шумом, модуль 615 вычисления вычисляет коэффициент усиления на каждую полосу частот для каждой полосы частот. Коэффициент усиления на каждую полосу частот для конкретной полосы  частот задается как отношение между энергией сигнала неквантованного разностного вектора  и энергией квантованного разностного вектора  в логарифмической области следующим образом:
где  и  задаются выше в разделе 5.
[0088] В варианте осуществления по фиг.5 и 6, квантователь 616 коэффициента усиления на каждую полосу частот векторно квантует коэффициенты усиления на каждую полосу частот. До векторного квантования, на низкой скорости передачи битов последний коэффициент усиления (соответствующий последней полосе частот) квантуется отдельно, и все оставшиеся пятнадцать (15) коэффициентов усилений делятся на последний квантованный коэффициент усиление. Затем, нормализованные пятнадцать (15) оставшихся коэффициентов усилений векторно квантуются. На более высокой скорости среднее значение коэффициента усиления на каждую полосу частот квантуется сначала и затем удаляется из всех коэффициентов усиления на каждую полосу частот, например, шестнадцати (16) полос частот до векторного квантования этих коэффициентов усиления на каждую полосу частот. Используемое векторное квантование может быть стандартной минимизацией в логарифмической области расстояния между вектором, содержащим коэффициенты усиления на каждую полосу частот, и записями конкретной таблицы кодирования.
[0089] В режиме кодирования в частотной области коэффициенты усиления вычисляются в модуле 615 вычисления для каждой полосы частот, чтобы сопоставлять энергию неквантованного вектора  с квантованным вектором . Коэффициенты усиления векторно квантуются в квантователе 616 и применяются на каждую полосу частот к квантованному вектору  через умножитель 509 (фиг.5 и 6).
[0090] Альтернативно, также можно использовать схему FPC-кодирования на скорости ниже 12 кбит/с для всего спектра посредством выбора только некоторых полос частот, которые должны быть квантованы. До выполнения выбора полос частот, квантуется энергия  полос частот неквантованного разностного вектора . Энергия вычисляется следующим образом:
,
где
где  и  задаются выше в разделе 5.
[0091] Чтобы выполнять квантование энергии  полосы частот, сначала средняя энергия по первым 12 полосам частот из шестнадцати используемых полос частот квантуется и вычитается из энергий всех шестнадцати (16) полос частот. Далее все полосы частот векторно квантуются на каждый группу из 3 или 4 полос частот. Используемое векторное квантование может быть стандартной минимизацией в логарифмической области расстояния между вектором, содержащим коэффициенты усиления на каждую полосу частот, и записями конкретной таблицы кодирования. Если доступно недостаточно битов, можно квантовать только первые 12 полос частот и экстраполировать последние 4 полосы частот с использованием среднего предыдущих 3 полос частот или посредством каких-либо других способов.
[0092] Когда квантуется энергия полос частот неквантованного разностного вектора, появляется возможность сортировать энергию в порядке убывания таким образом, что она является делимой на стороне декодера. Во время сортировки всегда сохраняются все энергетические зоны ниже 2 кГц, и затем только наиболее энергетические полосы частот должны передаваться в FPC для кодирования амплитуд и знаков импульсов. При этом подходе, FPC-схема кодирует меньший вектор, но покрывающий более широкий частотный диапазон. Другими словами, требуется меньше битов для того, чтобы покрывать важные энергетические события по всему спектру.
[0093] После процесса импульсного квантования необходимо заполнение шумом, аналогичное тому, что описано ранее. Затем, коэффициент  регулирования коэффициента усиления вычисляется на каждую полосу частот, чтобы сопоставлять энергию  квантованного разностного вектора  с квантованной энергией  неквантованного разностного вектора . Затем этот коэффициент регулирования коэффициента усиления на каждую полосу частот применяется к квантованному разностному вектору :
,
где:
и  является квантованной энергией на каждую полосу частот неквантованного разностного вектора , как задано выше.
[0094] После завершения стадии кодирования в частотной области полное возбуждение во временной области/частотной области находится посредством суммирования через сумматор 111 (фиг.1, 2, 5 и 6) частотно-квантованного разностного вектора  с фильтрованной преобразованной по частоте долей  возбуждения во временной области. Когда улучшенный CELP-кодер 100 изменяет свое выделение битов с режима кодирования только во временной области на режим смешанного кодирования во временной области/частотной области, энергия спектра возбуждения на каждую полосу частот режима кодирования только во временной области не совпадает с энергией спектра возбуждения на каждую полосу частот режима смешанного кодирования во временной области/частотной области. Это несовпадение энергии может создавать артефакты при переключении, которые являются более слышимыми на низкой скорости передачи битов. Чтобы уменьшать слышимое ухудшение качества, созданное посредством этого повторного выделения битов, долговременный коэффициент усиления может вычисляться для каждой полосы частот и может применяться к суммированному возбуждению, чтобы корректировать энергию каждой полосы частот для нескольких кадров после повторного выделения. Далее, сумма частотно-квантованного разностного вектора  и преобразованной по частоте и фильтрованной доли  возбуждения во временной области после этого преобразуется обратно во временную область в преобразователе 112 (фиг.1, 5 и 6), содержащем, например, IDCT (обратное DCT) 220.
[0095] В завершение, синтезированный сигнал вычисляется посредством фильтрации сигнала полного возбуждения из IDCT 220 через синтезирующий LP-фильтр 113 (фиг.1 и 2).
[0096] Сумма частотно-квантованного разностного вектора  и преобразованной по частоте и фильтрованной доли  возбуждения во временной области формирует смешанное возбуждение во временной области/частотной области, передаваемое в удаленный декодер (не показан). Удаленный декодер также содержит преобразователь 112, чтобы преобразовывать смешанное возбуждение во временной области/частотной области обратно во временную область с использованием, например, IDCT (обратного DCT) 220. В завершение, синтезированный сигнал вычисляется в декодере посредством фильтрации сигнала полного возбуждения из IDCT 220, т.е. смешанного возбуждения во временной области/частотной области через синтезирующий LP-фильтр 113 (фиг.1 и 2).
[0097] В одном варианте осуществления, в то время как компоненты памяти CELP-кодирования обновляются на основе субкадров с использованием только доли возбуждения во временной области, полное возбуждение используется для того, чтобы обновлять эти компоненты памяти на кадровых границах. В другой возможной реализации, компоненты памяти CELP-кодирования обновляются на основе субкадров, а также на кадровых границах с использованием только доли возбуждения во временной области. Это приводит к встроенной структуре, в которой квантованный сигнал частотной области составляет верхний слой квантования, независимый от базового CELP-слоя. Это представляет преимущества в определенных вариантах применения. В данном случае, фиксированная таблица кодирования всегда используется для того, чтобы поддерживать хорошее перцепционное качество, и число субкадров всегда составляет четыре (4) по той же причине. Тем не менее анализ в частотной области может применяться к целому кадру. Этот встроенный подход работает для скоростей передачи битов приблизительно в 12 кбит/с и выше.
[0098] Вышеприведенное раскрытие сущности относится к неограничивающим, иллюстративным вариантам осуществления, и эти варианты осуществления при желании могут быть модифицированы в пределах объема прилагаемой формулы изобретения.