УПРАВЛЕНИЕ ПОЛОСОЙ ЧАСТОТ В КОДЕРАХ И/ИЛИ ДЕКОДЕРАХ
CONTROLLING THE FREQUENCY BAND IN ENCODERS AND DECODERS

1. УРОВЕНЬ ТЕХНИКИ
Настоящие примеры относятся к кодерам и декодерам и к способам для этих устройств, в особенности для информационных сигналов, таких как аудиосигналы.
Общие кодеки аудио должны передавать сигналы музыки и речи в очень хорошем качестве. Такие кодеки аудио, например, используются в Bluetooth, где аудиосигналы передаются от мобильного телефона к гарнитуре или наушникам и наоборот.
Квантование частей спектра в нули часто приводит к воспринимаемому ухудшению качества. Таким образом, существует возможность заменить квантованные в нули спектральные линии с шумом с использованием инструмента заполнения шума, работающего в частотной области (FD).
Формирование временного шума (TNS) использует линейное предсказание разомкнутой цепи в частотной области (FD). Этот процесс кодирования/декодирования с предсказанием над частотой эффективно адаптирует временную структуру шума квантования к структуре временного сигнала, тем самым эффективно используя сигнал, чтобы замаскировать эффекты шума. В стандарте улучшенного кодера аудио (AAC) MPEG2, TNS в текущий момент осуществляется путем определения одного фильтра для некоторой заданной полосы частот и затем переключения на другой фильтр для смежной полосы частот, когда структура сигнала в смежной полосе отлична от структуры сигнала в предыдущей полосе.
В особенности для сигналов речи содержимое аудио может иметь ограниченную полосу, что означает, что полоса частот аудио содержит только 4 кГц (узкая полоса, NB), 8 кГц (широкая полоса, WB) или 16 кГц (сверхширокая полоса, SWB). Кодеки аудио должны обнаруживать активную полосу частот аудио и управлять инструментами кодирования соответственно. Поскольку обнаружение полосы частот не на 100% надежно, могут возникать технические проблемы.
Некоторые инструменты кодирования аудио, например формирование временного шума (TNS) или заполнение шума (NF), могут вызывать раздражающие артефакты при работе над файлами аудиоданных ограниченной полосы, например, если инструмент не осведомлен об активной части сигнала. Предполагая, что сигнал WB кодируется на 32 кГц, инструменты могут заполнять верхний спектр (8-16 кГц) искусственным шумом.
Фиг. 1 изображает искусственный шум, генерируемый неконтролируемыми инструментами: линия 11 является активным сигналом вплоть до WB, в то время как сигнал 12 искусственно генерируется параметрическим инструментом, например путем заполнения шума, который не осведомлен об активной полосе частот аудио.
Таким образом, инструменты должны быть ограничены таким образом, чтобы работать только над активными частотными областями.
Некоторые кодеки, такие как AAC, выполнены с возможностью отправки информации об активном спектре для каждой полосы коэффициента масштабирования. Эта информация также используется для управления инструментами кодирования. Это обеспечивает точные результаты, но требует существенного количества дополнительной информации, которая должна быть передана. Поскольку речь обычно передается просто в NB, WB, SWB и FB, этот ограниченный набор возможных активных полос частот предпочтительно используется для ограничения дополнительной информации.
Средство обнаружения полосы частот с неизбежностью время от времени возвращает неверные результаты. Например, средство обнаружения может видеть затухание сигнала музыки и интерпретирует это как случай низкой полосы частот. Для кодеков, которые переключаются между различными режимами полосы частот (NB, WB, SWB, FB) жестким образом, например кодека EVS 3GPP [1], это дает в результате прямоугольную спектральную дыру. Переключение жестким образом означает, что полная операция кодирования ограничена обнаруженной полосой частот. Такое жесткое переключение может давать в результате слышимые артефакты. Фиг. 2 обрисовывает спектральную дыру 22, возникшую в результате неверного обнаружения.
Фиг. 2 изображает схематичный чертеж неверного обнаружения полосы частот: все инструменты кодирования работают на нижней полосе частот аудио, что приводит к прямоугольной спектральной дыре 22.
Существует необходимость преодоления или уменьшения таких недостатков, как те что определены выше.
1.1. Источники
[1] 3GPP EVS Codec, http://www.3gpp.org/ftp//Specs/archive/26_series/26.445/26445-e10.zip, раздел 5.1.6 "Bandwidth detection"
2. РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
В соответствии с примерами, обеспечено кодирующее устройство, содержащее:
- множество инструментов кодера частотной области, FD, для кодирования информационного сигнала, причем информационный сигнал представляет множество кадров; и
- средство обнаружения и управления полосы частот кодера, выполненное с возможностью выбора полосы частот по меньшей мере для подгруппы из множества инструментов кодера FD, причем подгруппа включает в себя меньше инструментов кодера FD, чем множество инструментов кодера FD, на основании характеристик информационного сигнала таким образом, что по меньшей мере один из инструментов кодера FD из подгруппы имеет другую полосу частот относительно по меньшей мере одного из инструментов кодера FD, которые не находятся в подгруппе.
Соответственно, существует возможность избежать спектральных дыр при обслуживании в случае неверного обнаружения полосы частот.
В соответствии с примерами, по меньшей мере один инструмент кодера FD из подгруппы может быть инструментом формирования временного шума, TNS, и/или инструментом средства оценки уровня шума.
В соответствии с примерами, по меньшей мере один инструмент кодера FD, который не находится в подгруппе, выбирается из по меньшей мере одного из спектрального средства формирования на основе линейного кодирования с предсказанием, LPC, инструмента средства формирования спектрального шума, SNS, спектрального квантизатора и остаточного кодера.
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью выбора полосы частот по меньшей мере одного инструмента кодера FD из подгруппы между по меньшей мере первой полосы частот, общей для по меньшей мере одного из инструментов кодера FD, который не находятся в подгруппе, и второй полосы частот, отличной от полосы частот по меньшей мере одного из инструментов кодера FD, которые не находятся в подгруппе.
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью выбора полосы частот по меньшей мере одного из множества инструментов кодера FD на основании по меньшей мере одной оценки энергии над информационным сигналом.
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью сравнения по меньшей мере одной оценки энергии, ассоциированной с полосой частот информационного сигнала, с соответствующей пороговой величиной для управления полосой частот для по меньшей мере одного из множества инструментов кодера FD.
В соответствии с примерами, по меньшей мере один из множества инструментов кодера FD из подгруппы содержит TNS, выполненный с возможностью автокорреляции входного сигнала TNS внутри полосы частот, выбранной средством обнаружения и управления полосы частот кодера.
В соответствии с примерами, по меньшей мере один из инструментов кодера FD, который не находятся в подгруппе, выполнен с возможностью работы в полной полосе частот.
Таким образом, выбор полосы частот работает только для инструментов из подгруппы (например, TNS, инструмента средства оценки шума).
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью выбора по меньшей мере одной полосы частот, которая находится внутри полной полосы частот, в которой по меньшей мере один из инструментов кодера FD, которые не находятся в подгруппе, выполнен с возможностью работы.
В соответствии с примерами, по меньшей мере один из остальных инструментов кодера FD из множества инструментов кодера FD выполнен с возможностью работы в открытой цепи относительно полосы частот, выбранной средством обнаружения и управления полосы частот кодера.
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью выбора полосы частот из конечного количества полос частот и/или из набора заданных полос частот.
Таким образом, выбор ограничен, и нет необходимости кодирования слишком сложных и/или длинных параметров. В примерах только один параметр (например, кодированный в 0-3 битах) может быть использован для битового потока.
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью выполнения выбора из по меньшей мере одного или сочетания из: 8 кГц, 16 кГц, 24 кГц, 32 кГц и 48 кГц и/или NB, WB, SSWB, SWB, FB и т. д.
В соответствии с примерами, средство обнаружения и управления полосы частот кодера выполнено с возможностью управления сигнализацией полосы частот декодеру.
Таким образом, также полосой частот сигналов, обработанных некоторыми инструментами в декодере, может осуществляться управление (например, с использованием той же самой полосы частот).
В соответствии с примерами, кодирующее устройство выполнено с возможностью кодирования поля управляющих данных, включающего в себя информацию, относящуюся к выбранной полосе частот.
В соответствии с примерами, кодирующее устройство выполнено с возможностью определения поля управляющих данных, включающего в себя:
- 0 бит данных, соответствующих полосе частот NB;
- 1 бит данных, соответствующий полосе частот NB, WB;
- 2 бита данных, соответствующих полосе частот NB, WB, SSWB;
- 2 бита данных, соответствующих полосе частот NB, WB, SSWB, SWB;
- 3 бита данных, соответствующих полосе частот NB, WB, SSWB, SWB, FB.
В соответствии с примерами, по меньшей мере одна оценка энергии кодирующего устройства выполняется следующим образом:
X
k
N
B
где () - коэффициенты MDCT (или MDST...),  - количество полос, и  - индексы, ассоциированные с полосой.
В соответствии с примерами, кодирующее устройство содержит инструмент TNS, который может быть выполнен с возможностью выполнения операции фильтрации, включающую в себя вычисление автокорреляционной функции. Одна из возможных функций автокорреляции может иметь следующую форму:
для каждого k=0..8
где
и
X
k
f, s
f, s
где () - коэффициенты MDCT, sub_start() и sub_stop() ассоциированы с конкретной полосой частот, обнаруженной средством обнаружения и управления полосы частот кодера.
В соответствии с примерами, кодирующее устройство может содержать инструмент средства оценки шума, который может быть выполнен с возможностью оценки уровня шума. Одна из процедур, используемых для такой оценки, может иметь форму
NF
f
где gg указывает на глобальное усиление, I(k) - на идентификацию спектральных линий, на которых уровень шума должен оцениваться, и X(k) - сигнал (например, MDCT или MDST или другой спектр FD после TNS).
NF
В примерах I(k) может быть получен как:
bw
stop
где  зависит от полосы частот, обнаруженной средством обнаружения и управления полосы частот кодера.
В соответствии с примерами, может быть обеспечено декодирующее устройство, содержащее множество инструментов декодера FD для декодирования информационного сигнала, кодированного в битовом потоке, причем:
инструменты декодера FD подразделяются:
- на подгруппу, содержащую по меньшей мере один инструмент декодера FD;
- на остальные инструменты декодера FD, содержащие по меньшей мере один инструмент декодера FD;
причем декодирующее устройство выполнено таким образом, что по меньшей мере один из множества инструментов декодера из подгруппы выполняет обработку сигналов для другой полосы частот относительно по меньшей мере одного из остальных инструментов декодера FD из множества инструментов декодера.
В соответствии с примерами, декодирующее устройство может содержать средство управления полосы частот, выполненное с возможностью выбора полосы частот на основании информации полосы частот.
В соответствии с примерами, декодирующее устройство может быть таким, что подгруппа содержит по меньшей мере один из инструмента средства оценки шума декодера и/или декодера формы временного шума, TNS.
В соответствии с примерами, по меньшей мере один из остальных инструментов декодера FD является по меньшей мере одним из инструмента декодера линейного кодирования с предсказанием, LPC, инструмента декодера средства формирования спектрального шума, SNS, инструмента декодера глобального усиления, инструмента формирования MDCT или MDST.
В соответствии с примерами, декодирующее устройство может быть выполнено с возможностью управления полосой частот по меньшей мере одного из множества инструментов декодера в подгруппе между:
по меньшей мере первой полосой частот, общей для по меньшей мере одного из остальных инструментов декодера FD; и
по меньшей мере второй полосой частот, отличной от первой полосы частот.
В соответствии с примерами, по меньшей мере один из остальных инструментов декодера FD выполнен с возможностью работы в полной полосе частот.
В соответствии с примерами, по меньшей мере один из остальных инструментов декодера FD выполнен с возможностью работы в открытой цепи относительно полосы частот (например, выбранной средством управления полосы частот).
В соответствии с примерами, средство управления полосы частот выполнено с возможностью выбора полосы частот из конечного количества полос частот и/или из набора заданных полос частот.
В соответствии с примерами, средство управления полосы частот выполнено с возможностью выполнения выбора из по меньшей мере одного или сочетания из: 8 кГц, 16 кГц, 24 кГц, 32 кГц и 48 кГц и/или NB, WB, SSWB, SWB, FB.
В соответствии с примерами, декодер может дополнительно содержать инструмент (46) заполнения шума, выполненный с возможностью применения уровня шума с использованием индексов. Методика получения индексов может обеспечивать, например:
bw
stop
где  получается на основании информации полосы частот в битовом потоке.
В соответствии с примерами, декодирующее устройство может содержать инструмент декодера TNS, выполненный с возможностью выполнения по меньшей мере некоторых из следующих операций:
где  - выходные данные из декодера TNS, и  - входные данные декодера TNS, num_tns_filters, start_freq, stop_freq получаются на основании информации полосы частот в битовом потоке.
Инструменты кодирования, такие как TNS или заполнение шума, могут создавать нежелательный искусственный шум в тихих сегментах сигналов с ограниченной полосой. Таким образом, средства обнаружения полосы частот обычно взаимодействуют, чтобы управлять полосой частот, на которой должны работать все инструменты кодирования. Поскольку обнаружение полосы частот может приводить к неясным результатам, такое неверное обнаружение может приводить к звуковым артефактам, таким как внезапное ограничение полосы частот аудио.
Чтобы преодолеть эту проблему, в некоторых примерах некоторыми инструментами, например квантизатором, не управляет средство обнаружения полосы частот. В случае ошибочного обнаружения квантизатор может кодировать верхний спектр - пусть и в низком качестве - чтобы компенсировать проблему.
3. КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
фиг. 1 изображает искусственный шум, генерируемый неконтролируемыми инструментами;
фиг. 2 изображает схематический чертеж неверного обнаружения полосы частот;
фиг. 3 и 3a изображают кодирующее устройство согласно примерам;
фиг. 4 и 4a изображают декодирующее устройство согласно примерам;
фиг. 5 изображает схему в случае неверного обнаружения полосы частот;
фиг. 6a-6c изображают способы согласно примерам;
фиг. 7 изображает способ TNS в кодере согласно одному примеру;
фиг. 8a и 8b изображают устройство согласно примерам.
4. ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Изобретение, описанное в этом документе, позволяет избежать возникновения спектральных дыр, даже когда средство обнаружения полосы частот возвращает неверный результат. В частности, может быть получено мягкое переключение полосы для применений в аудиокодировании.
Ключевым аспектом является то, что параметрическими инструментами кодирования, например TNS и NF, может строго осуществляться управление посредством средства 39 обнаружения и управления полосы частот, в то время как остальное кодирование, т.е. спектральное средство формирования на основании LPC или средство формирования спектрального шума, SNS, спектральный квантизатор и остаточный кодер, все еще работают над полной полосой частот аудио вплоть до предельной частоты.
Фиг. 3 и 3a обрисовывают примеры кодирующих устройств 30 и 30a, где средство 39 обнаружения и управления полосы частот (BW) оценивает текущую полосу частот аудио в кадре на основании энергий, найденных из спектра MDCT или MDST (или другого спектра FD).
На стороне декодера (фиг. 4 и 4a) направляющая информация полосы частот для TNS и NF извлекается из битового потока, и инструментами осуществляется управление соответственно.
В результате искусственно генерируемый шум в неактивных спектральных областях избегается ввиду параметра полосы частот, используемого, чтобы управлять инструментами кодирования TNS и NF (неконтролируемыми инструментами). Инструмент просто работает над активной частью аудио и, таким образом, не генерирует какого-либо искусственного шума.
С другой стороны, слышимый эффект неверных обнаружений (ложного обнаружения полосы частот) может быть существенно уменьшен, поскольку остальные инструменты кодирования, например спектральный квантизатор, средство формирования LPC или SNS (средство формирования спектрального шума) и остаточный кодер, все еще работают вплоть до предельной частоты. В случае неверных обнаружений эти инструменты могут кодировать верхнюю частоту - по меньшей мере с некоторыми дополнительными искажениями по сравнению с обычным кодированием - и, таким образом, избегать более сильного впечатления, что полоса частот аудио внезапно снижается.
Фиг. 5 изображает новую схему в случае неверного обнаружения полосы частот: спектральная дыра квантуется слабо, но избегает слышимого снижения полосы частот.
В случае если область, обрисованная на чертеже выше, содержит преимущественно нулевые значения, арифметическому кодеру не обязательно кодировать их, поскольку информация над последним ненулевым спектральным кортежем передается в качестве дополнительной информации для арифметического кодера. Это означает, что никакого служебного сигнализирования не требуется для арифметического кодера.
Требуемая дополнительная информация для передаваемой полосы частот также минимизируется. Ввиду устойчивого поведения переключения, сигнализирование обычно используемых полос частот аудио передачи, т. е. NB, WB, SSWB и SWB, является подходящим.
Эта методика также обеспечивает возможность построить менее сложные средства обнаружения полосы частот, которые не используют зависимостей кадра и средств памяти долгой истории, чтобы получить стабильные решения, см. кодек EVS [1], раздел 5.1.6. Это означает, что новая методика обеспечивает возможность средству 39 обнаружения и управления полосы частот реагировать очень быстро при любом изменении полосы частот аудио.
Соответственно, информация полосы частот используется только для того, чтобы управлять конкретными инструментами кодека (например, кодека аудио), при этом сохраняя остальные инструменты в другом режиме операции (например, полной полосе частот).
5. ПРИМЕРЫ
5.1. Обнаружение и управление полосы частот инструментов
Информационный сигнал (например, аудиосигнал) может быть описан во временной области, TD, в виде последовательности выборок (например, x(n)), полученных в различные дискретные моменты времени (n). Представление TD может состоять из множества кадров, каждый из которых ассоциирован с множеством выборок (например, 2048 выборок на кадр). В частотной области, FD, кадр может быть представлен в виде последовательности интервалов (например, X(k)), каждый из которых ассоциирован с конкретной частотой (каждая частота ассоциирована с индексом k).
Фиг. 3 и 3a изображают кодирующие устройства 30 и 30a, соответственно, каждое из которых содержит средство 39 обнаружения и управления полосы частот кодера, которые имеют возможность выбора полосы частот для некоторых инструментов (подгруппы в кодере) кодирующего устройства 30 или 30a так, чтобы другие инструменты работали в другой полосе частот. Средство 39 обнаружения и управления полосы частот кодера также имеет возможность выбора полосы частот для по меньшей мере некоторых из инструментов декодера (подгруппы в декодере). 39a указывает на информацию выбора полосы частот, обеспеченную средством 39 обнаружения и управления полосы частот кодера инструментам из подгруппы (например, 33, 36) и/или декодеру.
Каждое из кодирующих устройств 30 и 30a может содержать инструмент 31 модифицированного дискретного косинусного преобразования, MDCT, низкой задержки или инструмент 31 модифицированного дискретного синусного преобразования, MDST, низкой задержки (или инструмент на основании другого преобразования, такого как преобразование с перекрытием), который может конвертировать информационный сигнал (например, аудиосигнал) из представления во временной области, TD, в представление в частотной области, FD, (например, чтобы получить коэффициенты MDCT, MDST или, в более общем случае, FD).
Кодирующее устройство 30 может содержать инструмент 32 линейного кодирования с предсказанием, LPC, для выполнения анализа LPC в FD.
Кодирующее устройство 30a может содержать инструмент 32a SNS для выполнения анализа SNS в FD.
Каждое из кодирующих устройств 30 и 30a может содержать инструмент 33 формирования временного шума, TNS, чтобы управлять временной формой шума внутри каждого окна информационного сигнала (например, выводимого инструментом MDCT или MDST) в FD.
Каждое из кодирующих устройств 30 и 30a может содержать спектральный квантизатор 34, обрабатывающий сигналы в FD. Сигнал, выводимый инструментом 33 TNS, может квантоваться, например, с использованием мертвой зоны плюс скалярного квантования однородной пороговой величины. Индекс усиления может быть выбран таким образом, чтобы количество битов, необходимых для кодирования квантованного сигнала FD, было максимально близким к доступному запасу битов.
Каждое из кодирующих устройств 30 и 30a может содержать кодер 35, обрабатывающий сигналы в FD, например, чтобы выполнять энтропийное кодирование, например, чтобы сжать битовый поток. Кодер 35 может, например, выполнять остаточное кодирование и/или арифметическое кодирование.
Каждое из кодирующих устройств 30 и 30a может содержать, например, инструмент 36 средства оценки уровня шума, обрабатывающий сигналы в FD, чтобы оценить шум, квантовать его и/или передать его в битовом потоке.
В примерах инструмент 36 средства оценки уровня может быть размещен раньше или позже кодера 35 по ходу потока.
Каждое из кодирующих устройств 30 и 30a может содержать инструменты, которые обрабатывают сигналы во временной области, TD. Например, кодирующее устройство 30 или 30a может содержать инструмент 38a повторной дискретизации (например, средство дискретизации с понижением) и/или инструмент 38b долговременной вторичной фильтрации, LTPF, для управления LTPF, активной в TD в декодере.
Каждое из кодирующих устройств 30 и 30a может содержать инструмент 37 средства мультиплексирования битового потока, чтобы подготовить битовый поток с данными, полученными от инструментыов TD и/или FD, размещенных раньше по ходу потока. Битовый поток может содержать цифровое представление информационного сигнала вместе с управляющими данными (включающими в себя, например, информацию полосы частот для выбора полосы частот в некоторых инструментах декодера), которые должны быть использованы в декодере. Битовый поток может быть сжат или включать в себя части, которые сжаты.
Таким образом, каждое из кодирующих устройств 30 и 30a может содержать инструменты FD (например, 31-36) и, в некотором случае, инструменты TD (например, 38a, 38b).
Средство 39 обнаружения и управления полосы частот кодера может управлять полосой частот инструментов FD, формирующих первую группу (подгруппу), таких как инструмент 33 формирования временного шума, TNS, и/или инструмент 36 средства оценки шума. Инструмент 33 TNS может быть использован, чтобы управлять шумом квантования. Полоса частот, в которой инструменты FD, которые не находятся в подгруппе (такие как по меньшей мере один из инструмента 32 LPC и/или инструмента 32a SNS, квантизатор 34 спектра и кодер 35), выполняют обработку сигналов, может, таким образом, отличаться от полосы частот, в которой инструменты из подгруппы (например 33, 36) выполняют обработку сигналов. Например, полоса частот для инструментов FD, которые не находятся в подгруппе, может быть больше, например может быть полной полосой частот.
В примерах средство 39 обнаружения и управления полосы частот кодера может входить в состав процессора цифровых сигналов, который, например, осуществляет также другие инструменты кодирующего устройства.
Фиг. 4 и 4a изображают декодирующие устройства 40 и 40a, соответственно, каждое из которых может декодировать цифровое представление информационного сигнала, кодированного, например, кодером 30 или 30a. Каждое из декодирующих устройств 40 и 40a может содержать инструменты FD и, в некотором случае, инструменты TD.
Каждое из декодирующих устройств 40 и 40a может содержать инструмент 41 мультиплексирования битового потока, чтобы получать битовый поток (например, путем передачи) от кодирующего устройства (например, устройства 30 или 30a). Например, выходной сигнал от кодирующего устройства 30 или 30a может быть обеспечен в качестве входного сигнала для декодирующего устройства 40 или 40a.
Каждое из декодирующих устройств 40 и 40a может содержать декодер 42, который может, например, распаковывать данные в битовом потоке. Арифметическое декодирование может выполняться. Остаточное декодирование может выполняться.
Каждое из декодирующих устройств 40 и 40a может содержать инструмент 43 заполнения шума, обрабатывающий сигналы в FD.
Каждое из декодирующих устройств 40 и 40a может содержать инструмент 44 глобального усиления, обрабатывающий сигналы в FD.
Каждое из декодирующих устройств 40 и 40a может содержать инструмент 45 декодера TNS, обрабатывающий сигналы в FD. TNS может быть кратко описано следующим образом. На стороне кодера и перед квантованием сигнал фильтруется в частотной области (FD) с использованием линейного предсказания, LP, для того, чтобы выровнять сигнал во временной области. На стороне декодера и после обратного квантования сигнал фильтруется обратно в частотную область с использованием обратного фильтра предсказания для того, чтобы сформировать шум квантования во временной области так, чтобы он был замаскирован сигналом.
Каждое из декодирующих устройств 40 и 40a может содержать инструмент формирования 46 MDCT или MDST (другие виды инструментов формирования могут быть использованы). В частности, инструмент формирования 46 MDCT или MDST может обрабатывать сигналы путем применения коэффициентов масштабирования (или квантованных коэффициентов масштабирования), полученных от инструмента 32a SNS кодера, или коэффициентов усиления, вычисленных из декодированных коэффициентов фильтра LP (полученных от инструмента 47 декодирования LPC), преобразованных в спектр MDCT или MDST.
Каждое из декодирующих устройств 40 и 40a может содержать обратный инструмент 48a обратного MDCT или MDST низкой задержки, чтобы преобразовывать представления сигналов из FD в TD (инструменты на основании других видов обратного преобразования могут быть использованы).
Каждое из декодирующих устройств 40 и 40a может содержать инструмент 48b LTPF для выполнения постфильтра в TD, например, на основании параметров, обеспеченных компонентом 38b в декодере.
Каждое из декодирующих устройств 40 и 40a может содержать средство 49 управления полосы частот декодера, выполненное с возможностью выбора полосы частот по меньшей мере одного из инструментов FD. В частности, полосой частот подгруппы (например, формируемой инструментами 43 и 45) может осуществляться управление для того, чтобы она отличалась от полосы частот, в которой другие инструменты FD (42, 44, 46, 47) обрабатывают сигналы. Средство 49 управления полосы частот может получать входной сигнал 39a, который был подготовлен на стороне кодера (например, средством 39 обнаружения и управления полосы частот), чтобы указывать выбранную полосу частот для по меньшей мере одной из подгрупп (33, 36, 43, 45).
В примерах средство 49 управления полосы частот декодера может выполнять операции, подобные обрабатываемым средством 39 обнаружения и управления полосы частот кодера. Однако в некоторых примерах средство 49 управления полосы частот декодера может предполагаться как компонент, который получает управляющие данные (например, кодированные в битовом потоке) от средства 39 обнаружения и управления полосы частот кодера и обеспечивает управляющие данные (например, информацию полосы частот) инструментам из подгруппы (например, инструменту 43 заполнения шума декодера и/или инструменту 45 декодера TNS). В примерах средство 39 управления является ведущим, а средство 49 управления является ведомым. В примерах средство 49 управления полосы частот декодера может быть частью или секцией процессора цифровых сигналов, который, например, осуществляет также другие инструменты декодера.
В общем, средства 39 и 49 управления полосы частот могут работать таким образом, что инструменты FD подгрупп (например, 33 и 36 для кодирующего устройства и/или 43 и 45 для декодирующего устройства) имеют одну и ту же полосу частот, в то время как другие инструменты FD декодера и/или кодера имеют другую полосу частот (например, более широкую полосу).
Было замечено, в сущности, что соответственно существует возможность уменьшить недостатки уровня техники. В то время как для некоторых инструментов FD (например, инструментов TNS, инструментов заполнения шума) может быть предпочтительно фактически выполнять выбор полосы, для других инструментов FD (например, 32, 34, 35, 42, 44, 46, 47) может быть предпочтительно обрабатывать сигналы в более широкой полосе (например, полной полосе). Соответственно, существует возможность избежать спектральных дыр, которые могут присутствовать в случае жесткого выбора полосы частот для всех инструментов (в частности, когда неверная полоса выбирается).
В примерах полоса частот, которая выбирается средством 49 управления полосы частот декодера, может быть одной из конечного количества вариантов (например, конечного количества полос частот). В примерах существует возможность выбрать из узкой полосы NB (например, 4 кГц), широкой полосы WB (например, 8 кГц), полусверхширокой полосы SSWB (например, 12 кГц), сверхширокой полосы SWB (например, 16 кГц) или полной полосы FB (например, 20 кГц).
Выбор может кодироваться в поле данных кодирующим устройством так, что декодирующему устройству известно, какие полосы частот были выбраны (например, согласно выбору, выполняемому средством 39 обнаружения и управления полосы частот кодера).
Фиг. 6a изображает способ 60. Способ 60 может содержать этапы, которые могут выполняться, по меньшей мере частично, по меньшей мере одним из средств 39 и 49 управления. Способ 60 может быть циклическим для того, чтобы выполнять операции в ассоциации с каждым кадром информационного сигнала.
На этапе S61 энергия для каждой полосы может оцениваться (например, средством 39 обнаружения и управления полосы частот).
На этапе S62 полоса частот может быть обнаружена (например, средством 39 обнаружения и управления полосы частот).
На этапе S63 обнаруженная полоса частот может быть выбрана для по меньшей мере одного из инструмента 33 TNS и инструмента 36 оценки шума: эти инструменты будут выполнять свои процессы в полосе частот, обнаруженной на этапе S62.
В качестве дополнения или альтернативы, на этапе S64 параметры могут быть определены (и/или кодированы) в битовом потоке для сохранения и/или передачи и использования декодером. Среди параметров информация выбора полосы частот (например, 39a) может быть кодирована таким образом, что декодеру будет известна обнаруженная и выбранная полоса частот для подгруппы (например, TNS и заполнения/оценки шума).
Затем новый кадр информационного сигнала может быть проверен. Способ 60 может, таким образом, осуществлять цикл путем перехода к этапу S61. Таким образом, решение может осуществляться покадровым образом.
В частности, в соответствии с обнаруженной полосой частот, другое количество битов может быть кодировано в битовом потоке. В примерах, если обнаруживается полоса частот 8 кГц (NB), никакие биты не будут кодированы в битовом потоке. Однако декодер поймет, что полосой частот является 8 кГц.
Каждое из кодирующих устройств 30 и 30a с фиг. 3 и 3a может содержать:
- множество инструментов кодера частотной области, FD, (31-36) для кодирования информационного сигнала, причем информационный сигнал представляет множество кадров; и
- средство 39 обнаружения и управления полосы частот кодера, выполненное с возможностью выбора полосы частот (например, на этапе S63) по меньшей мере для подгруппы (например, инструмента 33 TNS и инструмента 36 средства оценки уровня шума) из множества инструментов кодера FD на основании характеристик информационного сигнала так, что по меньшей мере один (например, 33, 36) из инструментов кодера FD из подгруппы имеет другую полосу частот относительно по меньшей мере одного из инструментов кодера FD (например, 31, 32, 34, 35), которые не находятся в подгруппе.
В частности, средство 39 обнаружения и управления полосы частот кодера может быть выполнено с возможностью выбора полосы частот по меньшей мере одного инструмента кодера FD из подгруппы (33, 36) между по меньшей мере первой полосой частот (например, предельной частотой), общей для по меньшей мере одного (или более) из инструментов кодера FD, которые не находятся в подгруппе, и второй полосой частот (например, NB, WB, SSWB, SWB), отличной от полосы частот по меньшей мере одного (или более) из инструментов кодера FD, которые не находятся в подгруппе.
Таким образом, некоторые инструменты могут работать в полосах частот, отличных друг от друга, и/или выполнять обработку сигналов с использованием полос частот, отличных друг от друга.
Инструменты, которые не находятся в подгруппе (например, глобальное усиление, спектральное формирование шума и так далее), могут работать в открытой цепи относительно выбора полосы частот.
В примерах средство 39 обнаружения и управления полосы частот кодера выполнено с возможностью выбора (например, на этапе S62) полосы частот по меньшей мере одного из множества инструментов (31-36) кодера FD на основании по меньшей мере одной оценки энергии (например, на этапе S61) над информационным сигналом.
Декодирующее устройство 40 с фиг. 4 содержит множество инструментов декодера FD (43-48a) для декодирования информационного сигнала, кодированного в битовом потоке, причем:
инструменты декодера FD разделены:
- на подгруппу, содержащую по меньшей мере один инструмент декодера FD (например, 43, 45);
- на остальные инструменты декодера FD, содержащие по меньшей мере один инструмент декодера FD (например, 44, 46, 48a);
причем декодирующее устройство 40 или 40a выполнено с возможностью выбора полосы частот для по меньшей мере одного из множества инструментов декодера из подгруппы (например, 43, 45) на основании информации полосы частот, включенной в битовый поток, так, что по меньшей мере один из множества инструментов декодера из подгруппы (например, 43, 45) выполняет обработку сигналов в другой полосе частот относительно по меньшей мере одного из остальных инструментов декодера FD из множества инструментов декодера (например, 44, 46, 48a).
Фиг. 6b изображает способ 60b. Способ 60b может быть способом для кодирования информационного сигнала согласно по меньшей мере множеству операций в частотной области, FD, причем способ содержит этапы, на которых:
выбирают полосу частот для подгруппы операций FD (например, S61b);
выполняют первые операции обработки сигналов в полосе частот для подгруппы операций FD (например, S62b);
выполняют вторые операции обработки сигналов в другой полосе частот для операций FD, которые не находятся в подгруппе (например, S63b).
Нет необходимости, например, выполнять этапы S61b и S62b в этом порядке по времени. Например, S62b может выполняться до S61b. S61b и S62b могут также выполняться параллельно (например, с использованием методик разделения времени или подобных).
Фиг. 6c изображает способ 60c. Способ 60c может быть способом для декодирования битового потока с информационным сигналом и управляющими данными (например, 39a), причем способ содержит множество операций обработки сигналов в частотной области, FD, причем способ содержит этапы, на которых:
выбирают вариант полосы частот для подгруппы операций FD на основании управляющих данных (S61c);
выполняют первые операции обработки сигналов в полосе частот для подгруппы операций FD (S62c);
выполняют вторые операции обработки сигналов в другой полосе частот для операций FD, которые не находятся в подгруппе (S63c).
Нет необходимости, например, выполнять этапы S61c и S62c в этом временном порядке. Например, S62c может выполняться до S61c. S61c и S62c могут также выполняться параллельно (например, с использованием методик разделения времени или подобных).
Согласно одному примеру, средство 39 обнаружения и управления полосы частот кодера может обнаруживать энергию для каждой полосы, например, с использованием уравнения, такого как:
X
k
N
B
где () - коэффициенты MDCT или MDST (или любое другое представление сигнала в FD),  (например, 64) - количество полос, и  - индексы, ассоциированные с полосой (причем каждый индекс ассоциирован с интервалом).
Таким образом, существует возможность обнаруживать (например, на этапе S62) полосу частот (например, из конечного количества полос частот). Средство 39 обнаружения и управления полосы частот кодера может иметь возможность обнаруживать обычно используемую полосу частот в передаче речи, т. е. 4 кГц, 8 кГц, 12 кГц и 16 кГц. Например, существует возможность обнаруживать тишину каждой полосы частот. В случае положительного обнаружения тишины для полосы частот специализированные характеристики отсечения на спектре дополнительно обнаруживаются. Например, флаг (или в любом случае данные), касающийся обнаружения тишины, может быть получен следующим образом:
F
bw
T
bw
T
bw
F
bw
bw
bw
n
I
bw
I
bw
N
Q
Q
Q
Q
bw
start
bw
st
op
bw
() - двоичное значение, которое равно 1, если суммирование меньше (), и 0, если суммирование больше (). (), ассоциированное с конкретной полосой частот , указывает тишину (например, с логическим значением «1»), когда суммирование значений энергии меньше пороговой величины для конкретной полосы частот  (и «0» в остальных случаях). Суммирование относится к сумме значений энергии на различных индексах (например, энергия для каждого интервала или полосы), например, для  от первого индекса полосы частот, ассоциированной с индексом (), до последнего индекса полосы частот, ассоциированной с индексом (). Количество проверенных полос частот равно .
F
bw
bw
F
bw
F
b
Q
Q
C
Процедура может останавливаться, когда ()==0 (энергия больше пороговой величины для полосы частот ). В случае, когда (+1)==1, флаги (), указывающие характеристику отсечения спектра, могут быть обнаружены следующим образом
где D определяет расстояние между полосами, где характеристика отсечения должна быть проверена, т. е. D(bw).
Затем существует возможность определить окончательную информацию (информацию полосы частот или информацию выбора полосы частот), которая должна быть использована, чтобы управлять подгруппой (например, инструментом 33 TNS, и/или инструментом 36 оценки уровня шума, и/или инструментом 45 декодера TNS, и/или инструментом 43 заполнения шума). Окончательная информация может быть, например, кодирована в некоторых битах и может принимать такую форму, как
bw
bw
bw
s
f
Параметр полосы частот P (информация выбора полосы частот) может быть использован, чтобы управлять TNS и инструментом заполнения шума, например в декодере, и осуществлять сигнал 39a. Параметр P может сохраняться и/или передаваться в битовом потоке с использованием количества битов nbits. В частности, количество битов не обязательно является постоянным и может варьироваться согласно выбранному шагу дискретизации , таким образом уменьшая полезную информацию для битового потока, где в ней нет необходимости.
Таблица, такая как следующая далее, моет быть использована:
Таблица 1
f
f
N
s
s
bw
- некоторая заданная частота дискретизации (например, 8 кГц, 16 кГц, 24 кГц, 32 кГц и/или 48 кГц), и, для каждой , количество возможных режимов равно +1.
Таким образом, существует возможность кодировать поле управляющих данных, включающее в себя:
- 0 бит данных, соответствующих (сигнализирующих выбор) полосе частот NB;
- 1 бит данных, соответствующий (сигнализирующий выбор одной из) полосе частот NB и WB;
- 2 бита данных, соответствующих (сигнализирующих выбор одной из) полосе частот NB, WB и SSWB;
- 2 бита данных, соответствующих (сигнализирующих выбор одной из) полосе частот NB, WB, SSWB и SWB;
- 3 бита данных, соответствующих (сигнализирующих выбор одной из) полосе частот NB, WB, SSWB, SWB и FB.
bw
bw
start
bw
stop
I
I
Электронная версия по меньшей мере некоторых частей таблицы 1 может сохраняться в кодере и/или кодере. Соответственно, при параметре полосы частот P существует возможность автоматически узнавать управляющую информацию для операций TNS и заполнения шума. Например,  может указывать на начальный индекс, ассоциированный с нижним концом полосы частот,  может указывать на последний индекс, ассоциированный с верхним концом полосы частот. Выбор полосы частот и параметры на основании этого выбора могут, таким образом, быть найдены из таблицы, такой как таблица 1.
s
bw
bw
bw
В примерах, когда f=8000, средство обнаружения полосы частот не является необходимым, и мы имеем P=0 и nbits=0, т. е. параметр P не размещается в битовом потоке. Однако декодер поймет, что выбранной полосой частот является NB (например, на основе электронных инструментов, таких как электронная версия таблицы 1).
bw
Другие способы могут быть использованы. Одна из полос частот NB, WB, SSWB, SWB, FB может быть идентифицирована и передана к инструментам FD подгруппы кодера, таким как инструмент 33 формирования TNS и инструмент 36 средства оценки шума. Информация, такая как параметр P (39a), может быть кодирована и передана декодирующему устройству 40 или 40a так, что инструмент 43 средства оценки шума декодера и инструмент 45 декодера TNS используют информацию, касающуюся выбранной полосы частот.
F
bw
Q
В общем виде характеристики информационного сигнала, которые составляют основу для выбора полосы частот, могут содержать, помимо прочего, одно или несколько из полосы частот сигнала, по меньшей мере одной оценки энергии информационного сигнала, характеристик отсечения на спектре, информации об обнаружении тишины в некоторых конкретных полосах, () и т. д.
Примеры выше позволяют получить мягкое переключение полосы частот.
5.2. MDCT или MDST (или другое преобразование) в кодере
Инструмент 31 модифицированного дискретного косинусного преобразования (MDCT) или модифицированного дискретного синусного преобразования (MDST) (или другого модулированного преобразования с перекрытием) может конвертировать цифровое представление в TD в цифровое представление в FD. Другие примеры (возможно основанные на других преобразованиях, таких как преобразования с перекрытием) могут, однако, быть использованы. Пример обеспечен здесь.
x
n
b
N
x
N
x
F
F
Входной сигнал () текущего кадра  в TD может состоять из  аудиовыборок, где новейший расположен на (-1). К аудиовыборкам прошлых кадров осуществляется доступ путем отрицательного индексирования, например (-1) является новейшим их предыдущих кадров.
t
Входной буфер времени для MDCT  может обновляться согласно
•
•  (инициализация требуется только для целостности)
N
X
k
F
Блок  временных выборок может быть преобразован в коэффициенты частоты () с использованием следующего уравнения:
w
N
N
F
где  - окно MDCT низкой задержки согласно используемому размеру кадра. Окно может быть оптимизировано для =480, и другие версии для различных размеров кадров могут генерироваться посредством интерполяции. Форма окна может быть результатом процедуры оптимизации и может быть обеспечена поточечно.
Также возможно применить MDST или другие преобразования.
5.3.1. LPC в кодере
Анализ линейного кодирования с предсказанием (LPC) может выполняться инструментом 32 LPC. LPC представляет спектральную огибающую цифрового сигнала в сжатой форме, использующую информацию линейной предсказательной модели.
E
b
B
Фильтр LPC может выводиться в искривленной частотной области и, таким образом, быть психоакустически оптимизированным. Чтобы получить автокорреляционную функцию, энергия (), как определено выше, может быть предыскажена следующим образом
где
<i>f</i><sub><i>s</i></sub>
<i>g</i><sub><i>tilt</i></sub>
16000
18
24000
22
32000
26
48000
30
и преобразована во временную область с использованием, например, обратного нечетного DFT
R
R
R
N
N
R
R
N
N
N
Pre
Pre
Pre
B
L
L
Pre
L
L
L
В случае (0)=0 установить (0)=1 и (1..-1)=0. Первые  выборок извлекаются в вектор = (0..-1), где  означает порядок фильтра LP, т. е. =16.
R
L
Коэффициенты фильтра LP могут быть вычислены, например, на основании вектора  посредством процедуры Левинсона-Дурбина. Эта процедура может быть описана следующим псевдокодом:
e
где  - оцененные коэффициенты LPC, и  - ошибка предсказания.
Коэффициенты LPC могут быть взвешены, в примерах, посредством уравнения, такого как:
Коэффициенты LPC могут быть квантованы.
a
k
b
i
w
Например, взвешенные коэффициенты LPC () сначала свертываются с коэффициентами () с использованием
где
и
a
k
c
Коэффициенты () затем могут быть преобразованы в частотную область с использованием
N
A
k
T
где =256 - длина преобразования. Следует заметить, что это преобразование может эффективно осуществляться с использованием усеченного FFT. Действительная и мнимая части () затем извлекаются
A
k
A
k
r
i
LSF могут быть получены путем поиска с переходом через нуль () и (), который может быть описан следующим псевдокодом
Если найдено меньше 16 LSF, LSF устанавливаются согласно
Формирование LPC может выполняться в области MDCT или MDST (FD) путем применения коэффициентов усиления, вычисленных из взвешенных и квантованных коэффициентов фильтра LP, преобразованных в спектр MDCT или MDST.
N
ã
B
Чтобы вычислить =64 усилений формирования LPC, взвешенные коэффициенты фильтра LP  сначала преобразуются в частотную область с использованием нечетного DFT.
g
b
G
b
LPC
LPC
Усиления формирования LPC () затем могут быть получены в виде абсолютных значений ().
LPC
s
Усиления формирования LPC g(b) могут применяться на частотных линиях MDCT или MDST для каждой полосы отдельно для того, чтобы генерировать сформированный спектр X(k), как описано следующим кодом.
Как можно увидеть выше, инструментом LPC, для выполнения анализа LPC, не управляет средство 39 управления: например, нет выбора конкретной полосы частот.
5.3.2. SNS в кодере
Обращаясь к фиг. 4a, существует возможность использовать инструмент 32a средства формирования спектрального шума.
Формирование спектрального шума (SNS) формирует шум квантования в частотной области таким образом, чтобы он минимально воспринимался человеческим ухом, максимизируя качество восприятия декодированного выходного сигнала.
Формирование спектрального шума может выполняться с использованием, например, 16 параметров масштабирования. Эти параметры могут быть получены в кодере путем, во-первых, вычисления энергии спектра MDCT (или MDST, или другого преобразования) в 64 неоднородных полосах, затем путем применения некоторой обработки к 64 энергиям (сглаживание, предыскажение, пороговая величина шума, логарифмическое преобразование), затем путем понижающей дискретизации 64 обработанных энергий с коэффициентом 4, чтобы получить 16 параметров, которые наконец нормализованы и масштабированы. Эти 16 параметров затем могут быть квантованы с использованием вектора. Квантованные параметры затем могут быть интерполированы, чтобы получить 64 интерполированных параметра масштабирования. Эти 64 параметра масштабирования затем используются, чтобы непосредственно сформировать спектр MDCT (или MDST...) в 64 неоднородных полосах. Масштабированные коэффициенты MDCT (или MDST...) затем могут быть квантованы с использованием скалярного квантизатора с размером шага, управляемым глобальным усилением. В декодере обратное масштабирование выполняется в каждых 64 полосах, формируя шум квантования, внесенный скалярным квантизатором. Методика SNS, раскрываемая здесь, может использовать, например, только 16+1 параметров в качестве дополнительной информации, и параметры могут быть эффективно кодированы с низким количеством битов с использованием векторного квантования. Следовательно, количество битов дополнительной информации уменьшается, что может приводить к существенному преимуществу при низкой скорости передачи битов и/или низкой задержке. Нелинейное частотное масштабирование может быть использовано. В этих примерах ни одна из относящихся к LPC функций не используется, чтобы уменьшить сложность. Требуемые функции обработки (сглаживание, предыскажение, пороговая величина шума, логарифмическое преобразование, нормализация, масштабирование, интерполяция) требуют сравнительно очень малой сложности. Только векторное квантование все еще имеет относительно высокую сложность. Однако некоторые методики векторного квантования низкой сложности могут быть использованы с малой потерей в производительности (подходы множественного разделения/множественных этапов). Эта методика SNS не полагается на фильтр восприятия на основе LPC. Она использует 16 параметров масштабирования, которые могут быть вычислены с большим количеством свободы. Гибкость, таким образом, увеличивается.
В кодере 30a инструмент 32 SNS может выполнять по меньшей мере один из следующих этапов:
Этап 1: Энергия для каждой полосы
E
n
B
Энергия для каждой полосы () может быть вычислена следующим образом
X
k
N
B
где () - коэффициенты MDCT (или MDST, или другого преобразования), =64 - количество полос, и  - индексы полос. Полосы могут быть неоднородными и следовать относящемуся к восприятию масштабу барка (меньше на низких частотах, больше на высоких частотах).
Этап 2: Сглаживание
E
b
B
Энергия для каждой полосы () сглаживается с использованием
E
b
B
Этот этап может главным образом использоваться, чтобы сгладить возможные неустойчивости, которые могут возникать в векторе (). Без сглаживания эти неустойчивости усиливаются при конвертировании в логарифмическую область (см. этап 5), в особенности в минимумах, где энергия близка к 0.
Этап 3: Предыскажение
E
b
S
Сглаженная энергия для каждой полосы () затем предыскажается с использованием
g
tilt
где  управляет наклоном предыскажения и зависит от частоты дискретизации. Оно равно, например, 18 при 16 кГц и 30 при 48 кГц. Предыскажение, используемое на этом этапе, имеет ту же самую цель, что и предыскажение, используемое в фильтре восприятия на основе LPC из уровня техники 2, оно увеличивает амплитуду формируемого спектра на низких частотах, что в результате приводит к уменьшенному шуму квантования на низких частотах.
Этап 4: Пороговая величина шума
E
b
P
Пороговая величина шума на -40 дБ добавляется к () с использованием
где пороговая величина шума вычисляется как
Этот этап улучшает качество сигналов, содержащих очень высокие спектральные динамики, таких как, например, колокольчики, путем ограничения усиления амплитуды формируемого спектра в минимумах, что имеет косвенный эффект уменьшения шума квантования в пиках (увеличение шума квантования в минимумах неощутимо).
Этап 5: Логарифм
Преобразование в логарифмическую область затем выполняется с использованием
Этап 6: Понижающая дискретизация
E
b
L
Вектор () затем дискретизируется с понижением с коэффициентом 4 с использованием
где
E
b
L
Этот этап применяет фильтр низких частот (w(k)) к вектору () перед прореживанием. Этот фильтр низких частот имеет эффект, подобный функции рассеивания, используемой в психоакустических моделях: он уменьшает шум квантования в пиках ценой увеличения шума квантования вокруг пиков, где его восприятие уже маскируется.
Этап 7: Удаление среднего и масштабирование
Окончательные коэффициенты масштабирования получаются после удаления среднего и масштабирования с коэффициентом 0,85
Поскольку кодек имеет дополнительное глобальное усиление, удаление среднего может осуществляться без какой-либо потери информации. Удаление среднего также обеспечивает возможность более эффективного векторного квантования. Масштабирование на 0,85 немного сжимает амплитуду кривой формирования шума. Это имеет эффект восприятия, подобный функции рассеивания, упомянутой на этапе 6: уменьшенный шум квантования в пиках и увеличенный шум квантования в минимумах.
Этап 8: Квантование
scfQ
n
Коэффициенты масштабирования квантуются с использованием векторного квантования, производя индексы, которые затем упаковываются в битовый поток и посылаются декодеру, и квантованные коэффициенты масштабирования ().
Этап 9: Интерполяция
scfQ
n
Квантованные коэффициенты масштабирования () интерполируются с использованием:
и преобразуются обратно в линейную область с использованием
Интерполяция может быть использована, чтобы получить гладкую кривую формирования шума и, таким образом, избежать каких-либо больших скачков амплитуды между смежными полосами.
Этап 10: Спектральное формирование
g
b
X
k
SNS
s
Коэффициенты масштабирования SNS () применяются к частотным линиям MDCT (или MDST, или другого преобразования) для каждой полосы отдельно для того, чтобы генерировать сформированный спектр ()
5.4. TNS в кодере
Фиг. 7 изображает способ 70, указывающий операции инструмента TNS, такого как инструмент 33 TNS, кодера 30 или 30a.
bw
На этапе S71 выбор информации, относящейся к выбранной полосе частот (например, параметру P), может быть получен, например, от средства 39 обнаружения и управления полосы частот кодера.
Согласно информации выбора (информации полосы частот), поведение TNS различно для различных полос частот (NB, WB, SSWB, SWB, FB). Пример обеспечен следующей таблицей:
Таблица 2
Например, когда информацией выбора является SWB, TNS будет выполнять фильтрацию дважды (см. num_tns_filters). Как можно увидеть из таблиц, различные индексы ассоциированы с различными полосами частот (например, для NB частота остановки отлична от частоты остановки для WB и так далее).
Таким образом, как можно увидеть, инструмент 33 TNS может работать в другой полосе частот на основании выбора, определенного средством 39 управления. В частности, другие инструменты FD того же самого декодирующего устройства 40 или 40a могут продолжать выполнять процессы на другой частоте.
Этапы кодирования TNS описаны ниже. Прежде всего анализ оценивает набор коэффициентов отражения для каждого фильтра TNS (этап S72). Затем эти коэффициенты отражения квантуются (этап S73). И, наконец, MDCT- или MDST-спектр фильтруется с использованием квантованных коэффициентов отражения (этап S73).
f
f
Обращаясь к этапу S72, полный анализ TNS, описанный ниже, может повторяться для каждого фильтра TNS , где =0..num_tns_filters-1 (num_filters дается в таблице 2). Другие операции анализа TNS могут выполняться, которые обеспечивают коэффициенты отражения.
k
Инструмент TNS может быть выполнен с возможностью выполнения автокорреляции для входного значения TNS. Нормализованная автокорреляционная функция может быть вычислена следующим образом для каждого =0..8 (например)
где
и
f, s
f, s
e
s
гдк sub_start() и sub_stop() даны в таблице 2. () - сумма энергий над спектральной подсекцией (коэффициент нормализации между частотой начала и остановки каждого фильтра).
Для нормализованной автокорреляционной функции может осуществляться корреляционное окно с использованием, например:
В некоторых примерах существует возможность выполнить решение включить/выключить фильтр TNS f в текущем кадре на основании усиления предсказания
Если predGain>thresh, то включить фильтр TNS f
где thresh=1,5, и усиление предсказания может быть вычислено как
Дополнительные этапы, описанные ниже, выполняются только в случае, если фильтр TNS f включен (или в примере, который не использует включение/выключение).
В некоторых примерах весовой коэффициент может быть вычислен как
min
где thresh2=2, γ=0,85 и
Коэффициенты LPC могут быть взвешены с использованием коэффициента γ
Взвешенные коэффициенты LPC могут быть преобразованы в коэффициенты отражения с использованием следующей процедуры:
где rc(k, f)=rc(k) - окончательные оцененные коэффициенты отражения для фильтра TNS f.
Если фильтр TNS f выключен, то коэффициенты отражения могут быть просто установлены как 0: rc(k, f)=0, k=0..8.
На этапе S73 этап квантования может выполняться. Например, для каждого фильтра TNS f коэффициенты отражения (например, полученные на этапе S72) могут квантоваться. Например, скалярное однородное квантование в области арксинуса может быть использовано:
и/или
где  , и nint(.) - функция округления до ближайшего целого, например;
rc
k, f
rc
k, f
i
q
() - выходные индексы квантизатора; и () - квантованные коэффициенты отражения.
Порядок квантованных коэффициентов отражения может быть вычислен с использованием
Полное количество битов, занятых TNS в текущем кадре, может быть вычислено следующим образом
где
и/или
означает операцию округления до целого в большую сторону.
Таблицы tab_nbits_TNS_order и tab_nbits_TNS_coef могут быть заданными.
X
n
s
На этапе S74 цифровое представление информационного сигнала в FD (например, обеспеченное инструментом 32 LPC или инструментом 32a SNS) может фильтроваться. Это представление может, в примерах, иметь форму модифицированного дискретного косинусного или синусного преобразования (MDCT или MDST). Спектр MDCT () может фильтроваться с использованием следующего алгоритма, например:
X
n
f
где () - TNS-фильтрованный спектр MDCT или MDST.
Другие методики фильтрации могут быть использованы. Однако можно увидеть, что TNS применяется к конкретной полосе частот (например, NB, WB, SSWB, SWB, FB), выбранной средством 39 управления на основании характеристик сигнала.
5.5. Спектральное квантование в кодере
f
q
ind
Здесь рассматривается инструмент 34 квантизатора спектра. Спектр MDCT или MDST после фильтрации TNS (X(n)) может квантоваться с использованием мертвой зоны плюс скалярного квантования однородной пороговой величины, и квантованный спектр MDCT или MDST X(n) может затем кодироваться с использованием арифметического кодирования. Глобальное усиление gg может управлять размером шага квантизатора. Это глобальное усиление квантуется с 7 битами, и квантованный индекс глобального усиления gg тогда является целым, например между 0 и 127. индекс глобального усиления может быть выбран так, чтобы количество битов, необходимых для кодирования квантованного спектра MDCT или MDST, было максимально близко к доступному запасу битов.
В одном примере количество битов, доступных для кодирования спектра, может быть дано как
nbits
nbits
nbits
nbits
nbits
nbits
nbits
bw
TNS
LTPF
LPC
/
SNS
gain
nf
где  - количество битов, доступных в одном кадре TD для исходного информационного сигнала,  обеспеченно в таблице 1,  обеспечено из TNS (полное количество битов, занятых TNS в текущем кадре),  ассоциировано, например, с LTPF 38b (количество битов, занятых LTPF), =38, =7 и =3. В примерах также могут учитываться биты защиты (например, биты циклического избыточного кода, CRC).
Смещение может сначала быть вычислено с использованием
offset
offset
spec
spec
est
est
old
old
old
где nbits - значение nbits в предыдущем кадре, nbits - значение nbits в предыдущем кадре, и nbits - значение nbits в предыдущем кадре.
Это смещение может затем быть использовано, чтобы регулировать количество битов, доступных для кодирования спектра
Индекс глобального усиления может затем оцениваться так, чтобы количество битов, необходимых, чтобы кодировать квантованный спектр MDCT или MDST, было максимально близко к доступному запасу битов. Эта оценка основана на дихотомическом поиске низкой сложности, который грубо аппроксимирует количество битов, необходимых, чтобы кодировать квантованный спектр. Алгоритм может быть описан следующим образом
где E[k] - энергия (в дБ) блоков 4 коэффициентов MDCT или MDST, обеспеченная как
Индекс глобального усиления выше первым деквантуется с использованием
f
Спектр X может затем квантоваться с использованием, например:
est
q
Количество битов nbits, необходимых, чтобы кодировать квантованный спектр MDCT или MDST (или, в любом случае, FD) X(n), может быть точно оценено с использованием алгоритма ниже.
Флаг скорости передачи битов первым вычисляется с использованием, например:
Затем индекс последнего ненулевого 2-кортежа получается как
est
Количество битов nbits может быть затем вычислено следующим образом
lookup
bits
где ac и ac - таблицы, которые могут быть заданы.
nbits
nbits
gg
gg
est
spec
ind
ind
Количество битов  может сравниваться с доступным запасом битов . Если они далеки друг от друга, то квантованный индекс глобального усиления  регулируется, и спектр повторно квантуется. Процедура, используемая, чтобы регулировать квантованный индекс глобального усиления , дана ниже
Как можно увидеть выше, спектральным квантованием не управляет средство 39 управления: нет никакого ограничения для конкретной полосы.
5.6. Энтропийное кодирование
Все или часть кодированных данных (данных TNS, данных LTPF, глобального усиления, квантованного спектра...) могут быть энтропийно кодированы, например, путем сжатия согласно любому алгоритму.
Часть этих данных может быть составлена чистыми битами, которые непосредственно помещаются в битовом потоке, начиная с конца битового потока по ходу назад.
Остальные данные могут быть кодированы с использованием арифметического кодирования, начиная с начала битового потока по ходу вперед.
Два поля данных выше могут меняться местами в плане исходной точки и направления считывания/записи битового потока.
Примером в псевдокоде может быть:
5.7. Оценка шума в кодере
Инструмент 36 оценки шума (средство оценки уровня шума) может управлять заполнением шума на стороне декодера. На стороне кодера параметр уровня шума может оцениваться, квантоваться и передаваться или сохраняться в битовом потоке.
X
k
q
Уровень шума может оцениваться на основании спектральных коэффициентов, которые были квантованы в ноль, т. е. ()==0. Индексы для актуальных спектральных коэффициентов даны как
bw
stop
где  может зависеть от полосы частот, обнаруженной на этапе S62 и/или средством 39 обнаружения и управления полосы частот, как определено, например, в следующей таблице:
<b>Полоса частот (</b><i>P</i><sub><i>bw</i></sub>, <b>39a)</b>
NB
WB
SSWB
SWB
FB
<i>bw_stop</i>
80
160
240
320
400
Таблица 3
f
Для идентифицированных индексов средний уровень отсутствующих коэффициентов оценивается на основе спектра после фильтрации TNS (X(k)), например, и нормализуется глобальным усилением.
Окончательный уровень шума может быть квантован в восемь шагов:
Таким образом, инструментом 36 средства оценки уровня шума может управлять средство 39 управления, например, на основании информации 39a полосы частот.
bw
stop
Например, электронная версия таблицы 3 может сохраняться в блоке хранения так, что, когда выбор полосы частот для конкретной полосы частот получается, параметр  легко выводится.
5.8. Энтропийное декодирование в декодере
Все кодированные данные (данные TNS, данные LTPF, глобальное усиление, квантованный спектр...) могут быть энтропийно декодированы на стороне декодера, например, с использованием инструмента 42 декодера. Битовый поток, обеспеченный кодером, может, таким образом, быть развернут согласно любому алгоритму.
5.9. Заполнение шума в декодере
bw
wb
Здесь рассматривается инструмент 43 заполнения шума декодера. Инструментом 43 заполнения шума декодера может управлять, помимо прочего, средство 49 управления полосы частот декодера (и/или средство 39 управления через информацию 39a, кодированную в битовом потоке, такую как поле управляющих данных N и/или P из таблицы 1).
Индексы для актуальных спектральных коэффициентов могут быть даны как
bw
stop
где  может быть дано в таблице 3.
NF
NF
NF
NF
NF
Заполнение шума может применяться над идентифицированными актуальными спектральными линиями I(k) с использованием переданного коэффициента шума F, полученного от кодера. F может быть вычислен в средстве оценки шума на стороне кодера. F может быть трехбитным значением, кодированным в качестве дополнительной информации в битовом потоке. F может быть получен, например, с использованием следующей процедуры:
Здесь обеспечена процедура:
Как получить nf_seed, может быть описано, например, следующим псевдокодом:
bw
stop
Как можно увидеть выше, инструмент 43 фильтра шума декодера может использовать параметр .
bw
bw
stop
stop
В некоторых примерах параметр  явным образом получается в виде значения в битовом потоке. В примерах параметр  получается средством 49 управления на основании информации 39a полосы частот (Pbw) в управляющем поле битового потока, кодированного кодером. Декодер может иметь электронную версию таблицы 3, сохраненную в постоянном блоке хранения. Соответственно, длина битового потока уменьшается.
Таким образом, средство 49 управления полосы частот (и/или средство 39 обнаружения и управления полосы частот декодера через управляющие данные 39a) может управлять инструментом 43 заполнения шума декодера.
5.9. Глобальное усиление в декодере
Глобальное усиление может применяться над спектром после того, как заполнение шума было применено, с использованием, например, формулы, такой как
ind
где gg - индекс глобального усиления, например, полученный от кодера.
5.10. TNS в декодере
Здесь рассматривается инструмент 45 декодера TNS. Квантованные коэффициенты отражения могут быть получены для каждого фильтра TNS f с использованием
i
где rc(k, f) - выходные индексы квантизатора.
Спектр MDCT или MDST  (например, генерируемый инструментом глобального усиления) может затем фильтроваться с использованием следующей процедуры, такой как:
где  - выходной сигнал декодера TNS.
Параметры num_tns_filters, start_freq и stop_freq могут быть обеспечены на основании управляющей информации, обеспеченной кодером.
bw
В некоторых примерах num_tns_filters, start_freq и/или stop_freq не обеспечены явным образом в битовом потоке. В примерах num_tns_filters, start_freq и stop_freq выводятся на основании значения N в управляющем поле битового потока, кодированного кодером. Например, декодер может иметь электронную версию таблицы 2 (или по меньшей мере ее часть), сохраненную в нем. Соответственно, длина битового потока уменьшается.
Таким образом, инструментом 45 декодера TNS может осуществляться управление посредством полосы частот, обнаруженной на стороне кодера.
5.11.1. Формирование MDCT или MDST в декодере
Здесь рассматривается инструмент 46 формирования MDCT или MDST. Формирование LPC или SNS может выполняться в области MDCT (FD) путем применения коэффициентов усиления, вычисленных из декодированных коэффициентов фильтра LP, преобразованных в спектр MDCT или MDST.
B
Чтобы вычислить N усилений формирования LPC, декодированные коэффициенты фильтра LP  могут быть сначала преобразованы в частотную область с использованием нечетного DFT.
LPC
LPC
Усиления формирования LPC g(b) затем могут быть вычислены как обратные абсолютные значения G(b).
LPC
Усиления формирования LPC g(b) могут применяться над TNS-фильтрованными частотными линиями MDCT для каждой полосы отдельно, как описано, для того, чтобы генерировать формированный спектр  , как описано, например, посредством следующего кода:
Как можно увидеть выше, инструмент 46 формирования MDCT или MDST не обязательно должен быть ограничен конкретной полосой частот, и, таким образом, им не обязательно должно управлять средство 49 или 39 управления.
5.11.2. SNS в декодере
инструменте 46a декодера средства формирования шума, SNS
Следующие этапы могут выполняться в :
Этап 1: Квантование
scfQ
n
Индексы квантизатора вектора, произведенные на этапе 8 кодера (см. раздел 5.3.2), считываются из битового потока и используются, чтобы декодировать квантованные коэффициенты масштабирования ().
Этап 2: Интерполяция
То же самое, что и этап 9 в разделе 5.3.2.
Этап 3: Спектральное формирование
g
b
SNS
Коэффициенты масштабирования SNS () применяются над квантованными частотными линиями MDCT (или MDST, или другого преобразования) для каждой полосы отдельно для того, чтобы генерировать декодированный спектр  , как описано следующим кодом.
5.12. Синтез MDCT или MDST в декодере
Здесь рассматривается инструмент 48a обратного MDCT или MDST (другие инструменты на основе других преобразований, таких как преобразования с перекрытием, могут быть использованы).
Реконструированный спектр  может быть преобразован во временную область путем следующих этапов:
1. Генерирование буфера наложения временной области
2. Осуществление окна для наложенного по времени буфера
3. Провести операцию суммирования с перекрытием, чтобы получить реконструированные временные выборки
причем mem_ola_add(n) инициализируется как 0 перед декодированием первого кадра.
Обращаясь к этапу 1, MDST может выполняться путем замены функции косинуса функцией синуса, например, чтобы получить:
Как можно увидеть выше, инструментом 48a обратного MDCT или MDST не осуществляется управление на основании полосы частот, определенной на стороне кодера.
6. ДРУГИЕ ПРИМЕРЫ
Фиг. 8a изображает устройство 110, которое может осуществлять по меньшей мере некоторые инструменты кодирующего устройства 30 или 30a и/или выполнять по меньшей мере некоторые этапы способа 60 и/или 70. Устройство 110 может содержать процессор 111 и постоянный блок 112 памяти, хранящий инструкции, которые, при исполнении процессором 111, могут побуждать процессор 111 осуществлять по меньшей мере один из инструментов TD и/или FD кодирующего устройства 30 или 30a. В частности, инструкции могут осуществлять подгруппу инструментов FD (например, TNS и/или заполнение шума) и других инструментов FD, которые не находятся в подгруппе (например, 31, 32, 34, 35). Инструкции могут также содержать инструкции, которые, при исполнении процессором 111, выполняют выбор полосы частот так, что полоса частот сигналов, обработанных инструментами в подгруппе инструментов FD (например, TNS и/или заполнение шума), отличается от полосы частот сигналов, обработанных другими инструментами FD, которые не находятся в подгруппе (например, 31, 32, 34, 35). Инструкции могут быть такими, чтобы управлять выбором полосы частот на основании обнаружений энергии, ассоциированных с различными полосами частот. Инструкции могут также содержать инструкции, которые, при исполнении процессором 111, позволяют управлять декодером и, в частности, позволяют управлять полосой частот подгруппы инструментов FD (например, 43, 45), которая может отличаться от полосы частот других инструментов FD. Полоса частот, выбранная для подгруппы в кодере, может быть той же самой, что и выбранная для подгруппы в декодере. Постоянный блок 112 памяти может также содержать другие данные, такие как по меньшей мере части электронных версий таблиц 1, 2 и/или 3. Устройство 110 может содержать место 118 хранения для хранения, например, битового потока, полученного из информационного сигнала (например, аудиосигнала). Устройство 110 может содержать блок 117 вывода для передачи данных, например, беспроводным образом, например, с использованием конкретного протокола, такого как Bluetooth. Например, устройство 110 может определять, путем исполнения инструкций, сохраненных в постоянном блоке 112 памяти, битовый поток, который должен быть передан декодеру. Устройство 110 может также содержать блок 116 ввода для получения данных, например, беспроводным образом, например, с использованием конкретного протокола, такого как Bluetooth.
Фиг. 8b изображает устройство 120, которое может осуществлять по меньшей мере некоторые инструменты декодирующего устройства 40 или 40a. Устройство 120 может содержать процессор 121 и постоянный блок 122 памяти, хранящий инструкции, которые, при исполнении процессором 121, могут побуждать процессор 121 осуществлять по меньшей мере один из инструментов TD и/или FD декодирующего устройства 40 или 40a. В частности, инструкции могут осуществлять подгруппу инструментов FD (например, TNS и/или заполнение шума) и другие инструменты FD, которые не находятся в подгруппе (например, 44, 46 и т. д.). Инструкции могут также содержать инструкции, которые, при исполнении процессором 121, выполняют выбор полосы частот так, что полоса частот сигналов, обработанных инструментами в подгруппе инструментов FD (например, TNS и/или заполнение шума), отличается от полосы частот сигналов, обработанных другими инструментами FD, которые не находятся в подгруппе (например, 44, 46 и т. д.). Инструкции могут быть такими, чтобы управлять выбором полосы частот на основании обнаружений энергии, ассоциированных с различными полосами частот, как, например, выполняемые кодером. Инструкции могут также содержать инструкции, которые, при исполнении процессором 121, позволяют работать в качестве кодера и, в частности, позволяют управлять полосой частот подгруппы инструментов FD (например, 43, 45), которая может отличаться от полосы частот других инструментов FD. Полоса частот, выбранная для подгруппы в кодере, может быть той же самой, что и выбранная для подгруппы в декодере. Постоянный блок 122 памяти может также содержать другие данные, такие как по меньшей мере части электронных версий таблиц 1, 2 и/или 3. Устройство 120 может содержать место 128 хранения для хранения, например, битового потока, полученного из информационного сигнала (например, аудиосигнала). Устройство 120 может содержать блок 127 вывода для передачи данных, например, беспроводным образом, например, с использованием конкретного протокола, такого как Bluetooth. Устройство 120 может также содержать блок 126 ввода для получения данных, например, беспроводным образом, например, с использованием конкретного протокола, такого как Bluetooth. Например, устройство 120 может получить, путем исполнения инструкций, сохраненных в постоянном блоке 122 памяти, битовый поток, переданный декодером.
В примерах устройства 110 и 120 могут быть одним и тем же устройством. В примерах композиция различных устройств 110 и 120 формируют систему.
В зависимости от конкретных требований осуществления, примеры могут осуществляться в аппаратных средствах. Осуществление может выполняться с использованием цифрового носителя данных, например гибкого диска, универсального цифрового диска (DVD), диска Blu-Ray, компакт-диска (CD), постоянного запоминающего устройства (ROM), программируемого постоянного запоминающего устройства (PROM), стираемого и программируемого постоянного запоминающего устройства (EPROM), электрически стираемого программируемого постоянного запоминающего устройства (EEPROM) или флэш-памяти, имеющего электронно читаемые управляющие сигналы, сохраненные на нем, которые взаимодействуют (или имеют возможность взаимодействия) с программируемой компьютерной системой так, чтобы выполнялся соответствующий способ. Таким образом, цифровой носитель данных может быть машиночитаемым.
В общем случае примеры могут осуществляться в качестве компьютерного программного продукта с программными инструкциями, причем программные инструкции имеют возможность работать для выполнения одного из способов, когда компьютерный программный продукт выполняется на компьютере. Программные инструкции могут, например, сохраняться на машиночитаемом носителе.
Другие примеры содержат компьютерную программу для выполнения одного из способов, описанных здесь, сохраненную на машиночитаемом носителе. Иными словами, пример способа является, таким образом, компьютерной программой, имеющей программные инструкции для выполнения одного из способов, описанных здесь, когда компьютерная программа запущена на компьютере.
Дополнительный пример способов представляет собой, таким образом, носитель данных (или цифровой носитель данных или машиночитаемый носитель), содержащий записанную на нем компьютерную программу для выполнения одного из способов, описанных здесь. Носитель данных, цифровой носитель данных или носитель записи являются материальными и/или постоянными, а не сигналами, которые нематериальны и кратковременны.
Дополнительный пример содержит блок обработки, например компьютер, или программируемое логическое устройство, выполняющее один из способов, описанных здесь.
Дополнительный пример содержит компьютер, имеющий установленную на нем компьютерную программу для выполнения одного из способов, описанных здесь.
Дополнительный пример содержит устройство или систему, переносящую (например, электронным или оптическим образом) компьютерную программу для выполнения одного из способов, описанных здесь, к приемнику. Приемник может, например, быть компьютером, мобильным устройством, устройством памяти или подобным. Устройство или система может, например, содержать файловый сервер для переноса компьютерной программы к приемнику.
В некоторых примерах программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может быть использовано, чтобы выполнять некоторые или все из функциональных возможностей способов, описанных здесь. В некоторых примерах программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором для того, чтобы выполнять один из способов, описанных здесь. В общем случае способы могут выполняться любым надлежащим аппаратным устройством.
Вышеописанные примеры являются иллюстративными для принципов, рассмотренных выше. Следует понимать, что модификации и вариации компоновок и подробностей, описанных здесь, будут очевидны. Намерением, таким образом, является ограничение объемом дальнейшей патентной формулы, а не конкретными подробностями, представленными здесь в форме описания и объяснения примеров.