ЭФФЕКТИВНЫЙ СПОСОБ ПРОЕКТИРОВАНИЯ НАБОРА ФИЛЬТРОВ ДЛЯ MDCT/IMDCT В ПРИЛОЖЕНИЯХ ДЛЯ КОДИРОВАНИЯ РЕЧИ И АУДИОСИГНАЛОВ
EFFICIENT DESIGN OF MDCT/IMDCT FILTERBANK FOR SPEECH AND AUDIO CODING APPLICATIONS

Область техники, к которой относится изобретение
Последующее описание относится в общем к кодирующим устройствам и декодерам, в частности к эффективной реализации MDCT/IMDCT для голосовых и аудио кодеков.
Уровень техники
Одной из целей аудиокодирования является сжатие аудиосигнала до заданного ограниченного объема информации при сохранении в максимально возможной степени первоначального качества звучания. В процессе кодирования аудиосигнал из временной области преобразуют в частотную область, а соответствующая процедура декодирования обращает эту операцию.
В процессе такого кодирования сигнал может быть обработан с применением модифицированного дискретного косинусного преобразования (МДКП (MDCT)). Модифицированное дискретное косинусное преобразование (MDCT) представляет собой преобразование типа преобразования Фурье на основе дискретного косинусного преобразования IV-типа (DCT-IV) с дополнительным свойством, заключающимся в том, что блоки накладываются один на другой, так что конец одного блока совпадает с началом следующего блока. Такое наложение помогает избежать возникновения паразитных спектральных составляющих (артефактов), обусловленных наложением спектров при дискретизации, а в сочетании с присущими DCT свойствами сжатия энергии делает MDCT особенно привлекательным для приложений сжатия сигналов.
MDCT-преобразование нашло также применение в технике сжатия речи. Вокодеры согласно ITU-T G.722.1 и G.722.1C применяют MDCT к входному речевому сигналу, а более поздние алгоритмы ITU-T G.729.1 и G.718 используют это преобразование для обработки остаточного сигнала после применения устройства кодирования способом линейного предсказания с мультикодовым управлением (CELP). Указанные выше вокодеры работают с частотой дискретизации на входе 8 кГц или 16 кГц и с кадрами продолжительностью 10 мс или 20 мс. Следовательно, их наборы фильтров для MDCT реализуют преобразование с размерностью 160 или 320 точек.
Однако если в будущем появятся устройства кодирования речи, поддерживающие функцию переключения блоков, может также потребоваться поддержка меньшей размерности (160, 80, 40 точек).
Сущность изобретения
Ниже представлено упрощенное краткое описание одного или нескольких вариантов осуществления изобретения для понимания основных принципов некоторых вариантов. Это краткое описание не дает исчерпывающего обзора всех возможных вариантов и не ставит своей целью ни указание ключевых или критически важных элементов всех вариантов, ни очерчивание объема каких-либо или всех вариантов. Единственной целью этого краткого описания является представление некоторых принципов одного или нескольких вариантов в упрощенной форме в качестве введения к более подробному описанию, которое будет представлено позднее.
Предложены способ и/или устройство кодирования для вычисления преобразованных величин. На вход поступают представляющие аудиосигнал входные величины во временной области. Здесь может быть предложена модифицированная вырезающая функция, объединяющая коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. В памяти записывают подмножество фрагментарно-симметричных вырезающих коэффициентов, на основе которого можно реконструировать полный набор фрагментарно-симметричных вырезающих коэффициентов. Записанное подмножество фрагментарно-симметричных вырезающих коэффициентов может включать по меньшей мере половину уникальных коэффициентов для каждого набора фрагментарно-симметричных вырезающих коэффициентов. Перед преобразованием входных величин к ним может быть применен полный набор реконструированных фрагментарно-симметричных вырезающих коэффициентов. Входные величины могут быть преобразованы в спектральные коэффициенты с использованием модифицированного дискретного косинусного преобразования (MDCT), рекурсивно разделенного по меньшей мере на дискретное косинусное преобразование IV-типа (DCT-IV), дискретное косинусное преобразование II-типа (DCT-II), или оба - DCT-IV и DCT-II, где размерность каждого такого преобразования меньше размерности MDCT, при этом по меньшей мере некоторые операции умножения из состава MDCT объединены с предшествующей операцией выделения интервала, примененной к входным величинам. DCT-II может представлять собой преобразование с размерностью 5 точек, способное реализовать варианты MDCT различной размерности. Такое MDCT может реализовать преобразование по меньшей мере двух размерностей из ряда преобразований с размерностями 320, 160, 80, 40 точек с использованием того же самого DCT-II. Для реализации вариантов с фиксированной занятой могут быть также выполнены оценка динамического диапазона и перенормировка выходных данных вырезающей функции.
Предложены также способ и/или устройство декодирования для вычисления преобразованных величин. С этой целью принимают спектральные коэффициенты, представляющие аудиосигнал. Эти спектральные коэффициенты могут быть преобразованы в выходные величины во временной области с использованием обратного модифицированного дискретного косинусного преобразования (ОМДКП (IMDCT)), рекурсивно разделенного по меньшей мере на обратное дискретное косинусное преобразование IV-типа (IDCT-IV), обратное дискретное косинусное преобразование II-типа (IDCT-II), или оба - IDCT-IV и IDCT-II, где размерность каждого такого обратного преобразования меньше размерности IMDCT, при этом по меньшей мере некоторые операции умножения из состава IMDCT объединены с последующей операцией выделения интервала, примененной к выходным величинам. Например, IDCT-II представляет собой обратное преобразование с размерностью 5 точек, способное реализовать варианты IMDCT различной размерности. Такое IMDCT может реализовать обратное преобразование по меньшей мере двух размерностей из ряда обратных преобразований с размерностями 320, 160, 80, 40 точек с использованием того же самого ядра IDCT-II. Кроме того, может быть предложена модифицированная вырезающая функция, объединяющая коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. В памяти может быть записано подмножество фрагментарно-симметричных вырезающих коэффициентов, на основе которого можно реконструировать полный набор фрагментарно-симметричных вырезающих коэффициентов. Записанное подмножество фрагментарно-симметричных вырезающих коэффициентов включает по меньшей мере половину уникальных коэффициентов для каждого набора фрагментарно-симметричных вырезающих коэффициентов. После преобразования спектральных коэффициентов к выходным величинам может быть применен полный набор реконструированных фрагментарно-симметричных вырезающих коэффициентов. Для реализации вариантов с фиксированной запятой могут быть также выполнены оценка динамического диапазона и перенормировка выходных данных вырезающей функции.
Еще один пример иллюстрирует способ и/или устройство для выполнения операции выделения интервала. Может быть предложена модифицированная вырезающая функция, объединяющая коэффициенты от этапа преобразования и от этапа выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Эти фрагментарно-симметричные вырезающие коэффициенты могут быть разделены для получения подмножества фрагментарно-симметричных вырезающих коэффициентов и уменьшения общего числа уникальных коэффициентов. В памяти записывают подмножество фрагментарно-симметричных вырезающих коэффициентов, на основе которого можно реконструировать полный набор фрагментарно-симметричных вырезающих коэффициентов. Записанное подмножество фрагментарно-симметричных вырезающих коэффициентов включает по меньшей мере половину уникальных коэффициентов для каждого набора фрагментарно-симметричных вырезающих коэффициентов. Затем могут быть приняты входные величины, представляющие аудиосигнал. К этим входным величинам может быть применен указанный полный набор фрагментарно-симметричных вырезающих коэффициентов для получения вырезанных выходных величин.
В одном примере этап выделения интервала может выполняться перед этапом преобразования. На этапе преобразования может быть выполнено модифицированное дискретное косинусное преобразование (MDCT), рекурсивно разделенное по меньшей мере на дискретное косинусное преобразование IV-типа (DCT-IV), дискретное косинусное преобразование II-типа (DCT-II), или оба - DCT-IV и DCT-II, где размерность каждого такого преобразования меньше размерности MDCT. Коэффициенты на этапе преобразования могут представлять собой косинусные коэффициенты.
В другом примере этап выделения интервала может выполняться после этапа преобразования. На этапе преобразования может быть выполнено обратное модифицированное дискретное косинусное преобразование (IMDCT), рекурсивно разделенное по меньшей мере на обратное дискретное косинусное преобразование IV-типа (IDCT-IV), обратное дискретное косинусное преобразование II-типа (IDCT-II), или оба - IDCT-IV и IDCT-II, где размерность каждого такого обратного преобразования меньше размерности IMDCT.
Краткое описание чертежей
Различные признаки, характер и преимущества настоящего изобретения могут стать очевидными из приведенного ниже подробного описания со ссылками на прилагаемые чертежи, где одинаковые позиционные обозначения указывают одинаковые объекты на всех чертежах.
Фиг.1 представляет блок-схему, иллюстрирующую пример кодирующего устройства, которое может включать набор фильтров для анализа при использовании MDCT.
Фиг.2 представляет блок-схему, иллюстрирующую пример декодера, который может включать набор фильтров для синтеза при использовании IMDCT.
Фиг.3 представляет, как можно реализовать преобразование MDCT с использованием функции ядра DCT-IV с размерностью N/2 точек.
Фиг.4 представляет, как можно реализовать преобразование IMDCT с использованием функции ядра IDCT-IV с размерностью N/2 точек.
Фиг.5 представляет схему, иллюстрирующую преобразование DCT-II с размерностью 5 точек, которое может быть реализовано в качестве составляющей преобразования MDCT в кодирующем устройстве.
Фиг.6 представляет схему, иллюстрирующую преобразование IDCT-II с размерностью 5 точек, которое может быть реализовано в качестве составляющей преобразования IMDCT в декодере.
Фиг.7 представляет блок-схему, иллюстрирующую пример реализации преобразования DCT-IV с размерностью N=10 точек с использованием двух преобразований DCT-II.
Фиг.8 представляет блок-схему, иллюстрирующую пример реализации преобразования IDCT-IV с размерностью N=10 точек с использованием двух преобразований IDCT-II.
Фиг.9 представляет график, иллюстрирующий фрагментарно-симметричную природу вырезающей функции.
Фиг.10 представляет блок-схему, показывающую устройство для вычисления преобразованных величин.
Фиг.11 иллюстрирует пример способа кодирования сигнала с использованием преобразования MDCT на основе преобразования DCT-II в качестве ядра.
Фиг.12 представляет блок-схему, показывающую устройство для вычисления преобразованных величин.
Фиг.13 иллюстрирует пример способа декодирования сигнала с использованием преобразования IMDCT на основе преобразования IDCT-II в качестве ядра.
Фиг.14 представляет блок-схему, показывающую устройство для выполнения операций выделения интервала.
Фиг.15 иллюстрирует пример способа выполнения операций выделения интервала.
Подробное описание изобретения
Различные варианты изобретения теперь будут описаны со ссылками на чертежи, где на всех чертежах одинаковые цифровые позиционные обозначения используют для указания подобных элементов. В последующем описании для целей объяснения приведены многочисленные специфические детали для достижения полного понимания одного или нескольких вариантов настоящего изобретения. Должно быть очевидно, однако, что подобный вариант(ы) может быть реализован на практике и без этих специфичных деталей. В других случаях хорошо известные структуры и устройства показаны в виде блок-схем, чтобы помочь описанию одного или нескольких вариантов.
Общие соображения
Один из признаков позволяет реализовать преобразование MDCT с размерностью N точек путем отображения его в преобразования DCT-IV и DCT-II меньшей размерности N/2 точек с изолированными операциями предумножения, которые можно передвинуть на последующий этап выделения интервала. Т.е. операции выделения интервала могут быть объединены с операциями умножения первой/последней ступени функций ядра MDCT/IMDCT соответственно, уменьшая тем самым общее число операций умножения. Кроме того, MDCT можно систематически проредить с коэффициентом 2 за счет применения равномерно масштабированной функции ядра DCT-II с размерностью 5 точек (использующей самое больше 5 нетривиальных перемножений) в отличие от ядер DCT-IV или Быстрого преобразования Фурье (БПФ (FFT)), применяемых во многих известных реализациях MDCT в аудиокодеках.
На этапе модифицированного выделения интервалов получают фрагментарно-симметричные коэффициенты, которые можно сохранить с использованием только половины этих коэффициентов. Эти особенности позволяют значительно снизить уровень сложности и использовать меньше памяти по сравнению с известными способами.
Структура кодека
Фиг.1 представляет блок-схему, иллюстрирующую пример кодирующего устройства, которое может включать набор фильтров для анализа при использовании MDCT. Кодирующее устройство 102 может принимать входной аудиосигнал 104. Набор 106 фильтров для анализа MDCT (т.е. модифицированного дискретного косинусного преобразования на основе дискретного косинусного преобразования IV-типа) разбивает входной аудиосигнал 104 во временной области на несколько сигналов поддиапазонов и преобразует эти сигналы в частотную область, где каждый сигнал поддиапазона конвертируют в коэффициент преобразования для поддиапазона в блоке. Полученный сигнал затем дискретизируют в дискретизаторе 108 и кодируют в энтропийном кодирующем устройстве 110 для получения потока 112 битов дискретизированного аудиосигнала. Согласно одному из примеров набор 106 фильтров для анализа MDCT может быть реализован посредством вырезающей функции 114, преобразования 116 (например, из временной области в частотную область) и/или масштабной функции 118. Этот набор 106 фильтров для анализа MDCT, включающий вырезающую функцию 114, преобразование 116 и/или масштабную функцию 118, может быть реализован аппаратно (например, в виде процессора, схемы, программируемого логического устройства и т.п.), программно (например, посредством команд, выполняемых процессором) и/или путем сочетания аппаратных и программных средств.
Фиг.2 представляет блок-схему, иллюстрирующую пример декодера, который может включать набор фильтров для синтеза при использовании IMDCT. Декодер 202 может принимать поток 204 битов. Энтропийный декодер 206 декодирует поток 204 битов, который затем деквантуют в деквантизаторе 208 для получения сигнала в частотной области. Набор 210 фильтров для синтеза IMDCT (т.е. обратного модифицированного дискретного косинусного преобразования на основе дискретного косинусного преобразования IV-типа) преобразует сигнал 104 в частотной области назад в аудиосигнал 212 во временной области. Набор 210 фильтров для синтеза IMDCT может обратить работу набора 106 фильтров для анализа MDCT. Согласно одному из примеров набор 210 фильтров для синтеза IMDCT может быть реализован посредством масштабной функции 214, обратного преобразования 216 (например, из частотной области во временную область) и функции 218 выделения интервала плюс наложения и суммирования. Такой набор 210 фильтров для синтеза IMDCT, включающий масштабную функцию 214, обратное преобразование 216 и/или вырезающую функцию 218, может быть реализован аппаратно (например, в виде процессора, схемы, программируемого логического устройства и т.п.), программно (например, посредством команд, выполняемых процессором) и/или путем сочетания аппаратных и программных средств.
Реализация MDCT с использованием DCT-IV и DCT-II
Согласно одному из признаков настоящего изобретения преобразование 116 (фиг.
I) и обратное преобразование 216 (фиг.2) можно проредить и реализовать посредством одного или нескольких преобразований DCT-IV (и IDCT-IV), которые в свою очередь могут быть реализованы в виде одного или нескольких преобразований DCT-II (и IDCT-
II), соответственно.
Модифицированное дискретное косинусное преобразование (MDCT) может быть определено:
Аналогично, обратное MDCT (IMDCT) может быть определено:
где {x(n), для n=0,1,…N-l}, представляет входную последовательность отсчетов, N обозначает длину кадра, X(k) - результирующие коэффициенты MDCT и  представляет реконструированные выходные величины.
Используя матричную запись, преобразование MDCT можно представить матрицей М:
T
Следовательно, X=Mx и , где x представляет матрицу входных отсчетов [х(0),…,х(N-1)], X представляет матрицу результирующих коэффициентов MDCT , и  представляет матрицу реконструированных выходных величин
Для реализации преобразования MDCT его можно отобразить в функцию ядра DCT-IV с размерностью N/2 точек. Например, преобразование 116 на фиг.1 может быть реализовано в виде одного или нескольких преобразований DCT-IV с размерностью N/2 точек.
Преобразование DCT-IV может быть определено как:
При этом преобразование IDCT-IV может быть определено как:
Преобразование MDCT можно отобразить в преобразование DCT-IV с размерностью N/2 точек как:
И преобразование IMDCT можно отобразить в преобразование IDCT-IV с размерностью N/2 точек как:
где
N/4
N/4
где I представляет собой единичную матрицу размером N/4×N/4 и J представляет собой матрицу изменения порядка размером N/4×N/4, а матрица S определена как:
и  представляет собой матрицу DCT-IV размером N/2×N/2, которая может быть определена как:
Используя симметрию и инволюционные свойства матрицы DCT-IV, ее можно отобразить в преобразование DCT-II. Это преобразование DCT-II может быть определено как:
Аналогично, преобразование IDСТ-II может быть определено как:
где , если k=0, otherwise 1.
Фиг.3 представляет, как можно реализовать преобразование MDCT с использованием функции ядра DCT-IV с размерностью N/2 точек. Такое преобразование MDCT может быть реализовано в качестве составной части кодирующего устройства, преобразующей входные отсчеты во временной области в выходные отсчеты в частотной области. Для входной последовательности 304 от X(3N/4) до X(N/4) преобразование MDCT может быть представлено косинусными коэффициентами 306, после чего преобразование 302 DCT-IV генерирует выходные величины 308. Как обсуждается ниже, эти косинусные коэффициенты 306 могут быть поглощены на предшествующем этапе/функции выделения интервала в кодирующем устройстве.
Аналогично фиг.4 представляет, как можно реализовать преобразование IMDCT с использованием функции ядра IDCT-IV с размерностью N/2 точек. Такое преобразование IMDCT может быть реализовано в качестве составной части декодера, преобразующего входные отсчеты частотной области в выходные отсчеты во временной области. Для входной последовательности 404 от Х(0) до X(N/2-1) преобразование IMDCT может быть представлено преобразованием 402 IDCT-IV, после чего используют косинусные коэффициенты 406 для генерации выходных величин 408. Как обсуждается ниже, эти косинусные коэффициенты 406 могут быть поглощены на последующем этапе/функции выделения интервала в декодере. Заметим, что отображение IMDCT и косинусные коэффициенты, показанные на фиг.4, служат для обращения операций отображения MDCT (фиг.3) в предположении, что в кодирующем устройстве и в декодере применяется одна и та же вырезающая функция.
Использование косинусных коэффициентов 306 и 406 в обоих этих отображениях (фиг.3 и 4) обеспечивает численную устойчивость при нулевых и близких к нулю значениях, что не всегда достижимо при использовании коэффициентов других типов (например, обратных косинусных коэффициентов).
Заметим, что входные сигналы для преобразований MDCT и IMDCT можно обрабатывать в формате кадров или блоков, имеющих несколько точек данных. Следовательно, чтобы вокодер (например, кодек G.VBR) мог поддерживать блоки данных с длиной кадра меньше 320, необходимо применять преобразования уменьшенной размерности. Для блоков с длиной кадра 160, 80, 40 и т.д. видно, что все эти размерности кратны 5. Поэтому для последнего, далее не уменьшаемого (методами прореживания) размера блока может использовать преобразование с размерностью 5. Таким образом, видно, что с точки зрения методов прореживания значительно более эффективно разработать преобразование DCT-II с размерностью 5 точек, чем преобразование DCT-IV или FFT.
Преобразование DCT-IV может быть отображено в преобразование DCT-II как:
где D - диагональная матрица с элементами
и  может быть матрица DCT-II размером N/2×N/2, определенная как:
II
II
Фиг.5 представляет схему, иллюстрирующую факторизацию преобразования DCT-II с размерностью 5 точек, которое может быть реализовано в качестве составляющей преобразования MDCT в кодирующем устройстве. Отметим, что коэффициент α в этом преобразовании является двоично-рациональным, вследствие чего умножение на этот коэффициент представляет собой просто операцию двоичного сдвига. Это преобразование с размерностью 5 точек может быть реализовано либо с использованием поворота в плоскости и 5 операций умножения, либо с использованием 4 умножений на факторизирующий поворот в плоскости, либо с использованием операций лифтинга. Для последовательности 502 из 5 входных величин x последовательность 504 выходных величин С в случае преобразования DCT-II с размерностью 5 точек можно получить с использованием 4 нетривиальных умножений и 13 суммирований или 5 умножений и 13 суммирований. Выходные величины С преобразования DCT-II генерируют как:
;
;
; ;
;
II
Фиг.6 представляет схему, иллюстрирующую преобразование IDCT-II с размерностью 5 точек, которое может быть реализовано в качестве составляющей преобразования IMDCT в декодере. Иными словами, это преобразование IDCT-II можно использовать для реализации преобразования IDCT-IV (фиг.4) для преобразования IMDCT в декодере. Это преобразование может быть реализовано либо с использованием поворота в плоскости и 5 операций умножения, либо с использованием 4 умножений на факторизирующий поворот в плоскости, либо с использованием операций лифтинга. Для последовательности 602 входных величин С из 5 точек последовательность 604 выходных величин  604 для преобразования IDCT-II с размерностью 5 точек можно получить с использованием 4 нетривиальных умножений и 13 суммирований или 5 умножений и 12, как показано. Выходные величины  преобразования IDCT-II генерируют как:
;
;
;
II
II
Фиг.7 представляет блок-схему, иллюстрирующую пример реализации преобразования DCT-IV с размерностью N=10 точек с использованием двух преобразований DCT-II (N=5 точек). Для последовательности 702 из десяти входных точек x(0), …, x(9) преобразование DCT-IV с размерностью 10 точек можно реализовать посредством двух преобразований 704 и 706 DCT-II с размерностью 5 точек каждое и коэффициентов 708 для генерации группы 710 выходных коэффициентов C(0), …, С(9). Таким образом, можно использовать преобразование-ядро DCT-II с размерностью 5 точек для реализации преобразований, способных обрабатывать кадры длиной 160, 80, 40 и т.д.
II
II
Фиг.8 представляет блок-схему, иллюстрирующую пример реализации преобразования IDCT-IV с размерностью N=10 точек с использованием двух преобразований IDCT-II (N=5 точек). Для последовательности 802 из десяти входных точек C(0), …, С(9) преобразование IDCT-IV с размерностью 10 точек можно реализовать посредством двух преобразований 804 и 806 DCT-II с размерностью 5 точек каждое и коэффициентов 808 для генерации группы 810 выходных коэффициентов (0), …, (9). Таким образом, можно использовать преобразование-ядро IDCT-II с размерностью 5 точек для реализации преобразований, способных обрабатывать кадры длиной 160, 80, 40 и т.д.
Объединение коэффициентов умножения на этапе выделения интервала
Преобразование MDCT часто применяется в алгоритмах кодирования голосового сигнала и аудиосигнала (например, кодек G.VBR) и по существу представляет собой нормализованное MDCT в сочетании с вырезающей функцией h(n):
.
где f(n) обозначает входные отсчеты данных, h(n) - вырезающая функция и F(k) обозначает выходные спектральные коэффициенты MDCT. Например, вырезающая функция h(n) может быть синусоидальной функцией:
Как обсуждалось ранее, коэффициенты предумножения (например, 306 на фиг.3), участвующие в отображении преобразования DCT-IV в преобразование MDCT, равно как и коэффициенты постумножения (например, 406 на фиг.4), участвующие в отображении преобразования IDCT-IV в преобразование IMDCT, могут быть объединены на соответствующем этапе выделения интервала. Например, вырезающая функция может быть синусоидальной функцией, определяемой, например, как:
Соединение этой вырезающей функции h(n) и коэффициентов преобразования дает модифицированную вырезающую функцию:
Для 0≤n<N/4:
.
Для N/≤n<3N/4:
.
Эти объединенные или комбинированные вырезающие коэффициенты могут быть вычислены предварительно и/или записаны. В случае косинусных коэффициентов 306 на фиг.3 и 406 на фиг.4 это дает объединенные фрагментарные коэффициенты. Следовательно, для модифицированной вырезающей функции нужно хранить всего лишь подмножество (например, половину) этих коэффициентов. Во время выполнения операций выделения интервала над величинами это подмножество записанных коэффициентов можно вызвать из памяти и использовать в соответствии с их фрагментарно-симметричными свойствами.
Фиг.9 представляет график, иллюстрирующий фрагментарно-симметричную природу вырезающей функции (уравнение 20). Если сравнивать с симметричным синусоидальным интервалом, рассматриваемые вырезающие коэффициенты можно сохранить с использованием такого же объема памяти, поскольку записывают только половину всех вырезающих коэффициентов 902 и 904. В этом примере для N=640 отсчетов/коэффициентов и показанного фрагментарно-симметричного интервала первая группа из 160 отсчетов (т.е. от 0 N/4-1) может быть представлена всего лишь первыми 80 отсчетами или коэффициентами 902, поскольку это симметричный участок. Аналогично, вторая группа из 480 отсчетов/коэффициентов (т.е. от N/4 до N) может быть представлена всего лишь первыми 240 отсчетами или коэффициентами 904. Следовательно, сохраняют только половину всех коэффициентов, сберегая тем самым место в памяти. Кроме того, это уменьшение числа отсчетов может также ускорить обработку, поскольку уменьшает число обращений к памяти, используемых для вызова вырезающих коэффициентов.
Пример кодирования с использованием преобразования MDCT
Фиг.10 представляет блок-схему, показывающую устройство для вычисления преобразованных величин. Это устройство 1002 может включать входной модуль 1006, модуль 1010 выделения интервала и/или модуль 1014 преобразования. Входной модуль 1006 может принимать аудиосигнал 1004 и генерировать входные величины 1008 во временной области, представляющие этот аудиосигнал. Модуль 1010 выделения интервала может реализовать модифицированную вырезающую функцию, объединяющую коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Например, модуль 1010 выделения интервала может включать модуль 1018 объединения, модуль 1019 разделения коэффициентов, модуль 1020 памяти и/или вырезающую функцию 1022. Модуль 1018 объединения может выполнять функцию объединения коэффициентов от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Например, косинусные коэффициенты 306 (фиг.3) могут быть объединены с другими коэффициентами вырезающей функции. Модуль 1019 разделения коэффициентов может затем выбрать подмножество фрагментарно-симметричных вырезающих коэффициентов (как показано на фиг.9). Модуль 1020 памяти может затем сохранить это подмножество фрагментарно-симметричных вырезающих коэффициентов, из которого может быть реконструирован полный набор фрагментарно-симметричных вырезающих коэффициентов. Например, это подмножество фрагментарно-симметричных вырезающих коэффициентов может включать по меньшей мере половину уникальных коэффициентов для каждой группы фрагментарно-симметричных вырезающих коэффициентов. Модуль 1010 выделения интервала может быть (посредством вырезающей функции 1022) конфигурирован для применения полного набора реконструированных фрагментарно-симметричных вырезающих коэффициентов к входным величинам 1008 перед преобразованием этих входных величин (получая тем самым вырезанные входные величины 1012).
Модуль 1014 преобразования может преобразовать вырезанные входные величины 1012 в спектральные коэффициенты 1016 с использованием, например, модифицированного дискретного косинусного преобразования (MDCT). Это MDCT может быть рекурсивно разделено по меньшей мере на дискретное косинусное преобразование IV-типа (DCT-IV), дискретное косинусное преобразование II-типа (DCT-II), или оба - DCT-IV и DCT-II, где размерность каждого такого преобразования меньше размерности MDCT, при этом по меньшей мере некоторые операции умножения из состава MDCT объединены с предшествующей операцией выделения интервала, примененной к входным величинам. В одном примере DCT-II может представлять собой преобразование с размерностью 5 точек, способное реализовать варианты MDCT различной размерности, подобно DCT-II, показанному на фиг.5. Такое MDCT может реализовать преобразование по меньшей мере двух размерностей из ряда преобразований по 320, 160, 80, 40 точкам с использованием того же самого ядра DCT-II. Компоненты устройства 1002 могут быть реализованы аппаратным, программным и/или комбинированным программно-аппаратным способом. Например, устройство 1002 может представлять собой процессор и/или схему, реализующую функции его компонентов или модулей.
Фиг.11 иллюстрирует пример способа кодирования сигнала с использованием преобразования MDCT на основе преобразования DCT-II в качестве ядра. Устройство может принимать 1102 входные величины во временной области, представляющие аудиосигнал. Например, для получения таких входных величин могут быть выполнены отсчеты аналогового аудиосигнала (например, голосового сигнала, музыки, видео и т.п.).
В одном примере может быть реализована 1104 модифицированная вырезающая функция, объединяющая коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Затем сохраняют 1106 подмножество фрагментарно-симметричных вырезающих коэффициентов, из которого может быть реконструирован полный набор фрагментарно-симметричных вырезающих коэффициентов. Перед преобразованием входных величин к этим входным величинам может быть применен 1108 указанный полный набор фрагментарно-симметричных вырезающих коэффициентов. Например, на предшествующей операции выделения интервала могут быть применены косинусные коэффициенты, показанные на фиг.3, (поз.306) для преобразования MDCT. Указанное подмножество фрагментарно-симметричных вырезающих коэффициентов может включать по меньшей мере половину уникальных коэффициентов для каждой группы фрагментарно-симметричных вырезающих коэффициентов.
Полученные (вырезанные) входные величины (от операции выделения интервала) могут быть преобразованы 1110 в спектральные коэффициенты с использованием модифицированного дискретного косинусного преобразования (MDCT), рекурсивно разделенного по меньшей мере на дискретное косинусное преобразование IV-типа (DCT-IV), дискретное косинусное преобразование II-типа (DCT-II), или оба - DCT-IV и DCT-II, где размерность каждого такого преобразования меньше размерности MDCT, при этом по меньшей мере некоторые операции умножения из состава MDCT объединены с предшествующей операцией выделения интервала, примененной к входным величинам. Например, такое MDCT может быть реализовано на основе дискретного косинусного преобразования IV-типа (DCT-IV), которое осуществлено на основе ядра DCT-II (например, преобразования на фиг.5). Такое DCT-II может представлять собой преобразование с размерностью 5 точек, способное реализовать варианты MDCT различной размерности. Например, такое MDCT может реализовать преобразование по меньшей мере двух размерностей из ряда преобразований с размерностями 320, 160, 80, 40 точек с использованием того же самого ядра DCT-II. Ядро DCT-II может включать пять (5) операций умножения и 12 суммирований или четыре (4) операции умножения и 13 суммирований.
Кроме того, в рамках реализации 1112 с фиксированной запятой над выходными величинами вырезающей функции могут быть выполнены оценка динамического диапазона и/или перенормировка. В одном примере перенормировка может быть осуществлена путем сдвига (в буфере) всех промежуточных величин влево, резервируя по меньшей мере один бит в качестве запаса для предотвращения переполнения на последующих этапах преобразования.
Пример декодирования с использованием преобразования IMDCT
Фиг.12 представляет блок-схему, показывающую устройство для вычисления преобразованных величин. Устройство 1202 может включать входной модуль 1206, модуль 1208 обратного преобразования и/или модуль 1212 выделения интервала. Модуль 1208 обратного преобразования может преобразовывать спектральные коэффициенты 1204 в выходные величины 1210. Например, модуль обратного преобразования может преобразовать спектральные коэффициенты в выходные величины 1210 во временной области с использованием обратного модифицированного дискретного косинусною преобразования (IMDCT), рекурсивно разделенного по меньшей мере на обратное дискретное косинусное преобразование IV-типа (IDCT-IV), обратное дискретное косинусное преобразование II-типа (IDCT-II), или оба - IDCT-IV и IDСТ-II, где размерность каждого такого обратного преобразования меньше размерности IMDCT, при этом по меньшей мере некоторые операции умножения из состава IMDCT объединены с последующей операцией 1212 выделения интервала, примененной к выходным величинам 1210.
Модуль 1212 выделения интервала может реализовать модифицированную вырезающую функцию, объединяющую коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Например, модуль 1212 выделения интервала может включать модуль 1218 объединения, модуль 1219 разделения коэффициентов, модуль 1220 памяти и/или вырезающую функцию 1222. Модуль 1218 объединения может выполнять функцию объединения коэффициентов от операции обратного преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Например, косинусные коэффициенты 406 (фиг.4) могут быть объединены с другими коэффициентами вырезающей функции. Модуль 1219 разделения коэффициентов может затем выделить подмножество указанных фрагментарно-симметричных вырезающих коэффициентов (как показано на фиг.9). Модуль 1220 памяти может затем сохранить подмножество фрагментарно-симметричных вырезающих коэффициентов, из которого может быть реконструирован полный набор фрагментарно-симметричных вырезающих коэффициентов. Например, указанное подмножество фрагментарно-симметричных вырезающих коэффициентов может включать по меньшей мере половину уникальных коэффициентов для каждой группы фрагментарно-симметричных вырезающих коэффициентов. Модуль 1212 выделения интервала может быть (посредством вырезающей функции 1222) конфигурирован для применения полного набора реконструированных фрагментарно-симметричных вырезающих коэффициентов к выходным величинам 1210 после преобразования спектральных коэффициентов 1204 (получая тем самым вырезанные выходные величины 1214). Компоненты устройства 1202 могут быть реализованы аппаратным, программным и/или комбинированным программно-аппаратным способом. Например, устройство 1202 может представлять собой процессор и/или схему, реализующую функции его компонентов или модулей.
Фиг.13 иллюстрирует пример способа декодирования сигнала с использованием преобразования IMDCT на основе преобразования IDCT-II в качестве ядра. Система принимает или получает 1302 спектральные коэффициенты, представляющие аудиосигнал. Эти спектральные коэффициенты могут быть преобразованы 1304 в выходные величины во временной области с использованием обратного модифицированного дискретного косинусного преобразования (IMDCT), рекурсивно разделенного по меньшей мере на обратное дискретное косинусное преобразование IV-типа (IDCT-IV), обратное дискретное косинусное преобразование II-типа (IDCT-II), или оба - IDCT-IV и IDCT-II, где размерность каждого такого обратного преобразования меньше размерности IMDCT, при этом по меньшей мере некоторые операции умножения из состава IMDCT объединены с последующей операцией выделения интервала, примененной к выходным величинам. Ядро IDCT-II представляет собой обратное преобразование с размерностью 5 точек, способное реализовать варианты IMDCT различной размерности. Такое IMDCT может реализовать обратное преобразование по меньшей мере двух размерностей из ряда обратных преобразований с размерностями 320, 160, 80, 40 точек с использованием того же самого ядра IDCT-II. В различных вариантах IDCT-II может включать пять (5) операций умножения и 12 суммирований или четыре (4) операции умножения и 13 суммирований.
Кроме того, может быть построена 1306 модифицированная вырезающая функция, объединяющая коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Может быть сохранено 1308 подмножество фрагментарно-симметричных вырезающих коэффициентов, из которого может быть реконструирован полный набор фрагментарно-симметричных вырезающих коэффициентов. Сохраненное подмножество фрагментарно-симметричных вырезающих коэффициентов может включать по меньшей мере половину уникальных коэффициентов для каждой группы фрагментарно-симметричных вырезающих коэффициентов. Указанный полный набор фрагментарно-симметричных вырезающих коэффициентов может быть затем применен 1310 к выходным величинам после преобразования спектральных коэффициентов.
В некоторых случаях для реализации 1305 вариантов с фиксированной запятой могут быть также выполнены оценка динамического диапазона и перенормировка входных данных вырезающей функции. Оценку динамического диапазона и перенормировку можно производить после завершения всех рекурсивных операций вычитания коэффициентов в ходе отображения MDCT в DCT-IV. Перенормировка может быть выполнена путем сдвига всех промежуточных величин влево (побитовый сдвиг) резервируя при этом по меньшей мере два бита в качестве запаса для предотвращения переполнения на последующих этапах преобразования. Для компенсации расширения динамического диапазона можно на всех промежуточных этапах преобразования IMDCT сдвигать получаемые результаты вправо на один бит.
Сохранение фрагментарно-симметричных вырезающих коэффициентов
Фиг.14 представляет блок-схему, показывающую устройство для выполнения операций выделения интервала. Устройство 1402 может включать модуль 1404 объединения, модуль 1405 разделения коэффициентов, модуль 1406 памяти, модуль 1408 приемника и/или модуль 1410 выделения интервала. Модуль 1404 объединения может быть конфигурирован для реализации модифицированной вырезающей функции, объединяющей коэффициенты 1412 и 1414 от этапа преобразования и от этапа выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов 1420. Модуль 1405 разделения коэффициентов может выделить из полного набора полученных фрагментарно-симметричных вырезающих коэффициентов 1420 подмножество 1423 фрагментарно-симметричных вырезающих коэффициентов. Такое разделение коэффициентов иллюстрирует, например, фиг.9. Модуль 1406 памяти может сохранить это подмножество 1423 фрагментарно-симметричных вырезающих коэффициентов, из которого может быть реконструирован полный набор фрагментарно-симметричных вырезающих коэффициентов 1420. Модуль 1408 приемника может принимать входные величины 1416, представляющие аудиосигнал. Модуль 1410 может применять (реконструированный) полный набор фрагментарно-симметричных вырезающих коэффициентов к этим входных величинам 1416 и генерировать вырезанные выходные величины 1418. Таким образом, поскольку сохраняется только подмножество вырезающих коэффициентов, это экономит память и делает вырезающее устройство более эффективным. Компоненты устройства 1402 могут быть реализованы аппаратным, программным и/или комбинированным программно-аппаратным способом. Например, устройство 1402 может представлять собой процессор и/или схему, реализующую функции его компонентов или модулей.
Фиг.15 иллюстрирует пример способа выполнения операций выделения интервала. Может быть построена 1502 модифицированная вырезающая функция, объединяющая коэффициенты от операции преобразования и от операции выделения интервала для получения фрагментарно-симметричных вырезающих коэффициентов. Набор фрагментарно-симметричных вырезающих коэффициентов может быть разделен 1504 для получения подмножества фрагментарно-симметричных вырезающих коэффициентов и уменьшения общего числа уникальных коэффициентов. Это подмножество фрагментарно-симметричных вырезающих коэффициентов сохраняют1506, так что из него может быть реконструирован полный набор фрагментарно-симметричных вырезающих коэффициентов. Устройство может принимать 1508 входные величины, представляющие аудиосигнал. К этим входным величинам может быть применен 1510 указанный полный набор фрагментарно-симметричных вырезающих коэффициентов для получения вырезанных выходных величин. Указанное подмножество фрагментарно-симметричных вырезающих коэффициентов может включать по меньшей мере половину уникальных коэффициентов для каждой группы фрагментарно-симметричных вырезающих коэффициентов.
В одном примере этап выделения интервала имеет место прежде этапа преобразования. В таком случае этап преобразования может реализовать модифицированное дискретное косинусное преобразование (MDCT), рекурсивно разделенное по меньшей мере на дискретное косинусное преобразование IV-типа (DCT-IV), дискретное косинусное преобразование II-типа (DCT-II), или оба - DCT-IV и DCT-II, где размерность каждого такого преобразования меньше размерности MDCT. На этапе преобразования могут применяться, например, косинусные коэффициенты, показанные на фиг.3.
В другом примере этап выделения интервала может иметь место после этапа преобразования. Этот этап преобразования может реализовать обратное модифицированное дискретное косинусное преобразование (IMDCT), рекурсивно разделенное по меньшей мере на обратное дискретное косинусное преобразование IV-типа (IDCT-IV), обратное дискретное косинусное преобразование II-типа (IDСТ-II), или оба - IDCT-IV и IDCT-II, где размерность каждого такого обратного преобразования меньше размерности IMDCT. На этапе преобразования могут применяться, например, косинусные коэффициенты, показанные на фиг.4.
Помимо приведенных здесь примеров рассмотренные алгоритмы для выполнения преобразований уменьшенной размерности могут быть использованы для реализации любых других преобразований с числом, кратным двум. Кроме того, следует отметить, что описанные здесь способы могут быть применены к различным типам сигналов, включая аудиосигналы, голос, видео, данные и т.п.
Информация и сигналы могут быть представлены с использованием самых разных технологий и способов. Например, данные, инструкции, команды, информация, сигналы и т.п., которые могут быть упомянуты в приведенном выше описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или какими-либо сочетаниями перечисленных форм.
Различные показанные для иллюстрации логические блоки, модули и схемы и этапы алгоритмов могут быть реализованы или выполнены в виде электронной аппаратуры, программного обеспечения или сочетания аппаратуры и программного обеспечения. Чтобы четко продемонстрировать такую взаимозаменяемость аппаратных и программных средств, различные иллюстративные компоненты, блоки, модули, схемы и этапы были рассмотрены выше в основном с функциональной точки зрения. Будут ли такие функции реализованы аппаратно или программно, зависит от конкретного приложения и проектных ограничений, относящихся к системе в целом. Заметим, что конфигурации могут быть описаны в качестве процесса, который представлен в виде функциональной схемы, схемы технологических операций, структурной схемы или блок-схемы. Хотя на функциональной схеме различные операции могут быть представлены в виде последовательного процесса, многие операции могут выполняться параллельно или одновременно. Кроме того, порядок выполнения операций может быть изменен. Процесс завершается, когда полностью выполнены операции, составляющие процесс. Процесс может соответствовать способу, функции, процедуре, стандартной подпрограмме, подпрограмме и т.п. Когда процесс соответствует функции, его завершение соответствует возвращению из этой функции к вызывающей функции или главной функции.
В случае аппаратной реализации различные примеры могут использовать универсальный процессор, цифровой процессор сигнала (DSP), специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другое программируемое логическое устройство, дискретный вентиль или транзисторную логическую схему, дискретные аппаратные компоненты или любое сочетание перечисленных элементов, спроектированные для выполнения описанных здесь функций. В качестве универсального процессора может быть применен микропроцессор, однако в альтернативных вариантах в качестве процессора можно использовать обычный процессор, контроллер, микроконтроллер или конечный автомат. Процессор может быть также реализован в виде сочетания вычислительных устройств, например сочетания DSP и микропроцессора, нескольких микропроцессоров, одного или нескольких микропроцессоров в сочетании с ядром DSP или любой другой подобной конфигурации.
В случае программной реализации различные примеры могут использовать встроенные программы, микропрограммы или микрокоманды. Программы или сегменты программ для выполнения необходимых задач могут быть записаны на читаемом компьютером носителе, например носителе записи или в другом запоминающем устройстве(ах). Необходимые задачи может выполнять процессор. Сегмент программы может представлять процедуру, функцию, подпрограмму, программу, стандартную программу, стандартную подпрограмму, модуль, пакет программ, класс или любое сочетание инструкций, структур данных или операторов программ. Сегмент программы может быть связан с другим сегментом программы или схемой путем передачи и/или приема информации, данных, аргументов, параметров или содержимого памяти. Информация, аргументы, параметры, данные и т.п. могут быть пропущены, направлены или переданы любыми подходящими средствами, включая разделение памяти, передачу сообщений, эстафетную передачу маркера, передачи через сеть связи и т.п.
Используемые в настоящей заявке термины «компонент», «модуль», «система» и т.п. относятся к объекту, связанному с применением компьютера, - аппаратуре, встроенным программам, сочетанию аппаратуры и программного обеспечения, программному обеспечению или программному обеспечению в состоянии выполнения. Например, компонентом может быть, не ограничиваясь перечисленным, процесс, выполняемый на процессоре, процессор, объект, выполняемая программа, поток выполнения программы, программа и/или компьютер. В качестве иллюстрации компонентом может быть и приложение, работающее на вычислительном устройстве, и само вычислительное устройство. Один или несколько компонентов могут располагаться в одном процессе и/или в потоке выполнения программы, а также компонент может быть локализован на одном компьютере и/или распределен между двумя или более компьютерами. Кроме того, эти компоненты могут работать с разных читаемых компьютером носителей, на которых записаны различные структуры данных. Эти компоненты могут поддерживать связь посредством локальных и/или удаленных процессов, например в соответствии с сигналом, имеющим один или несколько пакетов данных (например, данных от одного компонента, взаимодействующего с другим компонентом в локальной системе, распределенной системе и/или через сеть связи типа Интернет или другие системы посредством указанного сигнала).
В одном или нескольких рассмотренных здесь примерах описываемые функции могут быть реализованы посредством аппаратуры, программного обеспечения, встроенных программ или какого-либо сочетания перечисленных средств. В случае реализации в виде программного обеспечения функции могут быть записаны или переданы в виде одной или нескольких инструкций или программы на читаемом компьютером носителе. К читаемым компьютером носителям относятся и компьютерные носители записи, и линии связи, включая любые средства, позволяющие передать компьютерную программу из одного места в другое. Носителем записи может быть любой имеющийся носитель, к которому можно обратиться и получить доступ посредством компьютера. Например, но не ограничиваясь, такой читаемый компьютером носитель может представлять собой ЗУПВ (RAM), ПЗУ (ROM), ЭСППЗУ (EEPROM), CD-ROM или другой оптический дисковод, магнитный дисковод или иное магнитное запоминающее устройство, либо любой другой носитель, который можно использовать для переноса или хранения текста нужной программы в форме инструкций или структур данных и к которому можно обратиться и получить доступ посредством компьютера. Кроме того, любой вид соединения должен быть соответствующим образом указан в наименовании читаемого компьютером носителя. Например, если программное обеспечение передают от вэб-сайта, сервера или из другого удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводным способом, таким как с использованием инфракрасного излучения, радиоволн или в СВЧ-диапазоне, эти коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводный способ, такой как с использованием инфракрасного излучения, радиоволн или в СВЧ-диапазоне, указывают в обозначении носителя. В рамках настоящей заявки применяют обозначения disk и disc, включая компакт-диски (CD), лазерные диски, оптические диски, универсальные цифровые диски (DVD), дискеты и диски стандарта «Блю-рей» (blu-ray), причем «disks» обычно воспроизводят данные магнитным способом, a «discs» обычно воспроизводят данные оптическим способом с применением лазеров. Сочетания перечисленных выше вариантов также должны быть включены в понятие читаемых компьютером носителей. Программное обеспечение может содержать одну команду или несколько команд и может быть распределено по нескольким разным сегментам программы, между несколькими программами и по нескольким носителям записи. Выбранный носитель записи может быть соединен с процессором, так что процессор может считывать информацию с и записывать информацию на этом носителе записи. В альтернативном варианте носитель записи может быть встроен в процессор.
Рассмотренные здесь способы содержат один или несколько этапов или действий для достижения нужного результата. Эти этапы и/или действия способа можно заменять одни другими, не выходя за рамки формулы изобретения. Другими словами, если для правильной работы рассматриваемого варианта не требуется какой-то специфичный порядок этапов или действий, порядок и/или применение конкретных этапов и/или действий можно изменять, не выходя за рамки формулы изобретения.
Один или несколько компонентов, этапов и/или функций, показанных на фиг.1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 и/или 15, могут быть переставлены и/или объединены в один компонент, этап или функцию либо выполнены в нескольких компонентах, этапах или функциях. Могут быть также добавлены дополнительные элементы, компоненты, этапы и/или функции. Аппаратура, устройства и/или компоненты, показанные на фиг.1, 2, 10, 12 и 14, могут быть конфигурированы или приспособлены для выполнения одного или нескольких способов, признаков или этапов, показанных на фиг.3-9, 11, 13 и 15. Рассмотренные здесь алгоритмы могут быть эффективно реализованы, например, в виде программного обеспечения и/или встроенной аппаратуры.
Следует отметить, что рассмотренные выше конфигурации являются всего лишь примерами и не могут быть истолкованы в качестве ограничений для формулы изобретения. Описание этих конфигураций служит только для иллюстрации и не ограничивает объема формулы изобретения. Таким образом, положения настоящего описания могут быть полностью применены к аппаратуре других типов, а также возможны множество альтернатив, модификаций и других вариантов, очевидных для специалистов в этой области.