СПОСОБЫ, УСТРОЙСТВА И СИСТЕМЫ ДЛЯ УЛУЧШЕНИЯ УНИФИЦИРОВАННОГО ДЕКОДИРОВАНИЯ И КОДИРОВАНИЯ РЕЧИ И ЗВУКА
METHODS, DEVICES AND SYSTEMS FOR IMPROVEMENT OF UNIFIED DECODING AND CODING OF SPEECH AND AUDIO

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет согласно следующим приоритетным заявкам: предварительная заявка на патент Индии 201741045575 (ссылочный номер: D17116CINP1), поданная 19 декабря 2017 года, и предварительная заявка на патент США 62/665,746 (ссылочный номер: D17116CUSP1), поданная 02 мая 2018 года, содержание которых полностью включено в настоящую заявку посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
Настоящий документ относится к устройствам и способам для декодирования закодированных потоков унифицированного кодирования речи и звука (USAC). Настоящий документ также относится к такому устройству и способу, которые сокращают вычислительную нагрузку во время выполнения.
УРОВЕНЬ ТЕХНИКИ
Кодеры и декодеры для унифицированного кодирования речи и звука (USAC), специфицированного в международном стандарте ISO/IEC 23003-3:2012 (далее называемого "стандарт USAC"), включают в себя несколько модулей (блоков), которые требуют нескольких этапов комплексных вычислений. Каждый из этих этапов вычислений может быть обременительным для аппаратных систем, реализующих эти кодеры и декодеры. Примеры таких модулей включают в себя модуль (или инструмент) MPS212, модуль гармонической транспозиции QMF, модуль LPC и модуль IMDCT.
Таким образом, существует потребность в реализации модулей кодеров и декодеров USAC, которые сокращают вычислительную нагрузку во время выполнения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
С учетом вышеизложенных проблем настоящий документ обеспечивает устройства и способы для декодирования закодированного потока унифицированного кодирования речи и звука (USAC), а также соответствующие компьютерные программы и запоминающие носители, имеющие признаки соответствующих независимых пунктов формулы изобретения.
Аспект раскрытия относится к устройству для декодирования закодированного потока USAC. Устройство может включать в себя базовый декодер для декодирования закодированного потока USAC. Базовый декодер может включать в себя блок повышающего микширования, выполненный с возможностью выполнить повышающее микширование из моно-сигнала в стерео-сигнал. Блок повышающего микширования может включать в себя блок декоррелятора D, выполненный с возможностью применять фильтр декорреляции к входному сигналу. Блок декоррелятора может быть выполнен с возможностью определять коэффициенты фильтра для фильтра декорреляции посредством обращения к предварительно вычисленным значениям.
Другой аспект раскрытия относится к устройству для кодирования аудиосигнала в поток USAC. Устройство может включать в себя базовый кодер для кодирования потока USAC. Базовый кодер может быть выполнен с возможностью автономно определять коэффициенты фильтра для фильтра декорреляции для использования в блоке повышающего микширования декодера для декодирования потока USAC.
Другой аспект раскрытия относится к способу декодирования закодированного потока USAC. Способ может включать в себя декодирование закодированного потока USAC. Декодирование может включать в себя повышающее микширование из моно-сигнала в стерео-сигнал. Повышающее микширование из моно-сигнала в стерео-сигнал может включать в себя применение фильтра декорреляции к входному сигналу. Применение фильтра декорреляции может включать в себя определение коэффициентов фильтра для фильтра декорреляции посредством обращения к предварительно вычисленным значениям.
Другой аспект раскрытия относится к способу кодирования аудиосигнала в поток USAC. Способ может включать в себя кодирование потока USAC. Кодирование может включать в себя автономное определение коэффициентов фильтра для фильтра декорреляции для использования в блоке повышающего микширования декодера для декодирования закодированного потока USAC.
Другой аспект раскрытия относится к дополнительному устройству для декодирования закодированного потока USAC. Устройство может включать в себя базовый декодер для декодирования закодированного потока USAC. Базовый декодер может включать в себя блок eSBR для расширения частотной полосы входного сигнала. Блок eSBR может включать в себя модуль гармонической транспозиции на основе QMF. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью обрабатывать входной сигнал в области QMF в каждом множестве поддиапазонов синтеза для расширения частотной полосы входного сигнала. Модуль гармонической транспозиции на основе QMF может быть дополнительно выполнен с возможностью функционировать по меньшей мере частично на основе предварительно вычисленной информации.
Другой аспект раскрытия относится к дополнительному способу декодирования закодированного потока USAC. Способ может включать в себя декодирование закодированного потока USAC. Декодирование может включать в себя расширение частотной полосы входного сигнала. Расширение частотной полосы входного сигнала может включать в себя обработку входного сигнала в области QMF в каждом из множества поддиапазонов синтеза. Обработка входного сигнала в области QMF может функционировать по меньшей мере частично на основе предварительно вычисленной информации.
Другой аспект раскрытия относится к дополнительному устройству для декодирования закодированного потока USAC. Устройство может включать в себя базовый декодер для декодирования закодированного потока USAC. Базовый декодер может включать в себя реализацию модуля быстрого преобразования Фурье (FFT) на основе алгоритма Кули-Тьюки. Модуль FFT может быть выполнен с возможностью определять дискретное преобразование Фурье (DFT). Определение DFT может включать в себя рекурсивное разделение преобразования DFT на малые преобразования FFT на основе алгоритма Кули-Тьюки. Определение DFT может дополнительно включить в себя использование корня 4 степени, если количество точек FFT является степенью 4, и использование смешанного корня, если это количество не является степенью 4. Выполнение малых FFT может включать в себя применение поворотных коэффициентов. Применение поворотных коэффициентов может включать в себя обращение к предварительно вычисленным значениям для поворотных коэффициентов.
Другой аспект раскрытия относится к дополнительному устройству для декодирования закодированного потока USAC. Устройство может включать в себя базовый декодер для декодирования закодированного потока USAC. Закодированный поток USAC может включать в себя представление фильтра кодирования с линейным предсказанием (LPC), который был квантован с использованием представления линейной спектральной частоты (LSF). Базовый декодер может быть выполнен с возможностью декодировать фильтр LPC из потока USAC. Декодирование фильтра LPC из потока USAC может включать в себя вычисление начального приближения вектора LSF. Декодирование фильтра LPC из потока USAC может дополнительно включать в себя восстановление разностного вектора LSF. Если для квантования фильтра LPC использовался режим абсолютного квантования, декодирование фильтра LPC из потока USAC может дополнительно включать в себя определение обратных весовых коэффициентов LSF для обратного взвешивания разностного вектора LSF посредством обращения к предварительно вычисленным значениям для обратных весовых коэффициентов LSF или их соответствующих весовых коэффициентов LSF. Декодирование фильтра LPC из потока USAC может дополнительно включать в себя обратное взвешивание разностного вектора LSF посредством определенных обратных весовых коэффициентов LSF. Декодирование фильтра LPC из потока USAC может, кроме того, включать в себя вычисление фильтра LPC на основе обратно взвешенного разностного вектора LSF и начального приближения вектора LSF. Весовые коэффициенты LSF могут быть доступны с использованием следующих уравнений
,
где i - индекс, указывающий компонент вектора LSF, w(i) - весовые коэффициенты LSF, W - масштабный коэффициент, и LSF1st - начальное приближение вектора LSF.
Другой аспект раскрытия относится к дополнительному способу декодирования закодированного потока USAC. Способ может включать в себя декодирование закодированного потока USAC. Декодирование может включать в себя использование реализации модуля быстрого преобразования Фурье (FFT) на основе алгоритма Кули-Тьюки. Реализация модуля FFT может включать в себя определение дискретного преобразования Фурье (DFT). Определение DFT может включать в себя рекурсивное разбиение преобразования DFT в меньшие преобразования FFT на основе алгоритма Кули-Тьюки. Определение DFT может дополнительно включать в себя использование корня 4 степени, если количество точек FFT является степенью 4, и использование смешанного корня, если это количество не является степенью 4. Выполнение малых FFT может включать в себя применение поворотных коэффициентов. Применение поворотных коэффициентов может включать в себя обращение к предварительно вычисленным значениям для поворотных коэффициентов.
Другой аспект раскрытия относится к дополнительному способу декодирования закодированного потока USAC. Способ может включать в себя декодирование закодированного потока USAC. Закодированный поток USAC может включать в себя представление фильтра кодирования с линейным предсказанием (LPC), который был квантован с использованием представления линейной спектральной частоты (LSF). Декодирование может включать в себя декодирование фильтра LPC из потока USAC. Декодирование фильтра LPC из потока USAC может включать в себя вычисление начального приближения вектора LSF. Декодирование фильтра LPC из потока USAC может дополнительно включать в себя восстановление разностного вектора LSF. Если для квантования фильтра LPC использовался режим абсолютного квантования, декодирование фильтра LPC из потока USAC может дополнительно включать в себя определение обратных весовых коэффициентов LSF для обратного взвешивания разностного вектора LSF посредством обращения к предварительно вычисленным значениям для обратных весовых коэффициентов LSF или их соответствующих весовых коэффициентов LSF. Декодирование фильтра LPC из потока USAC может дополнительно включать в себя обратное взвешивание разностного вектора LSF посредством определенных обратных весовых коэффициентов LSF. Декодирование фильтра LPC из потока USAC может, кроме того, включать в себя вычисление фильтра LPC на основе обратно взвешенного разностного вектора LSF и начального приближения вектора LSF. Весовые коэффициенты LSF могут быть доступны с использованием следующих уравнений
,
где i - индекс, указывающий компонент вектора LSF, w(i) - весовые коэффициенты LSF, W - масштабный коэффициент, и LSF1st - начальное приближение вектора LSF.
Дополнительные аспекты раскрытия относятся к носителям записи, включающим в себя программы программного обеспечения, выполненные с возможностью исполнения на процессоре и выполнения этапов способов в соответствии с приведенными выше аспектами раскрытия.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1
схематично иллюстрирует пример кодера для USAC,
Фиг. 2
схематично иллюстрирует пример декодера для USAC,
Фиг. 3
фиг. 2
схематично иллюстрирует блок OTT декодера на ,
Фиг. 4
фиг. 3
схематично иллюстрирует блок декоррелятора блока OTT на ,
Фиг. 5
- блок-схема, схематично иллюстрирующая обратное квантование фильтра LPC,
Фиг. 6
фиг. 2
схематично иллюстрирует блок IMDCT декодера на , и
Фиг. 7
фиг. 8
и  - блок-схемы последовательности этапов, схематично иллюстрирующие примеры способов декодирования закодированного потока USAC.
ПОДРОБНОЕ ОПИСАНИЕ
Фиг. 1
2
и  иллюстрируют пример кодера 1000 и пример декодера 2000, соответственно, для унифицированного кодирования речи и звука (USAC).
Фиг. 1
иллюстрирует пример кодера 1000 USAC. Кодер 1000 USAC включает в себя функциональный блок 1902 MPEG Surround (MPEGS) для управления стерео или многоканальной обработкой, и блок 1901 усовершенствованной SBR (репликации спектральной полосы) (eSBR), который управляет параметрическим представлением более высоких звуковых частот во входном сигнале. Также имеются две ветви 1100, 1200, первый путь 1100 включает в себя модифицированный путь инструмента Advanced Audio Coding (AAC), и второй путь 1200 включает в себя путь на основе кодирования с линейным предсказанием (область LP или LPC), который в свою очередь представляет либо представление в частотной области, либо представление во временной области разностного сигнала LPC. Все переданные спектры и для AAC, и для LPC могут быть представлены в области преобразования MDCT после квантования и арифметического кодирования. Представление временной области может использовать схему с кодовым возбуждением ACELP.
Как отмечено выше, может иметься общий (начальный) процесс предварительной/постобработки, выполняемый функциональным блоком 1902 MPEGS для управления стерео или многоканальной обработкой и блоком 2901 eSBR, соответственно, который управляет параметрическим представлением более высоких звуковых частот во входном сигнале, и который может использовать способы гармонической транспозиции, изложенные в настоящем документе.
Блок 1901 eSBR кодера 1000 может содержать системы воссоздания высоких частот, изложенные в настоящем документе. В частности, блок 1901 eSBR может содержать набор анализирующих фильтров, чтобы сформировать множество сигналов поддиапазонов анализа. Эти сигналы поддиапазонов анализа затем могут быть перемещены в блок нелинейной обработки, чтобы сформировать множество сигналов поддиапазонов синтеза, которые затем могут быть введены в набор синтезирующих фильтров, чтобы сформировать высокочастотный компонент. Закодированные данные, относящиеся к высокочастотному компоненту, подвергаются слиянию с другой закодированной информацией в мультиплексоре битового потока и пересылаются как закодированный аудиопоток соответствующему декодеру 2000.
Фиг. 2
фиг. 3
AP
иллюстрирует пример декодера 2000 USAC. Декодер 2000 USAC включает в себя функциональный блок 2902 MPEG Surround для управления стерео или многоканальной обработкой. Функциональный блок 2902 MPEG Surround может быть описан, например, в пункте 7.11 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке. Функциональный блок 2902 MPEG Surround может включать в себя блок OTT (блок декодирования OTT) в качестве примера блока повышающего микширования, который может выполнять повышающее микширование из моно-сигнала в стерео-сигнал. Пример блока 300 OTT проиллюстрирован на . Блок 300 OTT может включать в себя декоррелятор D 310 (блок декоррелятора), на который подается входной моно-сигнал M0. Блок 300 OTT может дополнительно включать в себя матрицу 320 микширования (или модуль микширования, применяющий матрицу микширования). Декоррелятор D 310 может обеспечить декоррелированную версию входного моно-сигнала M0. Матрица 320 микширования может микшировать входной моно-сигнал M0 и его декоррелированную версию, чтобы сформировать каналы (например, левый, правый) требуемого стерео-сигнала. Матрица микширования может быть основана, например, на управляющих параметрах CLD, ICC и IPD. Декоррелятор D 310 может содержать всечастотный декоррелятор D.
фиг. 4
AP
TR
TR
AP
AP
Пример декоррелятора D 310 проиллюстрирован на . Декоррелятор D 310 может содержать (например, состоять из) сепаратор 410 сигнала (например, для отделения транзиента), две структуры 420, 430 декоррелятора и блок 440 объединения сигнала. Сепаратор 410 сигнала (блок разделения) может отделить транзиентный компонент сигнала от не транзиентного компонента входного сигнала. Одна из структур декоррелятора в декорреляторе D может представлять собой всечастотный декоррелятор 420 D. Другая из структур декоррелятора может представлять собой транзиентный декоррелятор 430 D. Транзиентный декоррелятор 430 D может обработать сигнал, который подан на него, например, посредством применения фазы к этому сигналу. Всечастотный декоррелятор 420 Dможет включать в себя фильтр декорреляции с зависимой от частоты предварительной задержкой, за которым следуют всечастотные секции (например, IIR). Коэффициенты фильтра могут быть выведены из коэффициентов решетки по-разному, и это зависит от того, используется ли дробная задержка. Другими словами, коэффициенты фильтра выводятся из коэффициентов решетки разным образом в зависимости от того, используется ли дробная задержка или нет. Для декоррелятора с дробной задержкой дробная задержка применяется посредством добавления зависимого от частоты смещения фазы к коэффициентам решетки. Коэффициенты всечастотного фильтра могут быть определены автономно с использованием коэффициентов решетки. Таким образом, коэффициенты всечастотного фильтра могут быть вычислены предварительно. Во время выполнения предварительно вычисленные коэффициенты всечастотного фильтра могут быть получены и использованы для всечастотного декоррелятора 420 D. Например, коэффициенты всечастотного фильтра могут быть определены на основе одной или более поисковых таблиц.
В общем случае коэффициенты решетки (также известные как коэффициенты отражения) преобразовываются в коэффициенты фильтра axn, k и bxn, k следующим образом:
p
где  обозначает комплексное сопряжение от  , и где  являются коэффициентами фильтра для фильтра порядка, заданные следующей рекурсией:
Приведенная выше формула может быть реализована автономно, чтобы получить (например, предварительно вычислить) коэффициенты фильтра до времени выполнения. Во время выполнения на предварительно вычисленные коэффициенты всечастотного фильтра можно ссылаться по мере необходимости, не вычисляя их из коэффициентов решетки. Например, коэффициенты всечастотного фильтра могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка коэффициентов всечастотного фильтра в поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящего коэффициента (коэффициентов) всечастотного фильтра во время выполнения.
При предварительном вычислении коэффициентов всечастотного фильтра ось частот может быть подразделена на множество неперекрывающихся и последовательных областей, например, с первой по четвертую области. Обычно каждая область может соответствовать множеству последовательных частотных диапазонов. Затем отдельная поисковая таблица может быть обеспечена для каждой области, причем соответствующая поисковая таблица включает в себя коэффициенты всечастотного фильтра для этой области частот.
Например, коэффициенты фильтра для коэффициентов решетки для первой области вдоль оси частот могут быть определены на основе:
Коэффициенты фильтра для коэффициентов решетки для второй области вдоль оси частот могут быть определены на основе:
Коэффициенты фильтра для коэффициентов решетки для третьей области вдоль оси частот могут быть определены на основе:
Коэффициенты фильтра для коэффициентов решетки для четвертой области вдоль оси частот могут быть определены на основе:
В приведенной ниже функции ixheaacd_mps_decor_filt_init переменная self->den инициализируется соответствующим коэффициентом фильтра (lattice_coeff_0_filt_den_coeff/ lattice_coeff_1_filt_den_coeff/ lattice_coeff_2_filt_den_coeff/ lattice_coeff_3_filt_den_coeff) на основе частотного диапазона реверберации. Эта переменная self->den (которая является указателем на коэффициент фильтра) используется в функции ixheaacd_mps_allpass_apply, как показано ниже.
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, которое сконфигурировано следующим образом. Устройство может содержать базовый декодер для декодирования закодированного потока USAC. Базовый декодер может включать в себя блок повышающего микширования (например, блок OTT), выполненный с возможностью выполнять повышающее микширование из моно-сигнала в стерео-сигнал. Блок повышающего микширования в свою очередь может включать в себя блок декоррелятора D, выполненный с возможностью применять фильтр декорреляции к входному сигналу. Блок декоррелятора D может быть выполнен с возможностью определять коэффициенты фильтра для фильтра декорреляции посредством обращения к предварительно вычисленным значениям. Коэффициенты фильтра для фильтра декорреляции могут быть предварительно вычислены автономно и до времени выполнения (например, до декодирования) и могут быть сохранены в одной или более поисковых таблицах. Отдельная поисковая таблица может быть обеспечена для каждого множества не накладывающихся диапазонов частотных полос. Определение коэффициентов фильтра может включать в себя запрос предварительно вычисленных значений для коэффициентов фильтра из одной или более поисковых таблиц во время декодирования.
Базовый декодер может содержать функциональный блок MPEG Surround, который включает в себя блок повышающего микширования. Фильтр декорреляции может включать в себя зависимую от частоты предварительную задержку, за которой следуют всечастотные секции. Коэффициенты фильтра могут быть определены для всечастотных секций. Блок повышающего микширования может представлять собой блок OTT, который может выполнять повышающее микширование из моно-сигнала в стерео-сигнал.
Входной сигнал может представлять собой моно-сигнал. Блок повышающего микширования может дополнительно включать в себя модуль микширования для применения матрицы микширования для микширования входного сигнала с выходными данными блока декоррелятора. Блок декоррелятора может включать в себя блок разделения для отделения транзиентного компонента входного сигнала от не транзиентного компонента входного сигнала, блок всечастотного декоррелятора, выполненный с возможностью применять фильтр декорреляции к не транзиентному компоненту входного сигнала, блок транзиентного декоррелятора, выполненный с возможностью обрабатывать транзиентный компонент входного сигнала, и блок объединения сигнала для объединения выходных данных блока всечастотного декоррелятора и выходных данных блока транзиентного декоррелятора. Блок всечастотного декоррелятора может быть выполнен с возможностью определять коэффициенты фильтра для фильтра декорреляции посредством обращения к предварительно вычисленным значениям.
Пример соответствующего способа 700 применения фильтра декорреляции в контексте повышающего микширования из моно-сигнала в стерео-сигнал при декодировании закодированного потока USAC показан в блок-схеме последовательности этапов на фиг. 7.
этапе S710
этапе S720
этапе S730
этапе S740
На  транзиентный компонент входного сигнала отделяется от не транзиентного компонента входного сигнала. На , фильтр декорреляции применяется к не транзиентному компоненту входного сигнала посредством блока всечастотного декоррелятора. Коэффициенты фильтра для фильтра декорреляции определяются посредством обращения к предварительно вычисленным значениям. На , транзиентный компонент входного сигнала обрабатывается посредством блока транзиентного декоррелятора. На , выходные данные блока всечастотного декоррелятора и выходные данные блока транзиентного декоррелятора объединяются.
фиг. 2
Как проиллюстрировано на , декодер 2000 USAC дополнительно включает в себя блок 2901 усовершенствованной репликации спектральной полосы (eSBR). Блок 2901 eSBR может быть описан, например, в пункте 7.5 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке. Блок 2901 eSBR принимает закодированный битовый аудиопоток или закодированный сигнал от кодера. Блок 2901 eSBR может сформировать высокочастотный компонент сигнала, который подвергается слиянию с декодированным низкочастотным компонентом для получения декодированного сигнала. Другими словами, блок 2901 eSBR может восстановить верхний диапазон аудиосигнала. Он может быть основан на репликации последовательностей гармоник, усеченных во время кодирования. Кроме того, он может отрегулировать огибающую спектра сформированной высокочастотной полосы, и применить обратную фильтрацию и добавить шумовые и синусоидальные компоненты, чтобы воссоздать спектральные характеристики первоначального сигнала. Выходные данные инструмента eSBR могут представлять собой либо сигнал во временной области, либо представление сигнала в области набора фильтров (например, QMF-области), например, в случае использования MPS212.
Блок 2901 eSBR может содержать различные компоненты, такие как набор анализирующих фильтров, блок нелинейной обработки и набор синтезирующих фильтров. Блок 2901 eSBR может включать в себя модуль гармонической транспозиции на основе QMF. Модуль гармонической транспозиции на основе QMF может быть описан, например, в пункте 7.5.4 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке. В модуле гармонической транспозиции на основе QMF расширение частотной полосы входного сигнала (например, сигнала во временной области базового кодера) может быть выполнено полностью в области QMF, например, с использованием модифицированной структуры фазового вокодера, выполняющей прореживание и затем растяжение во времени для каждого поддиапазона QMF. Транспозиция с использованием нескольких коэффициентов транспозиции (например, T=2, 3, 4) может быть выполнена на стадии обычного преобразования анализа/синтеза QMF. Например, в случае sbrRatio="2:1" выходной сигнал модуля транспозиции будет иметь частоту дискретизации в два раза больше чем у входного сигнала (для sbrRatio="8:3": 8/3 частоты дискретизации), и это означает, что для коэффициента транспозиции T=2 комплексные сигналы поддиапазона QMF, полученные из набора анализирующих фильтров QMF модуля комплексной транспозиции, будут растянуты во времени, но не прорежены, и поданы в набор синтезирующих фильтров QMF с удвоенным физическим интервалом поддиапазонов по сравнению с набором анализирующих фильтров QMF модуля транспозиции. Объединенная система может интерпретироваться как три параллельных модуля транспозиции, использующих коэффициенты транспозиции 2, 3 и 4, соответственно. Чтобы сократить сложность, коэффициенты 3 и 4 модуля транспозиции (модули транспозиции третьего и четвертого порядка) могут быть интегрированы в модуль транспозиции с коэффициентом 2 (модуль транспозиции второго порядка) посредством интерполяции. Следовательно, для модуля транспозиции второго порядка требуется только по одной стадии анализирующего и синтезирующего преобразования QMF. Поскольку модуль гармонической транспозиции на основе QMF не обладает адаптивной к сигналу супердискретизацией в частотной области, соответствующий флаг в битовом потоке игнорируется.
В модуле транспозиции QMF комплексное выходное значение коэффициента усиления может быть определено для всех поддиапазонов синтеза на основе:
k
где указывает отсчет поддиапазона.
Вместо вычисления действительных и мнимых частей комплексных экспонент комплексных выходных коэффициентов усиления во время выполнения, эти значения предварительно вычислены автономно (и сохранены), и во время выполнения к ним осуществляется доступ, например, из соответствующих поисковых таблиц.
Таким образом, действительные и мнимые части комплексных экспонент предварительно вычисляются (автономно) и сохраняются. Во время выполнения на предварительно вычисленные действительные и мнимые части комплексных экспонент могут делаться ссылки по мере необходимости без вычисления. Например, действительные и мнимые части комплексных экспонент могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка коэффициентов всечастотного фильтра в поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящих действительных и мнимых комплексных экспонент во время выполнения.
k
Например, одна поисковая таблица может быть обеспечена для действительных частей комплексных экспонент (например, таблица phase_vocoder_cos_tab), и другая поисковая таблица может быть обеспечена для мнимых частей комплексных экспонент (например, таблица phase_vocoder_sin_tab). Во время выполнения индекс  частотной полосы (который может быть обозначен qmf_band_idx) может использоваться для ссылки на эти поисковые таблицы и извлечение подходящих действительных и мнимых частей.
Ω(k)
i
Комплексное умножение отсчетов QMF на выходные коэффициенты усиления в каждом поддиапазоне синтеза для применения выходных коэффициентов усиления  может быть выполнено на основе заданной ниже функции ixheaacd_qmf_hbe_apply(ixheaacd_hbe_trans.c), где qmf_r_out_buf[i] и qmf_i_out_buf[i] указывают действительную и мнимую части, соответственно, отсчета QMF  в соответствующем поддиапазоне синтеза (обозначенном индексом qmf_band_idx).
Ω(k)
Как отмечено выше, умножение для применения выходных коэффициентов усиления  может быть основано на таблице phase_vocoder_cos_tab[k] (для действительных частей) и таблице phase_vocoder_sin_tab[k] (для мнимой части), которые могут быть заданы следующим образом:
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, которое сконфигурировано следующим образом. Устройство может содержать базовый декодер для декодирования закодированного потока USAC. Базовый декодер может включать в себя блок eSBR для расширения частотной полосы входного сигнала, блок eSBR включает в себя модуль гармонической транспозиции на основе QMF. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью обрабатывать входной сигнал в области QMF в каждом множестве поддиапазонов синтеза для расширения частотной полосы входного сигнала. Модуль гармонической транспозиции на основе QMF может быть дополнительно выполнен с возможностью функционировать по меньшей мере частично на основе предварительно вычисленной информации.
Предварительно вычисленная информация может храниться в одной или более поисковых таблицах. Затем модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к предварительно вычисленной информации из одной или более поисковых таблиц во время выполнения.
Блок eSBR может быть выполнен с возможностью восстанавливать компонент частоты верхнего диапазона входного сигнала на основе репликации последовательностей гармоник, которые были усечены во время кодирования, чтобы тем самым расширить частотную полосу входного сигнала. Блок eSBR может быть выполнен с возможностью управлять параметрическим представлением более высоких звуковых частот во входном сигнале.
Модуль гармонической транспозиции на основе QMF может быть дополнительно выполнен с возможностью получать соответствующее комплексное выходное значение коэффициента усиления для каждого из множества поддиапазонов синтеза и применять комплексные выходные значения коэффициента усиления к их соответствующим поддиапазонам синтеза. Предварительно вычисленная информация может относиться к комплексным выходным значениям коэффициента усиления. Комплексные выходные значения коэффициента усиления могут включать в себя действительные и мнимые части, к которым осуществляют доступ из одной или более поисковых таблиц во время выполнения.
X
Low
Также в модуле транспозиции QMF входной временной сигнал базового кодера может быть преобразован в область QMF с использованием блоков входных отсчетов coreCoderFrameLength. Чтобы сэкономить вычислительную сложность, преобразование реализовано посредством применения критической обработки дискретизации сигналов поддиапазона из набора 32-полосных анализирующих фильтров QMF, который уже присутствует в инструменте SBR. Критическая обработка дискретизации может преобразовать матрицу  в новые подматрицы QMF Γ(μ,ν) с удвоенным разрешением с отсчетами поддиапазона. Эти подматрицы QMF могут управляться посредством обработки блока поддиапазона с временной протяженностью в двенадцать отсчетов поддиапазона с шагом отсчета поддиапазона, равным 1. Обработка может выполнить линейные извлечения и нелинейные операции с этими подматрицами и выполняет наложения с суммированием модифицированных подматриц с шагом отсчета поддиапазона, равным 2. Результат состоит в том, что выходные данные QMF подвергаются растяжению в области поддиапазона с коэффициентом 2 и транспозициям в области поддиапазона с коэффициентами T/2=1, 3/2, 2. После синтеза с помощью набора фильтров QMF с удвоенным физическим интервалом поддиапазонов по сравнению набором анализирующих фильтров модуля транспозиции получится требуемая транспозиция с коэффициентами T=2, 3, 4.
u
В одном примере нелинейная обработка одной подматрицы отсчетов может быть обеспечена на основе переменной =0, 1, 2, ..., которая обозначает позицию подматрицы. В целях обозначений в дальнейшем этот индекс может быть опущен, когда он фиксирован. Вместо этого может использоваться следующая индексация подматрицы:
Y(m, k)
m=-6, ..., 5,
k
numPatches
.
k
2k/T
xOverQMF
xOverQmf
<
Выходные данные нелинейной модификации обозначены как , где  и (0)<()Каждый поддиапазон синтеза с индексом  может являться результатом одного порядка транспозиции, и обработка может немного отличаться в зависимости от этого порядка. Общим признаком является то, что выбираются поддиапазоны анализа с индексами, аппроксимирующими .
xOverQmf(1) ≤
k
< xOverQmf(2), где
T=
3
В одном случае, для, нелинейная обработка может использовать линейную интерполяцию для извлечения нецелочисленных отсчетов поддиапазона.
Могут быть определены два индекса n и ñ поддиапазона анализа. Например, индекс ñ поддиапазона анализа может быть определен как целая часть от 2k/T=2k/3, и индекс n поддиапазона анализа может быть определен как n=ñ+κ, где
+
и Z обозначает множество положительных целых чисел.
Блок с заданной временной протяженностью (например, восемь отсчетов поддиапазона) может быть извлечен для ν=n, ñ как
.
Элементы нецелочисленного отсчета поддиапазона могут быть получены посредством фильтра интерполяции с двумя отводами в форме
=
с коэффициентами фильтра, определенными для  и ε0,1, как
X(m,ν)
ν=n,ñ
Отсчеты QMF , полученные этим методом, могут быть преобразованы в полярные координаты для  как
Выходные данные тогда могут быть определены для  как
(3)
и Y(m, k) может быть расширен с помощью нулей для  . Эта последняя операция может быть эквивалентна окну синтеза с прямоугольным окном с длиной восемь. Умножение на комплексный выходной коэффициент усиления Ω(k) может включать в себя методики, описанные выше.
Необходимость определения элементов нецелочисленного отсчета поддиапазона также может возникнуть в контексте добавления векторных произведений, которое описано далее.
k,
k ≤
numPatches
T-2
k
T-1
p
p
xOverQmf
xOverQmf
xOverQmf
xOverQmf
sbrPitchInBins[ch]
C
Для каждого (0) ≤ (), уникальный коэффициент транспозиции T=2, 3, 4 определен по правилу () ≤  ≤ (). Коэффициент усиления векторного произведения Ω(m, k) устанавливается равным нулю, если параметр высоты векторного произведения удовлетворяет <1.  может быть определен из параметрабитового потока как
p
μ
(k)
μ
(k)
t(k)
M
C
1
2
Если  ≥ 1, то Ω(m, k) и промежуточные целочисленные параметры ,  и  могут быть определен следующей процедурой. Пусть  - максимальное из по большей мере T-1 значений  , где
-  - целая часть  и  ;
-  - целая часть  и  ;
-  .
t(k)
T
t(k)
Если  , где  определено как целая часть  , то добавление векторного произведения отменяется, и  . Иначе  определяется как наименьшее  , для которого  и целочисленная пара  определяются как соответствующая максимизирующая пара  . Два коэффициента понижающей дискретизации  и  могут быть определены из значений  и  как конкретные решения уравнения  =T/2, которые даны в следующей таблице:
<i>T</i>
<i>t(k)</i>
<i>D</i><sub><i>1</i></sub><i>(k)</i>
<i>D</i><sub><i>2</i></sub><i>(k)</i>
2
1
0
1
3
1
0
1,5
3
2
1,5
0
4
1
0
2
4
2
0
1
4
3
2
0
В случаях, когда  и  , коэффициент усиления векторного произведения может быть тогда определен как
.
Могут быть извлечены два блока с временной протяженностью, например, в два отсчетов поддиапазона. Например, это извлечение может быть выполнено в соответствии с
где использование коэффициента понижающей дискретизации, равного нолю, может соответствовать повторению одного значения отсчета поддиапазона, и использование нецелочисленного коэффициента понижающей дискретизации потребует вычисления нецелочисленных элементов отсчета поддиапазона. Эти элементы могут быть получены посредством того же самого фильтра интерполяции с двумя отводами в форме:
=
с коэффициентами фильтра, определенными для  и ε0,1, как
1
2
Извлеченные отсчеты QMF X(m) и X(m) преобразовываются в полярные координаты
Член векторного произведения тогда вычисляется как
может быть расширен с помощью нулей для  .
Объединенные выходные данные QMF тогда могут быть получены посредством сложения вкладов  и  .
Из приведенной выше формулы для  мы видим, что
Real (h
(n)) = Real (h
(n))
1
0
Imag (h
(n)) = -Imag (h
(n))
1
0
и
Real (h
(n) ) =
cos(((2*
n+1
) *p)/4)
0
Imag (h
(n)) =
sin(((2*
n+1
) *p)/4)
0
Real (h
(n))
h
(n)
Imag (h
(n))
h
(n)
e
e
e
e
0
0
Гдеотносится к действительной части, и относится к мнимой части комплексного числа. Таким образом, (единственными) релевантными значениями являются Real h(ν) и Imag h(ν).
h
(ν)
Real h
(ν)
Imag h
(ν)
h
(ν)
h
(ν)
h
(ν)
ε
0
0
ε
ε
ε
Формула для определения коэффициентов фильтра  (или эквивалентно  и ) может быть реализована автономно для получения (например, предварительного вычисления) коэффициентов фильтра до времени выполнения. Во время выполнения на предварительно вычисленные коэффициенты фильтра  можно делать ссылку по мере необходимости без вычисления. Например, коэффициенты фильтра  могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка коэффициентов фильтра в поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящего коэффициента (коэффициентов) фильтра во время выполнения.
n,
n
Например, к поисковой таблице можно осуществить доступ на основе значения ν. В качестве примера к следующей таблице осуществляют доступ на основе значения табличные значения соответствуют заданному следующим образом
Real (h
(n) ) =
hbe_post_anal_proc_interp_coeff[((
n+
1) & 3)][0];
0
Imag (h
(n) ) =
hbe_post_anal_proc_interp_coeff[(
n+
1) & 3)][1];
0
h
(ν)
ε
0,3984033437 (0.3984033437f).
Из таблицы можно заметить, что абсолютное значение действительных и мнимых частей коэффициентов является одинаковым. Таким образом, умножение на коэффициенты фильтра  может быть заменено сложениями и вычитаниями (например, действительных и мнимых частей целочисленных отсчетов поддиапазона B(μ,ν) и B(μ+1,ν), соответственно), за которыми следует единственное умножение результата на
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, как описано выше (среди прочего включающего в себя модуль гармонической транспозиции QMF), для которого множество поддиапазонов синтеза может включать в себя нецелочисленные поддиапазоны синтеза с дробным индексом поддиапазона. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью обрабатывать отсчеты, извлеченные из входного сигнала в этих нецелочисленных поддиапазонах синтеза. Предварительно вычисленная информация может относиться к коэффициентам интерполяции для интерполяции отсчетов в нецелочисленных поддиапазонах на основе отсчетов в соседних целочисленных поддиапазонах с целочисленными индексами поддиапазонов. Коэффициенты интерполяции могут быть определены автономно и сохранены в одной или более поисковых таблицах. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к коэффициентам интерполяции из одной или более поисковых таблиц во время выполнения.
Также определение значения коэффициента усиления векторного произведения, заданного следующей формулой
может быть реализовано автономно для получения (например, предварительного вычисления) коэффициентов усиления векторного произведения до времени выполнения. Во время выполнения на предварительно вычисленные коэффициенты усиления векторного произведения можно ссылаться по мере необходимости без вычисления. Например, коэффициенты усиления векторного произведения могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка коэффициентов усиления векторного произведения в поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящего коэффициента (коэффициентов) усиления векторного произведения во время выполнения. Извлечение предварительно вычисленных коэффициентов усиления векторного произведения может быть выполнено посредством того же самого блока нелинейной обработки, как описано выше.
Например, упомянутое выше комплексное значение коэффициента усиления векторного произведения может быть заменено следующими поисковыми таблицами:
hbe_x_prod_cos_table_trans_2, hbe_x_prod_cos_table_trans_3, hbe_x_prod_cos_table_trans_4
1
2
Эти таблицы могут быть вычислены посредством прямой замены этих значений, и к ним может быть осуществлен доступ на основе значений t(k), D(k) и D(k). Например, таблицы могут быть заданы как:
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, как описано выше (среди прочего включающего в себя модуль гармонической транспозиции QMF), для которого модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью извлекать отсчеты из поддиапазонов входного сигнала, получать значения коэффициента усиления векторного произведения для пар извлеченных отсчетов и применять значения коэффициента усиления векторного произведения к соответствующим парам извлеченных отсчетов. Предварительно вычисленная информация может относиться к значениям коэффициента усиления векторного произведения. Значения коэффициента усиления векторного произведения могут быть определены автономно на основе формулы коэффициента усиления векторного произведения и сохранены в одной или более поисковых таблицах. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к значениям коэффициента усиления векторного произведения из одной или более поисковых таблиц во время выполнения.
Модуль транспозиции QMF может включить в себя наборы субдискретизированных фильтров для критической обработки дискретизации QMF. Такие наборы субдискретизированных фильтров для критической обработки дискретизации QMF могут быть описаны, например, в пункте 7.5.4.2 стандарта USAC, который полностью включен в настоящий документ по ссылке. Подмножество поддиапазонов, покрывающих исходный диапазон для модуля транспозиции, может быть синтезировано во временной области посредством малого набора субдискретизированных действительнозначных фильтров QMF. Выходные данные во временной области из этого набора фильтров затем подаются в набор комплекснозначных анализирующих фильтров QMF с удвоенным размером набора фильтров. Этот подход дает существенную экономию вычислительной сложности, поскольку только релевантный исходный диапазон преобразовывается в область поддиапазона QMF, имеющую удвоенное частотное разрешение. Малые наборы фильтров QMF получаются посредством субдискретизации первоначального набора 64-полосных фильтров QMF, в котором прототипные коэффициенты фильтра получены посредством линейной интерполяции первоначального прототипного фильтра.
S
S
S
S
Модуль транспозиции QMF может включать в себя набор действительнозначных субдискретизированных M-канальных синтезирующих фильтров. Набор действительнозначных субдискретизированных M-канальных синтезирующих фильтров модуля транспозиции QMF может быть описан, например, в пункте 7.5.4.2.2 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке. В наборе фильтров множество из M действительнозначных отсчетов поддиапазона может быть вычислено на основе M новых комплекснозначных отсчетов поддиапазона в соответствии с
k
+M
> 24
k
k
=24 - M
L
S
L
L
S
В уравнении exp() обозначает комплексную экспоненциальную функцию, i - мнимая единица.  представляет индекс поддиапазона первого канала из набора фильтров QMF (например, набора 32-полосных фильтров QMF) для входа в набор субдискретизированных синтезирующих фильтров, т.е., первой полосы. Когда coreCoderFrameLength=768 отсчетов и ,  вычисляется как .
Формула для определения комплексных коэффициентов (т.е., комплексных экспонент) может быть реализована автономно для получения (например, предварительного вычисления) комплексных коэффициентов до времени выполнения. Во время выполнения на предварительно вычисленные комплексные коэффициентыможно ссылаться по мере необходимости без вычисления. Например, комплексные коэффициентымогут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка комплексных коэффициентов в поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящего комплексного коэффициента (коэффициентов) фильтра во время выполнения.
S
L
Например, в процессе определения действительнозначного субдискретизированного M-канального синтезирующего фильтра в наборе фильтров QMF упомянутые выше комплексные коэффициенты (т.е., комплексные экспоненты) могут быть определены на основе поисковой таблицы. Значения с нечетными индексами в этой таблице могут соответствовать синусу (мнимому компоненту комплексного значения), и значения с четными индексами могут соответствовать косинусу (действительному компоненту комплексных значений). Разные таблицы могут быть обеспечены для разных начальных полос k.
S
Например, поисковая таблица может быть задана следующим образом (для M=32):
S
S
S
S
S
S
S
S
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, как описано выше (среди прочего включающего в себя модуль гармонической транспозиции QMF), для которого модуль гармонической транспозиции на основе QMF может содержать набор действительнозначных M-канальных синтезирующих фильтров, выполненных с возможностью вычислять множество из M действительнозначных отсчетов поддиапазона из множества из M новых комплекснозначных отсчетов поддиапазона. Каждый действительнозначный отсчет поддиапазона и каждый новый комплекснозначный отсчет поддиапазона могут быть ассоциированы с соответствующим поддиапазоном среди Mподдиапазонов. Вычисление множества из M действительнозначных отсчетов поддиапазона из множества из M новых комплекснозначных отсчетов поддиапазона могут включать в себя, для каждого из M новых комплекснозначных отсчетов поддиапазона, применение соответствующей комплексной экспоненты к этому новому комплекснозначному отсчету поддиапазона и извлечение его действительной части. Соответствующая комплексная экспонента может зависеть от индекса поддиапазона этого нового комплекснозначного отсчета поддиапазона. Предварительно вычисленная информация может относиться к комплексным экспонентам для Mподдиапазонов. Комплексные экспоненты могут быть определены автономно и сохранены в одной или более поисковых таблицах. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к комплексным экспонентам из одной или более поисковых таблиц во время выполнения.
S
S
S
S
v
N
N
N
M
M
M
Далее в наборе действительнозначных субдискретизированных M-канальных синтезирующих фильтров модуля транспозиции QMF отсчеты в массиве  могут быть сдвинуты на 2 позиций. Наиболее старые 2отсчетов могут быть отброшены. действительнозначных отсчетов поддиапазона могут быть умножены на матрицу , т.е. вычисляется матрично-векторное произведение …V, где элементы матрицы  заданы как
S
Матрица N (т.е., ее элементы) могут быть предварительно вычислены (автономно) для всех возможных значений M до времени выполнения. Во время выполнения на предварительно вычисленные матрицы N (т.е., их элементы) можно ссылаться по мере необходимости без вычисления. Например, матрицы Nмогут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка (элементов) матриц Nв поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящей матрицы (элементов) во время выполнения.
s
s=
synth_cos_tab_kl_4, synth_cos_tab_kl_8, synth_cos_tab_kl_12,
synth_cos_tab_kl_16, synth_cos_tab_kl_20
Например, элементы матрицы N для всех возможных значений M(например, M4, 8, 12, 16, 20) могут быть предварительно вычислены и сохраненный в следующих таблицах: , где
s
S
S
Каждая таблица может соответствовать заданному значению M и включает в себя элементы матрицы с размером 2M × M.
S
S
S
S
S
S
S
S
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, как описано выше (среди прочего включающего в себя модуль гармонической транспозиции QMF), для которого модуль гармонической транспозиции на основе QMF может содержать набор действительнозначных M- канальных фильтров синтеза. Набор действительнозначных M-канальных фильтров синтеза может быть выполнен с возможностью обрабатывать массив из M действительнозначных отсчетов поддиапазона, чтобы получить массив из 2M действительнозначных отсчетов поддиапазона. Каждый действительнозначный отсчет поддиапазона среди M действительнозначных отсчетов поддиапазона может относиться к соответствующему поддиапазону среди M поддиапазонов. Обработка массива из M действительнозначных отсчетов поддиапазона может включать в себя выполнение матрично-векторного умножения действительнозначной матрицы N и массива из M действительнозначных отсчетов поддиапазона. Элементы действительнозначной матрицы N могут зависеть от индекса поддиапазона соответствующего отсчета поддиапазона, на который они умножаются при векторно-матричном умножении вектора на матрицу. Далее, предварительно вычисленная информация может относиться к элементам действительнозначной матрицы для матрично-векторного умножения. Элементы действительнозначной матрицы N могут быть определены автономно и сохранены в одной или более поисковых таблицах. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к элементам действительнозначной матрицы N из одной или более поисковых таблиц во время выполнения.
v
N
N
M
M
M
S
S
S
Как отмечено выше, отсчеты в массиве  могут быть сдвинуты на 2 позиций. Наиболее старые 2отсчетов могут быть отброшены. действительнозначных отсчетов поддиапазона могут быть умножены на матрицу , т.е. вычисляется матрично-векторное произведение  · V, где
M
M
S
S
i
i
v
v
g
g
c
w
c
c
Выходные данные этой операции могут быть сохранена в позициях от 0 до 2-1 массива . Отсчеты из массива могут быть извлечены, чтобы создать массив  из 10 элементов. Отсчеты массива могут быть умножены на окно  для получения массива . Оконные коэффициенты могут быть получены посредством линейной интерполяции коэффициентов , т.е. через уравнение
c
Коэффициенты  могут быть определены в таблице 4.A.89 документа ISO/IEC 14496-3:2009, эта таблица полностью включена в настоящий документ по ссылке.
c
c
c
c
c
c
c
i
i
i
i
i
i
Формула для определения оконных коэффициентов  из коэффициентов  может быть реализована автономно для получения (например, предварительного вычисления) оконных коэффициентов  до времени выполнения. Во время выполнения на предварительно вычисленные оконные коэффициенты  можно ссылаться по мере необходимости без вычисления. Например, оконные коэффициенты  могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка оконных коэффициентов  в поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящего оконного коэффициента (коэффициентов)  во время выполнения.
c
(n)
M
M
i
s
S
s
sub_samp_qmf_window_coeff
В одной реализации коэффициенты  для всех возможных значений  (например, M=4, 8, 12, 16, 20) могут быть вычислены и сохранены в таблице. Например, все коэффициенты, соответствующие всем возможным значениям , могут быть предварительно вычислены и сохраненный в (находящейся в постоянном запоминающем устройстве (ПЗУ; ROM)) таблице , которая проиллюстрирована ниже.
map_prot_filter (ixheaacd_hbe_trans.c)
M
s
На основе значениясоответствующие оконные коэффициенты преобразовываются с использованием функции следующим образом
i
S
S
S
i
S
S
Таблица может включать в себя, начиная с позиции индекса 0, оконные коэффициенты c(n), n=0, …, 10M-1, для первого возможного значения M (например, M=4), затем, начиная со следующей позиции индекса, оконные коэффициенты c(n) для второго возможного значения M (например, M=8), и т.д.
S
S
S
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, как описано выше (среди прочего включающего в себя модуль гармонической транспозиции QMF), для которого модуль гармонической транспозиции на основе QMF может содержать набор действительнозначных M-канальных синтезирующих фильтров и набор комплекснозначных 2M-канальных анализирующих фильтров. Предварительно вычисленная информация может относиться к оконным коэффициентам для оконной обработки массивов отсчетов во время синтеза в наборе действительнозначных M-канальных синтезирующих фильтров и/или во время анализа в наборе комплекснозначных 2M-канальных анализирующих фильтров. Оконные коэффициенты могут быть определены автономно на основе линейной интерполяции между сведенными в таблицу значениями для всех возможных значений M или M, соответственно, и сохранены в одной или более поисковых таблицах. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к оконным коэффициентам из одной или более поисковых таблиц во время выполнения.
S
Модуль транспозиции QMF может включать в себя набор комплекснозначных субдискретизированных 2M-канальных анализирующих фильтров. M может быть равно M. Набор комплекснозначных субдискретизированных M-канальных анализирующих фильтров может быть описан, например, в пункте 7.5.4.2.3 стандарта USAC. Этот пункт полностью включен в настоящий документ по ссылке.
x
x
c
c
c
M
M
M
M
S
S
S
S
2i
2i
В наборе анализирующих фильтров отсчеты массива могут быть сдвинуты на 2 позиций. Наиболее старые 2 отсчетов отбрасываются, и 2 новых отсчетов сохраняются в позициях от 0 до 2-1. Отсчеты массива могут быть умножены на оконные коэффициенты . Оконные коэффициенты получены посредством линейной интерполяции коэффициентов , т.е. через уравнение
u
M
u
S
S
где  и  определены как целая и дробная части  , соответственно. Отсчеты могут быть просуммированы, чтобы создать массив из 4M элементов. 2M новых комплекснозначных отсчетов поддиапазона могут быть вычислены на основе матрично-векторного умножения  · , где
В уравнении exp() обозначает комплексную экспоненциальную функцию, и i - мнимая единица.
Формула для определения матрицы M(k, n) (или ее элементов) может быть реализована автономно для получения (например, предварительного вычисления) матрицы (или элементов) до времени выполнения. Во время выполнения на предварительно вычисленные матрицы можно ссылаться по мере необходимости без вычисления. Например, матрицы M(k, n) могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка элементов матрицв поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящих элементов матриц во время выполнения.
M(k, n)
M
s
S
В одной реализации  для всех возможных значений  (например, M=8, 16, 24, 32, 40) могут быть вычислены и сохранены в таблице вместо вычисления во время инициализации (время выполнения). Поисковые таблицы могут быть названы
analy_cos_sin_tab_kl_8, analy_cos_sin_tab_kl_16, analy_cos_sin_tab_kl_24, analy_cos_sin_tab_kl_32
analy_cos_sin_tab_kl_40
и, и проиллюстрированы ниже.
Все элементы с четными индексами в таблице могут соответствовать действительной части (значения косинуса) упомянутых выше комплекснозначных коэффициентов (элементов матрицы M(k, n)), и элементы с нечетными индексами могут соответствовать мнимой части (значения синуса) упомянутых выше комплекснозначных коэффициентов.
M
M
)
M
)
s
s
s
2
2
Общее количество комплексных значений, соответствующих заданному , составляет 8*(. Лишь половины, т.е. 4*( значений достаточно для достижения обработки.
ixheaacd_complex_anal_filt
Функция  иллюстрирует, как могут использоваться таблицы. Это достигнуто при помощи периодической природы значений в этой матрице.
Сами таблицы могут быть заданы следующим образом:
S
S
S
Каждая таблица может соответствовать заданному значению M и включить в себя комплексные элементы матрицы с размером (2M) × (4M). Как отмечено выше, элементы с четными индексами (в предположении, что индексация начинается с нуля) таблиц могут соответствовать действительным частям соответствующих элементов матрицы, тогда как элементы с нечетными индексами могут соответствовать мнимым частям соответствующих элементов матрицы.
S
S
S
S
S
S
S
S
S
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, как описано выше (среди прочего включающего в себя модуль гармонической транспозиции QMF), для которого модуль гармонической транспозиции на основе QMF может содержать набор комплекснозначных 2M-канальных анализирующих фильтров. Набор комплекснозначных 2M-канальных анализирующих фильтров может быть выполнен с возможностью обрабатывать массив из 4M отсчетов поддиапазона для получения массива из 2M комплекснозначных отсчетов поддиапазона. Каждый комплекснозначный отсчет поддиапазона среди 2M действительнозначных отсчетов поддиапазона может быть ассоциирован с соответствующим поддиапазоном среди 2M поддиапазонов. Обработка массива из 4M отсчетов поддиапазона может включать в себя выполнение матрично-векторного умножения комплекснозначной матрицы M и массива из 4M отсчетов поддиапазона. Элементы комплекснозначной матрицы M могут зависеть от индекса поддиапазона соответствующего отсчета поддиапазона среди 2M комплекснозначных отсчетов поддиапазона, в которые элементы матрицы вносят вклад при векторно-матричном умножении. Предварительно вычисленная информация может относиться к элементам комплекснозначной матрицы M для матрично-векторного умножения. Элементы комплекснозначной матрицы M могут быть определены автономно и сохранены в одной или более поисковых таблицах. Модуль гармонической транспозиции на основе QMF может быть выполнен с возможностью осуществлять доступ к элементам комплекснозначной матрицы M из одной или более поисковых таблиц во время выполнения.
Кроме того, в модуле транспозиции QMF может быть выполнен следующий код:
Эта функция vld4q_s32 предназначена для загрузки вектора из 16 32-битных элементов данных из местоположения в памяти (указатель на эту память передается в качестве входного параметра в эту функции). Аналогичным образом, функция vst4q_s32 предназначена для сохранения вектора из 16 32-битных элементов данных в местоположение в памяти (указатель на эту память передается в качестве входного параметра в эту функцию). Функция vld4q_s32 обеспечивает оптимальные для платформы инструкцию и код, поддержка легче, чем фактическое кодирование на ассемблере. Эти две функции достигают такой же цели, как кодирование на ассемблере, однако удобочитаемость, лучше для собственной версии.
Декодер 2000 может дополнительно включать в себя инструмент 2903 фильтра LPC, который производит сигнал временной области из сигнала области возбуждения посредством фильтрации воссозданного сигнала возбуждения через синтезирующий фильтр линейного предсказания.
lpd_mode
Фильтр (фильтры) LPC может быть передан в битовом потоке USAC (в обоих режимах ACELP и TCX). В нем фактическое количество фильтров LPC nb_lpc, которые закодированы в битовом потоке, зависит от комбинации режимов ACELP/TCX кадра USAC. Комбинация режимов ACELP/TCX может быть извлечена из поля (например, поля ) кадра USAC, который в свою очередь определяет режимы кодирования, mod[k] для k=0, ..., 3, для каждого из 4 субкадров, составляющих кадр USAC. Значение режима может быть равно 0 для ACELP, 1 для короткого TCX (coreCoderFrameLength/4 отсчетов), 2 для среднего TCX (coreCoderFrameLength/2 отсчетов), 3 для длинного TCX (coreCoderFrameLength отсчетов).
Битовый поток может быть подвергнут синтаксическому разбору, чтобы извлечь индексы квантования, соответствующие каждому из фильтров LPC, требуемых комбинацией режима ACELP/TCX. Далее описаны операции, требуемые для декодирования одного из фильтров LPC.
Обратное квантование фильтра LPC выполняется, как описано на фиг. 5.
Фильтры LPC квантуются с использованием представления линейных спектральных частот (LSF). Начальное приближение вычисляется посредством режима абсолютного квантования или режимов относительного квантования. Это описано, например, в пункте 7.13.6 стандарта USAC, который полностью включен в настоящий документ по ссылке. Информация, указывающая режим квантования (mode_lpc), включена в битовый поток. Декодер может извлечь режим квантования в качестве первого шага декодирования фильтра LPC.
23003-3:2012 ISO/IEC
Факультативное уточнение, квантованное посредством алгебраического векторного квантования (AVQ), затем вычисляется на основе блока векторного квантования с 8-мерной решеткой RE8 (матрица Госсета). Это описано, например, в пункте 7.13.7 стандарта USAC, который полностью включен в настоящий документ по ссылке. Квантованный вектор LSF воссоздается посредством сложения начального приближения и обратно взвешенного вклада AVQ. (Более подробно см. пункты 7.13.5, 7.13.6, 7.13.7 ). Обратно квантованный вектор LSF может быть затем преобразован в вектор параметров LSP (пара спектральных линий), затем интерполирован и снова преобразован в параметры LPC.
На фиг. 5 закодированные индексы из битового потока USAC принимаются демультиплексором 510, который выдает данные блоку 520 начального приближения и декодеру 530 алгебраического VQ (AVQ). Начальное приближение вектора LSF получается в блоке 510. Разностный вектор LSF получается декодером 530 AVQ. Обратные весовые коэффициенты для разностного вектора LSF могут быть определены на основе начального приближения вектора LSF в блоке 540. Обратное взвешивание выполняется в блоке 550 умножения посредством применения соответствующих обратных весовых коэффициентов к компонентам разностного вектора LSF. Обратно квантованный вектор LSF получается в блоке 560 сложения посредством сложения начального приближения вектора LSF и обратно взвешенного разностного вектора LSF.
RE
8
Чтобы построить обратно квантованный вектор LSF, информация, относящаяся к уточнению AVQ, извлекается из битового потока. AVQ основано на векторном блоке квантования с 8-мерной решеткой . Декодирование фильтров LPC включает в себя декодирование двух 8-мерных подвекторов  взвешенного разностного вектора LSF.
Информация AVQ для этих двух подвекторов может быть извлечена из битового потока. Она может содержать два номера qn1 и qn2 закодированных кодовых книг и соответствующие индексы AVQ. Взвешенный разностный вектор LSF получается посредством конкатенации двух подвекторов  и  уточнения AVQ. Этот взвешенный разностный вектор LSF должен быть обратно взвешен, чтобы инвертировать взвешивание, которое было выполнено в кодере USAC. Следующий подход для обратного взвешивания может использоваться, когда используется режим абсолютного квантования.
1) В режиме абсолютного квантования значения LSF могут быть извлечены из таблицы.
2) Затем мы вычисляем весовые коэффициенты LSF с использованием следующего уравнения
3) Поскольку значения LSF извлечены из таблицы, существующая таблица может быть заменена предварительно вычисленной таблицей, в которой показанные ниже весовые коэффициенты LSF уже взвешены с весовым коэффициентом в
В соответствии с этим обратное взвешивание посредством весовых коэффициентов LSF может быть реализовано автономно для получения (например, предварительного вычисления) взвешенных значений LSF до времени выполнения. Во время выполнения на предварительно вычисленные нагруженные значения LSF можно ссылаться по мере необходимости без вычисления. Например, обратные взвешенные значения LSF могут быть получены (например, считаны, извлечены) из одной или более поисковых таблиц. Фактическая расстановка взвешенных значений LSFв поисковой таблице (таблицах) может быть различной при условии, что декодеру предоставлена процедура для извлечения подходящих обратных взвешенных значений LSF во время выполнения.
Пример поисковой таблицы для использования на этапе 3) показан ниже. Использование этой поисковой таблицы позволяет предотвратить вычисление расстояния LSF, умножения смежного расстояния, за которым следует извлечение квадратного корня и деление.
Следующий пример кода иллюстрирует использование обсуждавшийся выше функции weight_table_avq_flt.
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, которое сконфигурировано следующим образом. Устройство может содержать базовый декодер для декодирования закодированного потока USAC. Закодированный поток USAC может включать в себя представление фильтра кодирования с линейным предсказанием (LPC), который был квантован с использованием представления линейной спектральной частоты (LSF). Базовый декодер может быть выполнен с возможностью декодировать фильтр LPC из потока USAC. Декодирование фильтра LPC из потока USAC может содержать вычисление начального приближения вектора LSF, воссоздание разностного вектора LSF, если для квантования фильтра LPC использовался режим абсолютного квантования, определение обратных весовых коэффициентов LSF для обратного взвешивания разностного вектора LSF посредством обращения к предварительно вычисленным значениям для обратных весовых коэффициентов LSF или их соответствующих весовых коэффициентов LSF, обратное взвешивание разностного вектора LSF посредством определенных обратных весовых коэффициентов LSF и вычисление фильтра LPC на основе обратно взвешенного разностного вектора LSF и начального приближения вектора LSF. Весовые коэффициенты LSF могут быть доступны с использованием следующих уравнений
,
где i - индекс, указывающий компонент вектора LSF, w(i) - весовые коэффициенты LSF, W - масштабный коэффициент, и LSF1st - начальное приближение вектора LSF.
Весовые коэффициенты LSF или обратные весовые коэффициенты LSF могут быть предварительно вычислены автономно (до времени выполнения) и сохранены в одной или более поисковых таблицах. Декодирование фильтра LPC из потока USAC может включать в себя запрос предварительно вычисленных значений для весовых коэффициентов LSF или обратных весовых коэффициентов LSF из одной или более поисковых таблиц во время декодирования.
Декодирование фильтра LPC из потока USAC может дополнительно содержать воссоздание подвекторов уточнения алгебраического векторного квантования (AVQ) разностного вектора LSF из потока USAC и конкатенацию подвекторов уточнения AVQ для получения разностного вектора LSF. Декодирование фильтра LPC из потока USAC может дополнительно содержать определение вектора LSF посредством сложения начального приближения вектора LSF и обратно взвешенного разностного вектора LSF, преобразование вектора LSF в область косинусов для получения вектора LSP и определение коэффициентов линейного предсказания фильтра LPF на основе вектора LSP. Декодирование фильтра LPC из потока USAC может дополнительно содержать извлечение информации, указывающей режим квантования, из потока USAC и определение, использовался ли режим абсолютного квантования для квантования фильтра LPC.
Декодирование фильтра LPC из потока USAC может содержать извлечение компонентов разностного вектора LSF из поисковой таблицы. Поисковая таблица может включать в себя компоненты обратно взвешенного разностного вектора LSF.
Пример соответствующего способа 800 декодирования фильтра LPC в контексте декодирования потока USAC показан в блок-схеме последовательности этапов на фиг. 8.
этапе S810
этапе S820
этапе S830
этапе S840
этапе S850
На  вычисляется начальное приближение вектора LSF. На  воссоздается разностный вектор LSF. На , если режим абсолютного квантования использовался для квантования фильтра LPC, определяются обратные весовые коэффициенты LSF для обратного взвешивания разностного вектора LSF посредством обращения к предварительно вычисленным значениям для обратных весовых коэффициентов LSF или их соответствующих весовых коэффициентов LSF. На  выполняется обратное взвешивание разностного вектора LSF посредством определенных обратных весовых коэффициентов LSF. На  вычисляется фильтр LPC на основе обратно взвешенного разностного вектора LSF и начального приближения вектора LSF. В приведенном выше описании вектор LSF доступен с использованием следующих уравнений
,
где i - индекс, указывающий компонент вектора LSF, w(i) - весовые коэффициенты LSF, W - масштабный коэффициент, и LSF1st - начальное приближение вектора LSF.
Декодер 2000 на фиг. 2 также может включать в себя дополнительные компоненты, которые могут быть совместимы с унифицированным кодеком речи и звука, такие как:
- инструмент 2904 демультиплексора полезной нагрузки битового потока, который разделяет полезную нагрузку битового потока на части для каждого инструмента и предоставляет каждому из инструментов информацию полезной нагрузки битового потока, относящуюся к этому инструменту;
- инструмент 2905 бесшумного декодирования масштабных коэффициентов, который извлекает информацию из демультиплексора полезной нагрузки битового потока, выполняет синтаксический разбор этой информации и декодирует масштабные коэффициенты, закодированные с помощью кода Хаффмана и DPCM;
- инструмент 2905 спектрального бесшумного декодирования, который извлекает информацию из демультиплексора полезной нагрузки битового потока, выполняет синтаксический разбор этой информации, декодирует арифметически закодированные данные и воссоздает квантованные спектры;
- инструмент 2905 обратного квантования, который извлекает квантованные значения для спектров и преобразовывает целочисленные значения в не масштабированные воссозданные спектры; этот блок квантования предпочтительно является блоком квантования с компандированием, коэффициент компандирования которого зависит от выбранного базового режима кодирования;
- инструмент 2905 заполнения шумом, который используется для заполнения спектральных провалов в декодированных спектрах, которые возникают, когда спектральные значения квантуются до нуля, например, вследствие сильного ограничения на потребность разрядов в кодере;
- инструмент 2905 перемасштабирования, который преобразовывает целочисленное представление масштабных коэффициентов в фактические значения и умножает не масштабированные обратно квантованные спектры на релевантные масштабные коэффициенты;
- инструмент 2906 M/S, как описано в ISO/IEC 14496-3;
- инструмент 2907 временного формирования шума (TNS), как описано в ISO/IEC 14496-3;
- инструмент 2908 набора фильтров/переключения блоков, который применяет инверсию отображения частот, которое было выполнено в кодере; обратное модифицированное дискретное косинусное преобразование (IMDCT) предпочтительно используется для инструмента набора фильтров;
- инструмент 2908 набора фильтров/переключения блоков с деформацией времени, который заменяет обычный инструмент набора фильтров/переключения блоков, когда разрешен режим деформации времени; набор фильтров предпочтительно тот же самый (IMDCT) для обычного набора фильтров, дополнительно обработанные с помощью оконной функции отсчеты во временной области отображаются из деформированной временной области в линейную временную область посредством переменной во времени передискретизации;
- инструмент 2902 MPEG Surround (MPEGS), который производит несколько сигналов из одного или более входных сигналов посредством применения сложной процедуры повышающего микширования к входному сигналу (сигналам), управляемой подходящими пространственными параметрами; в контексте USAC MPEGS предпочтительно используется для кодирования многоканального сигнала посредством передачи параметрической вспомогательной информации вместе с переданным микшированным с понижением сигналом;
- инструмент классификатора сигнала, который анализирует первоначальный входной сигнал и формирует из него управляющую информацию, которая инициирует выбор различных режимов кодирования; анализ входного сигнала обычно зависит от реализации и пытается выбрать оптимальный базовый режим кодирования для данного кадра входного сигнала; выходные данные классификатора сигнала в некоторых случаях также могут использоваться, чтобы влиять на поведение других инструментов, например, MPEG Surround, усовершенствованной SBR, набора фильтров с деформацией времени и других;
- инструмент 2909 ACELP, который обеспечивает метод эффективного представления сигнала возбуждения во временной области посредством комбинирования долгосрочного предсказания (адаптивное кодовое слово) с импульсовидной последовательностью (инновационное кодовое слово).
фиг. 6
Пример блока 600 IMDCT схематично проиллюстрирован на . В блоке 600 IMDCT может быть использован модуль 620 FFT. В одной реализации реализация модуля FFT основана на алгоритме Кули-Тьюки. Преобразование DFT рекурсивно разделено на малые преобразования FFT. Алгоритм использует корень 4 степени для количества точек, являющегося степенью 4, и используется смешанный корень, если степень не равна 4.
FFT
Матрица поворотных коэффициентов, используемая четырехточечным , разбивается, как показано ниже, и применяется к входным данным.
IFFT
Матрица поворотных коэффициентов, используемая четырехточечным , разбивается, как показано ниже, и применяется к входным данным.
Разбиение матрицы упомянутым выше методом эффективно помогает при использовании доступных регистров ARM без дополнительных загрузок в стек и выгрузок из стека. Причина состоит в том, что применение упомянутых выше разделенных матриц требует только одного дополнительного вычитания на каждый индекс, так как каждый столбец и каждая строка разделенных матриц включает в себя только два отличных от нуля элемента.
n
Все поворотные коэффициенты предварительно вычисляются, и для реализации нужны только 514 поворотных коэффициентов ((257 значений косинусов и 257 значений синусов) для вычисления всех 2-точечных преобразований FFT до 1024 (210) точек.
C-реализация может быть векторизована в соответствии с различными процессорами (например, ARM, DSP, X86).
Блок MDCT и блок IMDCT могут быть реализованы c использованием блока 610 предварительно вычисленных поворотных коэффициентов, за которым следует блок 620 FFT (модуль FFT) и блок 630 обработки после применения поворотных коэффициентов, что сокращает сложность обработки. Сложность блоков намного меньше, чем для прямой реализации. Кроме того, блок извлекает все преимущества, которые имеет блок FFT. Таблица поворотных коэффициентов, используемая блоками предварительной и постобработки, может быть извлечена из поисковых таблиц.
Следующий код иллюстрирует преобразование FFT настоящего изобретения:
В итоге изложенное выше может соответствовать обработке устройства для декодирования закодированного потока USAC, которое сконфигурировано следующим образом. Устройство может содержать базовый декодер для декодирования закодированного потока USAC. Базовый декодер может включать в себя реализацию модуля быстрого преобразования Фурье (FFT) на основе алгоритма Кули-Тьюки. Модуль FFT выполнен с возможностью определять дискретное преобразование Фурье (DFT). Определение DFT может включать в себя рекурсивное разделение преобразования DFT на малые преобразования FFT на основе алгоритма Кули-Тьюки. Определение DFT может дополнительно включить в себя использование корня 4 степени, если количество точек FFT является степенью 4, и использование смешанного корня, если это количество не является степенью 4. Выполнение малых FFT может включать в себя применение поворотных коэффициентов. Применение поворотных коэффициентов может включать в себя обращение к предварительно вычисленным значениям для поворотных коэффициентов.
Модуль FFT может быть выполнен с возможностью определять поворотные коэффициенты посредством обращения к предварительно вычисленным значениям. Поворотные коэффициенты могут быть предварительно вычислены автономно и сохранены в одной или более поисковых таблицах. Применение поворотных коэффициентов может включать в себя запрос предварительно вычисленных значений для поворотных коэффициентов из одной или более поисковых таблиц во время декодирования.
Модуль FFT может быть выполнен с возможностью использовать матрицу поворотных коэффициентов для 4-точечного FFT, матрица поворотных коэффициентов включает в себя множество поворотных коэффициентов в качестве ее элементов. Матрица поворотных коэффициентов может быть разделена на первую промежуточную матрицу и вторую промежуточную матрицу. Матричное произведение первой промежуточной матрицы и второй промежуточной матрицы может дать в результате матрицу поворотных коэффициентов. Каждая из первой и второй промежуточных матриц может иметь точно два элемента в каждой строке и в каждом столбце. Модуль FFT может быть выполнен с возможностью последовательно применять первую и вторую промежуточные матрицы к входным данным, к которым должны быть применены поворотные коэффициенты. Модуль FFT может быть выполнен с возможностью обращаться к предварительно вычисленным значениям для элементов матрицы поворотных коэффициентов или к предварительно вычисленным значениям для элементов первой и второй промежуточных матриц.
Во время декодирования предсказание комплексного стерео-сигнала требует микшированного с понижением спектра MDCT пары текущих каналов, и в случае complex_coef == 1 требует оценки микшированного с понижением спектра MDST пары текущих каналов, т.е. мнимой дополняющей части спектра MDCT. Микшированная с понижением оценка MDST вычисляется из микширования с понижением преобразования MDCT текущего кадра, и в случае use_prev_frame == 1, микширования с понижением преобразования MDCT предыдущего кадра. Микширование с понижением преобразования MDCT предыдущего кадра dmx_re_prev[g][b] оконной группы g и оконной группы b получается из воссозданных левого и правого спектра этого кадра и индикатора pred_dir текущего кадра.
Во время этого процесса может использоваться значение dmx_length, где значение dmx_length является длиной преобразования MDCT с четным значением, которая зависит от window_sequence. Во время фильтрации вспомогательная функция filterAndAdd() может выполнить фактическую фильтрацию и сложение и может быть определена на основе следующего:
Фрагмент кода FilterandAdd
Фрагмент кода ixheaacd_filter_and_add
Приведенный выше фрагмент кода указывает, что к указателю коэффициента фильтра доступ осуществляется в порядке убывания, в то время как к входным данным доступ осуществляется в порядке возрастания. В Neon, когда эти два вектора загружаются, входные данные загружают от [v1[0]-v1[3]), и фильтр загружается от [v2[0]-v2[3]]. Согласно приведенным выше формулам v1[0] будет умножен на v2[3], что не поддерживается в Neon. Таким образом, мы должны были инвертировать фильтр или входные данные во время выполнения. На это обращена предложенная процедура (например, показанная в нижнем фрагменте кода), в которой мы перестроили коэффициент фильтра, сохраняя их и избегая любой перестановки во время выполнения, тем самым улучшая производительность (количество MCPS)
Способ и система, описанные в настоящем документе, могут быть реализованы как программное обеспечение, программно-аппаратное обеспечение и/или аппаратные средства. Например, некоторые компоненты могут быть реализованы как программное обеспечение, работающее на процессоре цифровой обработки сигналов или микропроцессоре. Другой компонент может быть реализован, например, как аппаратные средства и/или как специализированные интегральные схемы. Сигналы, встречающиеся в описанных способах и системах, могут быть сохранены на носителях, таких как оперативное запоминающее устройство или оптические запоминающие носители. Они могут быть перенесены через сети, такие как радиосети, спутниковые сети, беспроводные сети или проводные сети, например, Интернет. Типичными устройствами, использующими способ и систему, описанные в настоящем документе, являются ТВ-приставки или другое потребительское оборудование, которое декодирует аудиосигналы. На стороне кодирования способ и система могут использоваться в радиостанциях, например, в головных узлах передачи видеоданных.