ЭФФЕКТИВНАЯ РЕАЛИЗАЦИЯ НАБОРОВ ФИЛЬТРОВ АНАЛИЗА И СИНТЕЗА ДЛЯ КОДЕРОВ/ДЕКОДЕРОВ MPEG AAC И MPEG AAC ELD
THE EFFECTIVE IMPLEMENTATION OF THE SETS OF FILTERS OF THE ANALYSIS AND SYNTHESIS FOR THE MPEG AAC AND MPEG AAC ELD CODERS/DECODERS

Настоящая патентная заявка испрашивает приоритет Предварительной заявки США №60/980 418, озаглавленной «Efficient Joint Implementation of analysis and Synthesis Filterbanks For MPEG AAC and MPEG AAC ELD Encoders/Decoders», поданной 16 октября 2007, переуступленной правопреемнику настоящей заявки и включенной в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Последующее описание в общем случае относится к кодерам и декодерам и, в частности, к реализации набора фильтров для перспективного аудиокодирования (AAC) и усовершенствованного с низкой задержкой (ELD) AAC.
Уровень техники
Одной из целей аудиокодирования является сжатие аудиосигнала в необходимое ограниченное количество информации, сохраняя исходное качество звука, насколько это возможно. В процессе кодирования аудиосигнала во временной области преобразовывают в частотную область.
Перспективное аудиокодирование (AAC) является стандартизированной схемой сжатия с потерями и кодирования цифрового аудиосигнала, которую определяют как часть стандарта экспертной группы по движущимся изображениям (MPEG). AAC является алгоритмом широкополосного кодирования аудио, который использует две основные стратегии кодирования для значительного уменьшения количества данных, необходимых для представления высококачественного цифрового аудиосигнала. Во-первых, отказываются от компонентов сигнала, которые не существенны для восприятия. Во-вторых, устраняют избыточность в кодированном аудиосигнале. Для применения этих методик сигнал сначала обрабатывают с помощью модифицированного дискретного косинусного преобразования (MDCT). Модифицированное дискретное косинусное преобразование (MDCT) является преобразованием, связанным с преобразованием Фурье, основанным на дискретном косинусном преобразовании типа-IV (DCT-IV), с дополнительным свойством перекрытия. Связь MDCT преобразования с преобразованием DCT-IV и преобразованием Фурье позволяет очень эффективно воплощать такие наборы фильтров при использовании так называемых «быстрых» алгоритмов (относятся к алгоритму быстрого преобразования Фурье (FFT) - см. K.R.Rao и P.Yip «Discrete Cosine Transform: Algorithms, Advantages, Applications», Academic Press, 1990 ISBN: 012580203X).
Появившийся кодек MPEG AAC-ELD (усовершенствованный с низкой задержкой) разработан для объединения преимущества, основанного на восприятии аудиокодирования с низкой задержкой, необходимой для двухсторонней связи. Однако AAC-ELD использует другую структуру набора фильтров по сравнению с традиционным кодеком AAC. Этот набор фильтров не совместим с преобразованиями MDCT или DCT-IV и его нельзя непосредственно вычислять с помощью существующих быстрых алгоритмов. Это увеличивает сложность и стоимость воплощения AAC-ELD. Это также увеличивает сложность и стоимость, когда оба типа алгоритмов необходимо воплощать на том же самом ядре DSP. Поэтому существует потребность в более простом способе осуществления алгоритмов кодека AAC-ELD или и AAC, и AAC-ELD на том же самом ядре DSP.
Раскрытие изобретения
Последующее описание представляет собой упрощенную сущность одного или большего количества вариантов осуществления для обеспечения основного понимания некоторых вариантов осуществления настоящего изобретения. Данная сущность изобретения не является обширным представлением всех рассмотренных вариантов осуществления, и она не предназначена ни для идентификации ключевых или критических элементов всех вариантов осуществления, ни для очерчивания возможностей какого-либо или всех вариантов осуществления. Собственная цель состоит в том, чтобы представить некоторые концепции одного или большего количества вариантов осуществления в упрощенной форме в качестве вводной части к более подробному описанию, которое представлено позже.
Обеспечивают кодер, который включает в себя набор фильтров анализа базового MDCT, который может использоваться для воплощения алгоритма перспективного аудиокодирования (AAC), алгоритма расширенного с низкой задержкой (ELD) AAC или обоих алгоритмов. Для алгоритма AAC входные отсчеты посылают непосредственно в набор фильтров анализа MDCT для получения выходных отсчетов. Для алгоритма AAC-ELD инвертируют знаки первого набора входных отсчетов, применяют набор фильтров анализа MDCT для получения выходных отсчетов спектральных коэффициентов, изменяют на противоположный порядок выходных отсчетов спектральных коэффициентов и инвертируют знаки второго набора знакопеременных выходных отсчетов спектральных коэффициентов.
Согласно одному из примеров, обеспечивают кодер, который воплощает набор фильтров анализа, используя обычное базовое модифицированное дискретное косинусное преобразование. Получают последовательность входных отсчетов и инвертируют знаки первого набора знакопеременных входных отсчетов. Выходные отсчеты спектральных коэффициентов создают, применяя модифицированное дискретное косинусное преобразование (MDCT) к последовательности входных отсчетов. Изменяют на противоположный порядок выходных отсчетов спектральных коэффициентов и затем инвертируют знаки второго набора знакопеременных выходных отсчетов спектральных коэффициентов. В одном из примеров последовательность входных отсчетов имеет длину N отсчетов, и инвертирование знаков первого набора знакопеременных входных отсчетов включает в себя: (a) инвертирование знаков входных отсчетов с четным индексом последовательности, если N/4 - четное число; и (b) инвертирование знаков входных отсчетов с нечетным индексом последовательности, если N/4 - нечетное число. В другом примере последовательность входных отсчетов имеет длину N отсчетов, и инвертирование знаков второго набора знакопеременных выходных отсчетов спектральных коэффициентов включает в себя: (a) инвертирование знаков выходных отсчетов спектральных коэффициентов с нечетным индексом, если N/2 - четное число; и (b) инвертирование знаков выходных отсчетов спектральных коэффициентов с четным индексом, если N/2 - нечетное число. В одном из режимов работы MDCT может работать как набор фильтров перспективного аудиокодирования (AAC). В другом режиме работы набор фильтров анализа может работать как набор фильтров расширенного с низкой задержкой (ELD) AAC.
Точно так же обеспечивают декодер, который воплощает набор фильтров синтеза, используя обычное базовое инверсное модифицированное дискретное косинусное преобразование. Получают последовательность входных спектральных коэффициентов и инвертируют знаки первого набора знакопеременных спектральных коэффициентов. Изменяют на противоположный порядок входных спектральных коэффициентов. Выходные отсчеты создают, применяя инверсное модифицированное дискретное косинусное преобразование (IMDCT) к спектральным коэффициентам. Затем инвертируют знаки второго набора знакопеременных выходных отсчетов.
В одном из примеров последовательность входных спектральных коэффициентов имеет длину N отсчетов, и инвертирование знаков первого набора знакопеременных входных спектральных коэффициентов включает в себя: (a) инвертирование знаков спектральных коэффициентов с нечетным индексом, если N/2 - четное число; и (b) инвертирование знаков спектральных коэффициентов с четным индексом, если N/2 - нечетное число.
В другом примере последовательность входных спектральных коэффициентов имеет длину N отсчетов, и инвертирование знаков второго набора знакопеременных выходных отсчетов включает в себя: (a) инвертирование знаков выходных отсчетов с нечетным индексом, если N/4 - нечетное число; и (b) инвертирование знаков выходных отсчетов с четным индексом, если N/4 - четное число. В одном из режимов работы IMDCT может работать как набор фильтров перспективного аудиокодирования (AAC). В другом режиме работы набор фильтров синтеза может работать как набор фильтров расширенного с низкой задержкой (ELD) AAC.
Краткое описание чертежей
Различные особенности, характер и преимущества будут очевидны из сформулированного ниже подробного описания при его рассмотрении вместе с чертежами, на которых одинаковые позиционные обозначения указывают соответствующие элементы по всему документу.
Фиг.1 - структурная схема, на которой показан пример кодера, который может воплощать MPEG AAC-ELD или и AAC, и AAC-ELD в той же самой структуре набора фильтров анализа MDCT.
Фиг.2 - структурная схема, на которой показан пример декодера, который может воплощать MPEG AAC-ELD или и AAC, и AAC-ELD в той же самой структуре набора фильтров IMDCT.
Фиг.3 - структурная схема, на которой показан набор фильтров анализа AAC, который может использоваться кодером.
Фиг.4 - схема, на которой показаны операции, которые выполняют для многократного использования базового MDCT, показанного на Фиг.3, для алгоритма AAC-ELD.
Фиг.5 показывает способ выполнения алгоритма AAC-ELD, используя базовое MDCT для алгоритма AAC.
Фиг.6 - структурная схема, на которой показаны устройство, схему и/или процессор, настроенные для многократного использования MDCT алгоритма AAC для алгоритма AAC-ELD.
Фиг.7 - структурная схема, на которой показан набор фильтров синтеза AAC, который может использоваться декодером.
Фиг.8 - схема, на которой показаны операции, которые выполняют для многократного использования базового IMDCT, показанного на Фиг.7, для алгоритма AAC-ELD.
Фиг.9 показывает способ выполнения алгоритма AAC-ELD, используя базовое IMDCT для алгоритма AAC.
Фиг.10 - структурная схема, на которой показаны устройство, схема и/или процессор, настроенные для многократного использования IMDCT алгоритма AAC для алгоритма AAC-ELD.
Осуществление изобретения
Различные варианты осуществления настоящего изобретения далее будут описаны в отношении чертежей, на которых одинаковые номера позиций используются для обозначения одинаковых элементов по всему документу. В последующем описании, в целях объяснения, множество конкретных подробностей сформулировано для обеспечения полного понимания одного или большего количества вариантов осуществления. Очевидно, однако, что такой вариант(ы) осуществления можно осуществлять без этих конкретных подробностей. В других случаях известные структуры и устройства показаны в форме структурной схемы для обеспечения описания одного или большего количества вариантов осуществления.
Краткий обзор
Одна из особенностей изобретения обеспечивает способ воплощения алгоритмов AAC-ELD или и AAC, и AAC-ELD, используя тот же самый набор фильтров анализа базового MDCT и набор фильтров синтеза базового IMDCT.
Кодер может включать в себя набор фильтров анализа базового MDCT, который может использоваться для воплощения алгоритмов AAC-ELD или и AAC, и AAC-ELD. Для алгоритма AAC входные отсчеты посылают непосредственно в набор фильтров анализа MDCT для получения выходных отсчетов. Для алгоритма AAC-ELD формируют вектор остальных значений входных отсчетов, и инвертируют знаки первого набора знакопеременных входных отсчетов. Выходные отсчеты спектральных коэффициентов создают, применяя модифицированное дискретное косинусное преобразование (MDCT) к последовательности входных отсчетов. Затем изменяют на противоположный порядок выходных отсчетов спектральных коэффициентов и инвертируют знаки второго набора знакопеременных выходных отсчетов спектральных коэффициентов.
Точно так же декодер может включать в себя набор фильтров синтеза базового IMDCT, который может использоваться для воплощения алгоритмов AAC-ELD или и AAC, и AAC-ELD. Для алгоритма AAC входные отсчеты посылают непосредственно в набор фильтров синтеза IMDCT для получения выходных отсчетов. Для алгоритма AAC-ELD получают последовательность входных спектральных коэффициентов, и инвертируют знаки первого набора знакопеременных спектральных коэффициентов. Изменяют на противоположный порядок входных спектральных коэффициентов. Выходные отсчеты создают, применяя инверсное модифицированное дискретное косинусное преобразование (IMDCT) к спектральным коэффициентам. Затем инвертируют знаки второго набора знакопеременных выходных отсчетов.
Поскольку наборы фильтров и AAC, и AAC-ELD можно воплощать, используя те же самые модули базового MDCT и IMDCT, это позволяет повторно использовать существующий код только с несколькими незначительными модификациями. Если нужно воплощать только набор фильтров AAC-ELD, то раскрытые способы предлагают простое решение, использующее известные реализации наборов фильтров быстрого MDCT.
Структура кодека
Фиг.1 - структурная схема, на которой показывают пример кодера, который может воплощать MPEG AAC-ELD или и AAC, и AAC-ELD в той же самой структуре набора фильтров анализа MDCT. Кодер 102 может принимать входной аудиосигнал 104. Набор фильтров 106 анализа MDCT (т.е. модифицированного дискретного косинусного преобразования, основанного на дискретном косинусном преобразовании типа-IV) предназначен для декомпозиции входного аудиосигнала 104 во временной области на множество субполосных сигналов и для преобразования сигналов в частотную область, где каждый субполосный сигнал преобразуют в коэффициент преобразования для субполосы для блока. Результирующий сигнал затем квантуют с помощью блока 108 квантования и кодируют с помощью энтропийного кодера 110 для создания битового потока 112 из цифрового аудиосигнала.
Фиг.2 - структурная схема, на которой показывают пример декодера, который может воплощать MPEG AAC-ELD или и AAC, и AAC-ELD в той же самой структуре набора фильтров IMDCT. Декодер 202 может принимать битовый поток 204. Энтропийный декодер 206 декодирует битовый поток 204, который затем деквантизируют с помощью блока 208 обратного квантования для создания сигнала в частотной области. Набор фильтров 210 синтеза IMDCT (т.е. инверсного модифицированного дискретного косинусного преобразования, основанного на дискретном косинусном преобразовании типа-IV) предназначен для преобразования сигнала 104 в частотной области назад в аудиосигнал 212 во временной области.
AAC-ELD
Наборы фильтров анализа (уравнение 1) и синтеза (уравнение 2) базового кодера ELD AAC можно определять следующим образом:
где  z(n) обозначает обработанные оконной функцией входные отсчеты данных, X(k) обозначает субполосные коэффициенты, x(n) обозначает восстановленные отсчеты (до подавления помех дискретизации). В одном из примеров N может быть 1024 или 960.
MDCT и IMDCT
Модифицированное дискретное косинусное преобразование (MDCT) (уравнение 3) и инверсное MDCT (IMDCT) (уравнение 4) обычно определяют следующим образом:
,
где  и где z(n) обозначает обработанные оконной функцией входные отсчеты данных,  обозначает спектральные коэффициенты MDCT и  обозначает восстановленные отсчеты (до подавления помех дискретизации).
Кодер: набор фильтров анализа AAC и AAC-ELD
i,0
i,N-1
i,0
i,N/2-1
Фиг.3 - структурная схема, на которой показывают набор фильтров анализа AAC, который может использоваться кодером. Набор фильтров анализа AAC - просто набор фильтров 302 MDCT, который принимает входные отсчеты z-z 304 и производит выходные спектральные коэффициенты X-X 306, которые могут быть представлены с помощью
i,n
где z- обработанная оконной функцией входная последовательность;
i,k
X- выходные спектральные коэффициенты;
n - индекс отсчета;
k - индекс спектрального коэффициента;
i - индекс блока;
N - длина оконной функции, основанная на значении window_sequence (оконной последовательности)
0
p=(N/2+1)/2.
i,k
Выходной сигнал X набора фильтров анализа AAC-ELD может быть представлен с помощью
i,n
где z - обработанная оконной функцией входная последовательность;
i,k
X - выходные спектральные коэффициенты;
n - индекс отсчета;
K - индекс спектрального коэффициента;
I - индекс блока;
N - длина оконной функции, основанная на значении window_sequence (оконной последовательности);
0
n=(-N/2+1)/2.
В случае набора фильтров анализа AAC-ELD, для 0≤k<N/2, может быть показано, что
что позволяет многократно использовать набор фильтров базового MDCT для его реализации. Следует отметить, что правая сторона суммирования - MDCT (например, как в уравнении 3). Алгоритм для набора фильтров анализа может включать в себя этапы:
1. Формируют последовательность из входных отсчетов (z(n)-z(n-N)) для 0≤n<N;
2. Инвертируют знаки отсчетов с четным индексом, если N/4-четное число, или инвертируют знаки отсчетов с нечетным индексом, если N/4 - нечетное число;
3. Применяют MDCT преобразование к отсчетам для получения выходных отсчетов (спектральных коэффициентов);
4. Изменяют на противоположный порядок выходных отсчетов;
5. Инвертируют знаки выходных отсчетов с нечетным индексом, если N/2 - четное число, или инвертируют знаки с четным индексом выходные отсчеты, если N/2 - нечетное число.
i,n
i,(n-N)
Фиг.4 - схема, на которой показывают операции, которые выполняют для многократного использования базового MDCT, показанного на Фиг.3, для алгоритма AAC-ELD. На фиг.4 предполагают, что N/4 - четное число. Для получения выходного сигнала 406 набора фильтров анализа формируют последовательность входных отсчетов 404 (например, [z-z] для 0≤n<N). Инвертируют 408 знаки входных отсчетов с четным индексом в этой последовательности входных отсчетов 404. Следует отметить, что если N/4 - нечетное число, то вместо этого инвертируют знаки входных отсчетов с нечетным индексом. Затем MDCT 302 применяют к последовательности входных отсчетов с инвертированным знаком для получения последовательности выходных отсчетов (спектральных коэффициентов). Затем изменяют 410 на противоположный порядок последовательности выходных отсчетов. Наконец, инвертируют 414 знаки выходных отсчетов с нечетным индексом в последовательности выходных отсчетов. Следует отметить, что если N/2 - нечетное число, то вместо этого инвертируют знаки выходных отсчетов с четным индексом в последовательности выходных отсчетов. Функции и/или операции, описанные на Фиг.4, можно выполнять в аппаратных средствах, в программном обеспечении или в их комбинации.
Фиг.5 показывает способ выполнения алгоритма AAC-ELD, используя базовое MDCT для алгоритма AAC. Получают последовательность из N входных отсчетов, где N - целое число, каждый входной отсчет имеет один из двух знаков 502. Такая последовательность из N входных отсчетов может быть квантованным во временной области звуковым сигналом. В некоторых реализациях последовательность входных отсчетов может иметь длину N=или 960, или 1024 отсчетов. Затем инвертируют 504 знаки знакопеременных входных отсчетов в последовательности входных отсчетов спектральных коэффициентов. Например, если N/4 - четное число, то инвертируют знаки входных отсчетов с четным индексом в последовательности входных отсчетов, иначе если N/4 - нечетное число, то инвертируют знаки входных отсчетов с нечетным индексом в последовательности входных отсчетов. Затем применяют MDCT преобразование (для AAC) к последовательности входных отсчетов с инвертированным знаком для создания последовательности выходных отсчетов спектральных коэффициентов, причем последовательность выходных отсчетов спектральных коэффициентов имеет первый порядок следования, каждый выходной отсчет спектральных коэффициентов имеет один из двух знаков 506. Затем изменяют 508 на противоположный первый порядок следования в последовательности выходных отсчетов спектральных коэффициентов. Затем инвертируют 510 знаки знакопеременных выходных отсчетов в последовательности выходных отсчетов спектральных коэффициентов. Например, если N/2 - четное число, то инвертируют знаки выходных отсчетов с нечетным индексом в последовательности выходных отсчетов спектральных коэффициентов, иначе если N/2 - нечетное число, то инвертируют знаки выходных отсчетов с четным индексом в последовательности выходных отсчетов спектральных коэффициентов.
Фиг.6 - структурная схема, на которой показывают устройство, схему и/или процессор, настроенные для многократного использования MDCT алгоритма AAC для алгоритма AAC-ELD. Устройство, схема и/или процессор 602 могут включать в себя первый блок 606 инвертирования знака, предназначенный для инвертирования знаков знакопеременных входных отсчетов в последовательности входных отсчетов 604. Например, когда длина оконной функции - N и если N/4 - четное число, то первый блок 606 инвертирования знака может инвертировать знаки входных отсчетов с четным индексом в последовательности входных отсчетов 604. Альтернативно, если N/4 - нечетное число, то первый блок 606 инвертирования знака может инвертировать знаки входных отсчетов с нечетным индексом в последовательности входных отсчетов 604. Набор фильтров 608 анализа MDCT затем применяет MDCT преобразование к последовательности входных отсчетов с инвертированными знаками для создания последовательности выходных отсчетов спектральных коэффициентов (например, спектральных коэффициентов). У последовательности выходных отсчетов спектральных коэффициентов может быть первый порядок следования, причем каждый выходной отсчет спектральных коэффициентов имеет один из двух знаков. Устройство 610 изменения порядка затем изменяет на противоположный первый порядок следования в последовательности выходных отсчетов спектральных коэффициентов (например, последовательность спектральных коэффициентов имеет обратный порядок). Затем второй блок 612 инвертирования знака инвертирует знаки выходных отсчетов с нечетным индексом в последовательности выходных отсчетов спектральных коэффициентов, если N/2 - четное число, или инвертирует знаки выходных отсчетов с четным индексом в последовательности выходных отсчетов спектральных коэффициентов, если N/2 - нечетное число, для обеспечения выходных отсчетов 614 с инвертированными знаками и с измененным порядком.
Декодер: наборы фильтров синтеза AAC и AAC-ELD
i,0
i,2N-1
Фиг.7 - структурная схема, на которой показывают набор фильтров синтеза AAC, который может использоваться декодером. Набор фильтров синтеза в AAC является просто набором фильтров 702 IMDCT, который принимает входные отсчеты (например, спектральные коэффициенты) spec [i] [- spec [i][N/2-704 и производит выходные сигналы (например, отсчеты) x-x 706, которые могут быть представлены с помощью
где X - спектральные коэффициенты;
n - индекс отсчета;
i - индекс оконной функции;
k - индекс спектрального коэффициента;
N - длина оконной функции;
0
p= (N/2+1)/2,
причем N=1920 или 2048 (например).
i,n
Выходной сигнал x набора фильтров синтеза AAC-ELD может быть представлен с помощью
где X - спектральные коэффициенты;
n - индекс отсчета;
i - индекс оконной функции;
k - индекс спектрального коэффициента;
N - длина оконной функции;
0
n=(-N/2+1)/2,
причем N=960 или 1024 (например).
В случае набора фильтров синтеза AAC-ELD может быть показано, что
i,n
Следовательно, для 0≤n<N, выходной сигнал набора фильтров x, может быть представлен как
что позволяет многократно использовать набор фильтров базового IMDCT для его реализации. Следует отметить, что правая сторона суммирования - IMDCT (например, как в уравнении 4). Алгоритм для набора фильтров синтеза может включать в себя этапы:
1. Инвертируют знаки спектральных коэффициентов с нечетным индексом X(k), если N/2 - четное число, или инвертируют знаки спектральных коэффициентов с четным индексом, если N/2 - нечетное число;
2. Изменяют на противоположный порядок последовательности спектральных коэффициентов;
3. Применяют IMDCT преобразование к спектральным коэффициентам, получают выходные отсчеты;
4. Инвертируют знаки выходных отсчетов с четным индексом, если N/4 - четное число; или инвертируют знаки выходных отсчетов с нечетным индексом, если N/4 - нечетное число; они формируют первые N выходных точек набора фильтров синтеза;
5. Остальные N выходных отсчетов получают с помощью инвертирования знаков N первых отсчетов.
Фиг.8 - схема, на которой показывают операции, которые выполняют для многократного использования базового IMDCT, показанного на Фиг.7, для алгоритма AAC-ELD. На фиг.8 предполагают, что N/4 - четное число. Для получения выходного сигнала 806 набора фильтров анализа x(n) для 0≤n<N получают входные спектральные коэффициенты X(0)-X(N/2-1) 804. Если N/4 - четное число, то инвертируют 808 знаки входных спектральных коэффициентов с четным индексом (иначе, если N/4 - нечетное число, то инвертируют знаки входных спектральных коэффициентов с нечетным индексом). Затем изменяют 810 на противоположный порядок входных спектральных коэффициентов 804 с инвертированным знаком, и применяют 702 IMDCT преобразование для получения выходных отсчетов. Если N/2 - четное число, то затем инвертируют 814 знаки выходных отсчетов с нечетным индексом. Следует отметить, что если N/2 - нечетное число, то вместо этого инвертируют знаки отсчетов с четным индексом. Они формируют N первых выходных отсчетов набора фильтров синтеза. Остальные выходные отсчеты могут быть получены с помощью инвертирования знаков N первых выходных отсчетов. Следует отметить, что функции и/или операции, описанные на Фиг.8, можно выполнять в аппаратных средствах, в программном обеспечении или в их комбинации.
Фиг.9 иллюстрирует способ выполнения алгоритма AAC-ELD, используя базовое IMDCT для алгоритма AAC. Получают 902 последовательность из N входных отсчетов спектральных коэффициентов, где N - целое число, причем последовательность входных отсчетов спектральных коэффициентов имеет первый порядок следования, каждый входной отсчет спектральных коэффициентов имеет один из двух знаков. Затем инвертируют 904 знаки знакопеременных входных отсчетов в последовательности входных отсчетов спектральных коэффициентов. Например, затем инвертируют знаки входных отсчетов с нечетным индексом в последовательности входных отсчетов спектральных коэффициентов, если N/2 - четное число, иначе инвертируют знаки входных отсчетов с четным индексом в последовательности входных отсчетов спектральных коэффициентов, если N/4 - нечетное число. Изменяют 906 на противоположный первый порядок следования в последовательности входных отсчетов спектральных коэффициентов. Затем применяют 908 IMDCT преобразование к последовательности входных отсчетов спектральных коэффициентов с инвертированным знаком и измененным порядком для создания последовательности выходных отсчетов. Наконец, затем инвертируют 910 знаки знакопеременных выходных отсчетов в последовательности выходных отсчетов. Например, инвертируют знаки выходных отсчетов с нечетным индексом в последовательности выходных отсчетов, если N/4 - нечетное число, иначе инвертируют знаки выходных отсчетов с четным индексом в последовательности выходных отсчетов, если N/4 - четное число.
Фиг.10 - структурная схема, на которой показаны устройство, схему и/или процессор, настроенные для многократного использования IMDCT алгоритма AAC для алгоритма AAC-ELD. Устройство, схема и/или процессор 1002 могут включать в себя первый блок 1006 инвертирования знака, который получает последовательность входных отсчетов спектральных коэффициентов 1004, причем последовательность входных отсчетов спектральных коэффициентов имеет первый порядок следования, каждый входной отсчет спектральных коэффициентов имеет один из двух знаков. Первый блок 1006 инвертирования знака можно дополнительно конфигурировать для инвертирования знаков входных отсчетов 1004. Например, когда длина оконной функции - N и если N/2 - четное число, то первый блок 1006 инвертирования знака может инвертировать знаки входных отсчетов с нечетным индексом в последовательности входных отсчетов спектральных коэффициентов 1004. Альтернативно, если N/2 - нечетное число, то блок 1006 инвертирования знака может инвертировать знаки входных отсчетов с четным индексом в последовательности входных отсчетов спектральных коэффициентов 1004. Устройство 1008 изменения порядка затем изменяет на противоположный первый порядок следования в последовательности входных отсчетов спектральных коэффициентов (например, последовательность спектральных коэффициентов имеет обратный порядок). Набор фильтров 1010 синтеза IMDCT затем применяет IMDCT преобразование к последовательности входных отсчетов спектральных коэффициентов для создания последовательности выходных отсчетов. Затем второй блок 1012 инвертирования знака инвертирует знаки выходных отсчетов с нечетным индексом в последовательности выходных отсчетов, если N/4 - нечетное число, или инвертирует знаки выходных отсчетов с четным индексом в последовательности выходных отсчетов, если N/4 - четное число, для обеспечения выходных отсчетов 1014 с инвертированным знаком.
Следовательно, наборы фильтров и AAC, и ELD-AAC можно воплощать при использовании того же самого N-точечного базового MDCT преобразования или базового IMDCT преобразования. Поддержка обоих типов наборов фильтров возможна только при использовании операций изменения порядка и инвертирования знака, с минимальным воздействием на всю сложность реализации.
Информация и сигналы могут быть представлены, используя любую из множества различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы и т.п., на которые могут существовать ссылки по всему приведенному выше описанию, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Различные описанные иллюстративные логические блоки, модули и схемы и этапы алгоритма можно осуществлять или воплощать, как электронные аппаратные средства, программное обеспечение или их комбинации. Чтобы ясно показать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше в общем случае в терминах их функциональных возможностей. Воплощают ли такие функциональные возможности как аппаратные средства или как программное обеспечение, зависит от конкретного применения и ограничений конструкции, налагаемых на всю систему. Следует отметить, что конфигурации можно описывать как процесс, который изображают в виде блок-схемы, как последовательность операций, структурная схема или блок-схема. Хотя последовательность операций может описывать операции, как последовательный процесс, многие из операций можно выполнять параллельно или одновременно. Кроме того, порядок операций можно изменять. Процесс закончен, когда его операции закончены. Процесс может соответствовать способу, функции, процедуре, подпрограмме и т.д. Когда процесс соответствует функции, ее завершение соответствует возвращению функции к вызывающей функции или к главной функции.
При воплощении в аппаратных средствах различные примеры могут использовать универсальный процессор, процессор цифровой обработки сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) или другие программируемые логические устройства, дискретные схемы или транзисторные логические схемы, дискретные аппаратные компоненты или любую их комбинацию, предназначенную для выполнения описанных функций. Универсальный процессор может быть микропроцессором, но альтернативно, процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор можно также воплощать как комбинацию вычислительных устройств, например, как комбинацию DSP и микропроцессора, множества микропроцессоров, одного или большего количества микропроцессоров вместе с ядром DSP или любую другую такую конфигурацию.
При воплощении в программном обеспечении различные примеры могут использовать встроенное программное обеспечение, связующее программное обеспечение или микрокод. Код программы или кодовые сегменты для выполнения необходимых задач можно хранить на считываемом компьютером носителе, таком как носитель данных или другое запоминающее устройство. Процессор может выполнять необходимые задачи. Кодовый сегмент может представлять процедуру, функцию, подпрограмму, программу, процедуру, модуль, пакет программ, класс или любую комбинацию команд, структур данных или операторов программы. Кодовый сегмент может быть связан с другим кодовым сегментом или с аппаратной схемой с помощью передачи и/или приема информации, данных, аргументов, параметров или содержимого памяти. Информацию, аргументы, параметры, данные и т.д. можно направлять или передавать через любое подходящее средство, включающее в себя совместное использование памяти, передачу сообщений, передачу маркера, сетевую передачу и т.д.
В данной заявке термины «компонент», «модуль», «система» и т.п.относятся к связанному с применением компьютера объекту, или к аппаратным средствам, или к встроенному программному обеспечению, или к комбинации аппаратных средств и программного обеспечения, или к программному обеспечению, или к выполняющемуся программному обеспечению. Например, компонент может быть процессом, выполняющимся в процессоре, процессором, задачей, исполняемой программой, потоком выполнения, программой и/или компьютером, но не ограничен ими. Для иллюстрации и приложение, выполняющееся на вычислительном устройстве, и вычислительное устройство могут быть компонентом. Один или большее количество компонентов могут находиться в пределах процесса и/или потока выполнения, и компонент может быть ограничен на одном компьютере и/или распределен между двумя или большим количеством компьютеров. Кроме того, эти компоненты можно выполнять с различных считываемых компьютером носителей, хранящих на себе различные структуры данных. Компоненты могут осуществлять связь посредством локальных и/или удаленных процессов, например, в соответствии с сигналом, имеющим один или большее количество пакетов данных (например, данных от одного компонента, взаимодействующего с другим компонентом в локальной системе, распределенной системе и/или по сети, такой как Интернет, с другими системами посредством сигнала).
В одном или большем количестве примеров описанные функции можно воплощать в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или в любой их комбинации. При воплощении в программном обеспечении функции можно сохранять или передавать как одну или большее количество команд или код считываемого компьютером носителя. Машиночитаемый носитель включает в себя и компьютерные носители данных, и средства связи, включающие в себя любой носитель, который обеспечивает перемещение компьютерной программы из одного места в другое. Носители данных могут быть любым доступным носителем, к которому может получать доступ компьютер. Для примера, а не в качестве ограничения, такой машиночитаемый носитель может содержать оперативную память (ОП), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), привод компакт-дисков (CD-ROM) или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для переноса или хранения необходимого кода программы в форме команд или структур данных и к которому может обращаться компьютер. Кроме того, любое соединение строго говоря можно назвать считываемым компьютером носителем. Например, если программное обеспечение передают с веб-сайта, сервера или другого удаленного источника, используя коаксиальный кабель, оптоволоконный кабель, витую пару, цифровую абонентскую линию (DSL) или беспроводные технологии, такие как инфракрасные волны, радиоволны и микроволны, то определение носителя включает в себя коаксиальный кабель, оптоволоконный кабель, витую пару, DSL или беспроводные технологии, такие как инфракрасные волны, радиоволны и микроволны. Магнитные диски и оптические диски включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и диск blu-ray, где магнитные диски обычно воспроизводят данные магнитным способом, в то время как оптические диски воспроизводят данные оптически с помощью лазера. Машиночитаемый носитель также включает в себя комбинации приведенного выше. Программное обеспечение может содержать одну команду или множество команд, и оно может быть распределено по нескольким различным кодовым сегментам, среди различных программ и по множеству носителей данных. Примерный носитель данных может быть связан с процессором таким образом, что процессор может считывать информацию с носителя данных и записывать на него информацию. Альтернативно носитель данных может быть неотъемлемой частью процессора.
Раскрытые способы содержат один или большее количество этапов или действий для обеспечения описанного способа. Этапы способа и/или действия можно менять друг с другом, не отступая от объема формулы изобретения. Другими словами, если определенный порядок этапов или действий не требуется для надлежащей работы описанного варианта осуществления, то порядок и/или использование определенных этапов и/или действий можно изменять, не отступая от объема формулы изобретения.
Один или большее количество компонентов, этапов и/или функций, показанных на Фиг.1, 2, 3, 4, 5, 6, 7, 8, 9 и/или 10, можно изменять и/или объединять в один компонент, этап или функцию или воплощать в нескольких компонентах, этапах или функциях. Можно также добавлять дополнительные элементы, компоненты, этапы и/или функции. Устройство, блоки и/или компоненты, показанные на Фиг.1, 2, 6 и 10, можно конфигурировать или настраивать для выполнения одного или большего количества способов, особенностей или этапов, описанных на Фиг.3-5 и 7-9. Описанные алгоритмы можно эффективно воплощать в программном обеспечении и/или во встроенных аппаратных средствах.
Нужно отметить, что предшествующие конфигурации являются просто примерами и не должны рассматриваться в качестве ограничения формулы изобретения. Описание конфигураций является иллюстративным, а не ограничивающим объем формулы изобретения. Также настоящее обучение можно легко применять к другим типам устройств, и множество альтернативных вариантов, модификаций и разновидностей будет очевидно для специалистов.