АУДИОКОДЕР И АУДИОДЕКОДЕР ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ОТСЧЕТОВ АУДИОСИГНАЛА
AUDIO ENCODER AND AUDIO DECODER FOR ENCODING AND DECODING AUDIO SIGNAL READINGS

Предлагаемое изобретение относится к кодированию звука в разных областях преобразования, например, во временной области и в трансформанте.
Для кодирования звука и речи при низких битрейтах традиционно применяют несколько алгоритмов, обеспечивающих наилучшее качество субъективного восприятия. Целью применения кодеров обычных музыкальных/звуковых сигналов является оптимизация воспринимаемого на слух качества путем приведения формы ошибки спектрального (и временного) квантования в соответствие с кривой порога маскирования, выводимой из входного сигнала с применением перцептуальной модели («перцептуального аудиокодирования»). Вместе с тем, как показала практика, кодирование речи на очень низких битрейтах весьма эффективно, когда оно базируется на модели воспроизведения человеческой речи, то есть - на использовании кодирования с линейным предсказанием (LPC) для моделирования резонансных эффектов речевого тракта человека в комплексе с продуктивным кодированием остаточного инициирующего сигнала.
Как следствие применения этих двух разных подходов такие аудиокодеры общего назначения, как MPEG-1 уровня 3 (стандарт MPEG разработан «Экспертной группой по движущимся изображениям»), или MPEG-2/4 ААС (усовершенствованный метод кодирования звука), как правило, не дают такой же положительный результат для речевых сигналов с очень низким битрейтом, как специально разработанные линейно-предиктивные речевые кодеры, в силу отсутствия модели источника речи. И наоборот, линейно-предиктивные кодеры речи в большинстве случаев не дают должных результатов при приложении к обычным музыкальным сигналам из-за неспособности гибко формировать огибающую спектра искажения кодирования, соответствующую кривой порога маскирования. Далее описаны концепции, объединяющие преимущества LPC-кодирования и перцептуального аудиокодирования в единую структуру и формирующие таким образом унифицированную систему кодирования звука, то есть - одинаково применимую для кодирования как общеакустических сигналов, так и речи.
Традиционно в аудиокодерах перцепционного типа используют банки фильтров, помогающие эффективно кодировать аудиосигналы и формировать шумы квантования в соответствии с оцениваемой кривой маскирования.
На фиг.16 представлена блок-схема базовой монофонической перцепционной системы кодирования. Банк фильтров анализа 1600 предназначен для отображения отсчетов временной области в виде спектральных составляющих. В зависимости от числа спектральных составляющих система может также называться кодером поддиапазонов (при небольшом количестве поддиапазонов, например, 32) или кодером-преобразователем (при большом количестве частотных линий, например, 512). Перцепционная («психоакустическая») модель 1602 предназначена для оценки фактического порога маскирования с временной зависимостью. Спектральные компоненты («подполосы» или «дискреты частотной области») квантуют и кодируют 1604 так, чтобы шум квантования был скрыт в фактически передаваемом сигнале и неразличим при последующем декодирование. Это достигается варьированием глубины квантования спектральных величин по времени и частоте.
Спектральные коэффициенты и значения поддиапазонов после квантования или энтропийного кодирования вводятся вместе с сопутствующей информацией в форматер битстрима 1606, формирующий кодированный аудиосигнал, готовый для передачи или сохранения в памяти. Последовательность битов данных на выходе элемента 1606 может быть передана через Интернет или сохранена на любом машиночитаемом носителе.
Закодированный битстрим поступает на интерфейс ввода данных декодера 1610. Блок 1610 отделяет прошедшие энтропийное кодирование и квантование значения спектра/поддиапазонов от служебной информации. Кодированные параметры спектра вводятся в энтропийный декодер, например, декодер Хаффмана, расположенный между 1610 и 1620. Выходные данные энтропийного декодера представляют собой квантованные значения спектра. Эти квантованные спектральные величины вводятся в реквантователь, который выполняет «обратное» квантование, что показано в виде элемента 1620 на фиг.16. Выходные данные элемента 1620 поступают в банк фильтров синтеза 1622, который выполняет синтезирующее фильтрование, включающее в себя частотно-временное преобразование и, как правило, операцию компенсации алиасинга во временной области, такую как наложение и суммирование и/или синтезирующее оконное преобразование, для получения итогового выходного звукового сигнала.
Традиционно эффективное кодирование речи базировалось на линейно-предиктивном кодировании (LPC-кодирование) с моделированием резонансных эффектов человеческого голосового тракта вместе с продуктивным кодированием остаточного возбуждающего сигнала. Параметры LPC-кодирования и возбуждения транслируются от кодера к декодеру. Этот принцип проиллюстрирован на фиг.17А и 17B.
На фиг.17A показана схема линейно-прогностического кодера/декодера со стороны кодера. Входной речевой сигнал вводится в LPC-анализатор 1701, на выходе которого формируются коэффициенты фильтра кодирования с линейным предсказанием. На основании этих коэффициентов LPC-фильтрации производится настройка LPC-фильтра 1703. LPC-фильтр дает на выходе аудиосигнал отбеленного спектра, называемый также «сигналом ошибки предсказания». Этот спектрально отбеленный звуковой сигнал вводится в кодер остаточного возбуждения 1705, который генерирует параметры возбуждения. Таким образом, входной речевой сигнал кодируется в виде параметров возбуждения, с одной стороны, и в виде коэффициентов кодирования с линейным предсказанием, с другой стороны.
Далее, как показано на фиг.17В, параметры возбуждения вводятся в декодер возбуждения 1707, генерирующий сигнал возбуждения, который может быть введен в синтезирующий фильтр кодирования с линейным предсказанием. Настройка LPC-фильтра синтеза выполняется с использованием полученных коэффициентов LPC-фильтра. Таким образом, LPC-фильтр синтеза 1709 генерирует реконструируемый или синтезируемый выходной голосовой сигнал.
Длительное время предлагались различные методы эффективной и достоверной передачи остаточного (возбуждающего) сигнала, такие как многоимпульсное возбуждение (МРЕ), регулярное импульсное возбуждение (RPE) и линейное предсказание с кодовым возбуждением (CELP).
С помощью кодирования с линейным предсказанием делается попытка оценки текущей величины отсчета последовательности на основании отслеживания и линейного объединения некоторого числа величин прошлых измерений. Для ограничения избыточности входного сигнала LPC-фильтр кодера «отбеливает» входной сигнал в пределах огибающей его спектра, то есть представляет собой инверсную модель огибающей спектра сигнала. И наоборот, синтезирующий LPC-фильтр декодера является моделью огибающей спектра сигнала. В частности, хорошо известен авторегрессивный анализ с линейным предсказанием, моделирующий огибающую спектра сигнала с помощью полюсной аппроксимации.
Как правило, узкополосные речевые кодеры (то есть речевые кодеры с частотой дискретизации 8 кГц), используют LPC-фильтры от 8 до 12 порядка. Благодаря конструктивным особенностям LPC-фильтра, равномерное частотное разрешение эффективно во всем диапазоне частот. Это не соответствует шкале перцептивных частот.
С целью объединения преимуществ традиционного LPC/CELP метода кодирования (оптимального для голосовых сигналов) и аудиокодирования на базе традиционного перцептуального подхода с использованием банков фильтров (оптимального для музыки) предлагается способ комбинированного кодирования, объединяющий эти два решения. В кодере AMR-WB+(AMR-WB= Adaptive Multi-Rate WideBand = «адаптивный многоскоростной широкополосный»), В.Bessette, R.Lefebvre, R.Salami, «UNIVERSAL SPEECH/AUDIO CODING USING HYBRID ACELP/TCX TECHNIQUES», [«Универсальное кодирование речи/звука с использованием гибридных технологий ACELP/TCX»] Proc. IEEE ICASSP 2005, pp.301-304, 2005, два альтернативных ядра кодирования обрабатывают остаточный сигнал кодирования с линейным предсказанием (LPC-сигнал). Одно базируется на методе ACELP (линейного предсказания с возбуждением алгебраическим кодом) и, следовательно, весьма эффективно для кодирования речевых сигналов. Второе ядро кодирования базируется на технологии ТСХ (возбуждение, управляемое кодом преобразования), то есть - на методе кодирования с применением банков фильтров, напоминающим традиционные алгоритмы кодирования звука, дающие хорошее качество музыкальных сигналов. В зависимости от характеристик входных сигналов на короткий отрезок времени выбирается один из этих двух режимов кодирования для передачи остаточного сигнала LPC. Таким образом, фреймы длительностью 80 мс могут быть разбиты на подфреймы по 40 мс или 20 мс, в течение которых принимается решение о выборе одного из двух режимов кодирования.
Модель AMR-WB+ (расширенный адаптивный многоскоростной широкополосный кодек), ср.: 3GPP (3GPP=Third Generation Partnership Project = «Проект Партнерства третьего поколения»), технические требования №26.290, версия 6.3.0, июнь 2005, предусматривает возможность переключения между двумя разнородными режимами ACELP и ТСХ. В режиме ACELP сигнал временной области кодируется методом возбуждения алгебраическим кодом. В режиме ТСХ применяется быстрое преобразование Фурье (БПФ), и спектральные характеристики взвешенного LPC-сигнала (из которого может быть выведено LPC-возбуждение) кодируются на основе векторного квантования.
Какой из режимов должен быть задействован, решается на основе оценки и декодирования обоих вариантов с последующим сравнением результирующего соотношения «сигнал-шум» двух сегментов.
Такой подход называют также решением замкнутого контура, поскольку внутри замкнутой схемы управления выполняется оценка обоих процессов кодирования или их эффективности с последующим выбором варианта с лучшим отношением сигнал-шум.
Известно, что в процессе кодировании звука и речи блочное преобразование без оконного взвешивания невыполнимо. Поэтому, в режиме ТСХ сигнал взвешивается с использованием небольшого перекрытия окон на 1/8. Этот участок наложения необходим для затухания предшествующего блока или фрейма при одновременном нарастании очередного, предположим, для подавления артефактов вследствие некоррелированного шума квантования в последующих аудиофреймах. Благодаря этому непроизводительное использование системного ресурса (overhead = оверхед) сохраняется на достаточно низком уровне по сравнению с некритической дискретизацией, и декодирование, необходимое для принятия решения в замкнутом цикле, реконструирует, по меньшей мере, 7/8 отсчетов текущего фрейма.
Кодер AMR-WB+в режиме ТСХ вносит 1/8 протокольной информации (оверхед), то есть число спектральных величин, которые должны быть закодированы, на 1/8-ую превышают число входных отсчетов. Недостатком этого является увеличение вычислительной трудоемкости обработки данных. Более того, соответствующие полосовые фильтры имеют неблагоприятную частотную характеристику из-за крутизны области перекрытия 1/8 последовательных фреймов.
Для иллюстрации увеличения кодируемой служебной информации (за счет оверхеда) и процедуры перекрытия последовательных фреймов на фиг.18 дано определение параметров окна. Окно, показанное на фиг.18, имеет с левой стороны нарастающий фронт, обозначенный «L», называемый также левой областью перекрытия, центральную область, обозначенную «1», которая также называется областью 1 или байпасом (полосовой областью), и зону среза, которая обозначена «R», и называется также областью правого перекрытия. Кроме того, на фиг.18 стрелкой указана область «PR» наилучшей реконструкции внутри фрейма. В дополнение к этому, на фиг.18 стрелкой указана длина ядра преобразования, обозначенного «Т».
На фиг.19 продемонстрирован график последовательности окон AMR-WB+, под которым дана таблица параметров окна согласно фиг.18. Последовательность окон, показанная вверху фиг.19, такова: ACELP, TCX20 (для фрейма длительностью 20 мс), ТСХ20, ТСХ40 (для фрейма длительностью 40 мс), ТСХ80 (для фрейма длительностью 80 мс), TCX20, TCX20, ACELP, ACELP.
Из представления последовательности окон видно, что области перекрытия варьируются, составляя точно 1/8 от центральной части М. Из таблицы внизу фиг.19 можно также видеть, что ядро преобразования „Т" всегда на 1/8 длиннее области новых совершенно восстановленных отсчетов „PR". Более того, следует отметить, что это касается не только переходов от ACELP к ТСХ, но и переходов от ТСХх к ТСХх (где „х" указывает на произвольную длину фреймов ТСХ). Таким образом в каждый блок вводится 1/8 избыточных данных (оверхед), то есть критическая дискретизация никогда не достигается.
При переключении от ТСХ к ACELP оконные дискреты исключаются из фрейма БПФ-ТСХ в области перекрытия, как, например, в области, обозначенной 1900 на верхнем графике фиг.19. При переключении от ACELP к ТСХ отклик при нулевом входном сигнале (zero-input response=ZIR), помеченный пунктиром 1910 на графике фиг.19, удаляется в кодере перед оконным взвешиванием и добавляется в декодере для восстановления. При переключении между фреймами ТСХ оконные отсчеты используются для микширования наплывом. Так как фреймы ТСХ могут квантоваться по-разному, ошибка квантования или шум квантования между следующими друг за другом фреймами могут отличаться и/или быть независимыми друг от друга. Вследствие этого при переключении от одного фрейма к следующему без наплыва могут возникать значительные артефакты, следовательно, для достижения определенного качества необходимо микширование наплывом. Из нижней таблицы на фиг.19 видно, что участок наплыва увеличивается с увеличением длины фрейма. На фиг.20 дана еще одна таблица, графически представляющая различные конфигурации окон, соответствующие переходам, вероятным для AMR-WB+. При переходе от ТСХ к ACELP перекрываемые отсчеты могут быть отвергнуты. При переходе от ACELP к ТСХ отклик на нулевой входной сигнал от ACELP может быть удален в кодере и добавлен в декодере для восстановления.
Далее будет освещено кодирование во временной области (TD) и частотной области (FD). При этом может применяться переключение между этими двумя областями кодирования.
На фиг.21 представлена временная шкала, на которой FD-кодер кодирует первый фрейм 2101, вслед за которым TD-кодер кодирует фрейм 2103, который перекрывает первый фрейм 2101 в зоне 2102. За фреймом 2103, закодированным во временной области, следует фрейм 2105, кодируемый вновь в частотной области, который перекрывает в зоне 2104 предшествующий фрейм 2103. Области перекрытия 2102 и 2104 возникают при каждом переключении области кодирования.
Цель формирования областей перекрытия состоит в сглаживании переходов. Тем не менее, области перекрытия могут иметь тенденцию к снижению эффективности кодирования и возникновению артефактов. Поэтому области перекрытия или переходы часто выбираются как компромисс между некоторым избытком передаваемой информации (оверхедом), то есть эффективностью кодирования, и качеством перехода, то есть качеством звучания декодированного сигнала. В поисках такого компромисса при манипулировании переходами и конструировании окон переходов 2111, 2113 и 2115 следует соблюдать тщательность, как рекомендовано на фиг.21.
Традиционные концепции управления переходами между режимами кодирования в частотной и временной областях, к примеру, берут на вооружение окна микширования наплывом, то есть вводят объем протокольной информации (оверхед), равный области перекрытия. При этом применяют окно плавного наложения, которое обеспечивает затухание предшествующего фрейма и одновременное нарастание следующего фрейма. Такой подход из-за повышения вычислительной трудоемкости (за счет оверхеда) снижает эффективность декодирования, поскольку при каждом появлении перехода сигнал больше не поддается критической дискретизации. Критически дискретизированные переходы с перекрытием рассмотрены, например, в: J.Princen, A.Bradley, «Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation» [«Конструкция банка фильтров анализа/синтеза на основе удаления наложения (алиасинга) во временной области»], IEEE Trans. ASSP, ASSP-34(5): 1153-1161, 1986, и применены, например, в усовершенствованном алгоритме кодирования звука ААС, ср.: «Generic Coding of Moving Pictures and Associated Audio: Advanced Audio Coding, International Standard 13818-7, ISCMEC JTC1/SC29/WG11 Moving Pictures Expert Group, 1997» [Универсальное кодирование движущегося изображения и связанного с ним звука: Усовершенствованное аудиокодирование, международный стандарт 13818-7, ISO/IEC JTC1/SC29/WG11, Экспертная группа по движущимся изображениям (MPEG), 1997].
Кроме того, переходы наплывом без наложения (без алиасинга) рассмотрены в: Fielder, Louis D., Todd, Craig С., «The Design of a Video Friendly Audio Coding System for Distribution Applications» [«Конструкция системы дружественного к изображению кодирования звука для широкого коммерческого применения».], Paper Number 17-008, The AES 17th International Conference: High-Quality Audio Coding (August 1999) и в: Fielder, Louis D., Davidson, Grant A., «Audio Coding Tools for Digital Television Distribution» [«Средства аудиокодирования для распространения цифрового телевидения»], Preprint Number 5104, 108th Convention of the AES (January 2000).
В WO 2008/071353 представлена концепция переключения между кодером во временной области и кодером в частотной области. Концепция применима к любому кодеку, базирующемуся на переключении временной/частотной области. В частности, эта концепция применима к кодированию во временной области для режима ACELP кодека AMR-WB+ и для ААС в качестве примера кодека частотной области. На фиг.22 показана принципиальная модульная схема традиционного кодера, где в верхней ветви использован декодер частотной области, а в нижней ветви задействован декодер временной области. Сторона декодирования в частотной области представлена декодером ААС и включает в себя блок переквантования 2202 и блок обратного модифицированного дискретного косинусного преобразования 2204. В ААС модифицированное дискретное косинусное преобразование (МДКП=MDCT) применено для преобразования из временной области в частотную. На фиг.22 сторона декодирования во временной области представлена декодером AMR-WB+2206, за которым следует блок МДКП 2208 для совмещения выходных данных декодера 2206 с выходными данными реквантователя 2202 в частотной области.
Это дает возможность слияния в частотной области при том, что после обратного МДКП 2204 может следовать операция сложения наложением, которая не показана на фиг.22, для объединения и монтажа наплывом смежных блоков без необходимости учитывать, в какой области - временной или частотной - они были закодированы.
Другой традиционный подход, изложенный в WO 2008/071353, состоит в предложении исключить показанное на фиг.22 МДКП (MDCT) 2208, то есть ДКП-IV и ОДКП-IV, для декодирования во временной области в пользу подхода с использованием так называемого удаления наложения (алиасинга) во временной области (TDAC=Time-Domain Aliasing Cancellation). На фиг.23 отображен другой декодер, в котором декодер частотной области представлен декодером ААС, включающим в себя блок переквантования 2302 и блок ОМДКП (IMDCT) 2304. Декодирование во временной области вновь представлено декодером AMR-WB+2306, а также блоком TDAC 2308. Декодер, показанный на фиг.23, обеспечивает возможность комбинирования декодированных блоков во временной области, то есть - после ОМДКП 2304, поскольку TDAC 2308 создает необходимый уровень наложения (алиасинга) во временной области для надлежащего комбинирования, то есть - для удаления временного наложения (алиасинга) непосредственно во временной области.
В целях некоторой экономии вычислительного ресурса и вместо использования МДКП на каждом первом и последнем суперфрейме, то есть - на каждых 1024 отсчетах каждого сегмента AMR-WB+, может быть задействован лишь TDAC в зоне или на участке перекрытия для 128 отсчетов. При введении соответствующего обратного наложения (алиасинга) во временной области, выполняемого AMR-WB+, может быть сохранен стандартный алиасинг во временной области, обеспечиваемый алгоритмом ААС.
Окна плавного перехода, не прошедшие предварительное сжатие наложением (алиасинг), имеют тот недостаток, что их кодирование не эффективно, поскольку они генерируют некритически дискретизированные коэффициенты кодирования, внося избыточность (оверхед) в информацию для кодирования. TDA (= Time Domain Aliasing= сложение наложением во временной области) может быть введено в декодер временной области, как, например, в WO 2008/071353, для компенсации такой избыточности (оверхеда), однако применимо только, если разбивка на фреймы (кадрирование) в обоих временных кодерах синхронизирована. Иначе, эффективность кодирования вновь снизится. Более того, TDA со стороны декодера может быть проблематичным, особенно в исходной точке кодера временной области. После потенциального возврата в исходное состояние кодер или декодер временной области, как правило, дают всплеск шума квантования из-за пустоты блоков памяти кодера или декодера временной области, где было применено, допустим, LPC (= кодирование с линейным предсказанием). Декодеру потребуется определенное время для вхождения в постоянный или стабильный режим длительного обеспечения более однородного шума квантования. Подобный всплеск является нежелательным искажением, поскольку различим на слух.
Итак, целью данного изобретения является представление концепции улучшенной коммутации между множеством рабочих областей при кодировании звука.
Цель достигается с применением кодера по пункту 1 формулы изобретения и способов кодирования по пункту 16, аудиодекодера по пункту 18 и способа аудиодекодирования по пункту 32.
Выводом из данного изобретения является возможность улучшения коммутации при аудиокодировании как во временной, так и в частотной областях, при условии синхронизации кадрирования соответствующих областей кодирования или применения модифицированных окон плавного перехода. Например, в одном из вариантов компоновки в качестве кодека временной области может быть задействован AMR-WB+, а ААС может быть использован как кодек частотной области, при этом более эффективная коммутация между этими двумя кодеками будет достигаться или за счет синхронизации фреймов на стороне AMR-WB+ или за счет модифицированных стартовых или стоповых окон для соответствующей кодирующей стороны ААС.
Другим выводом из настоящего изобретения является то, что на стороне декодера могут быть применены TDAC и окна перехода наплывом без сжатия наложения (алиасинга).
Конструктивные решения по данному изобретению могут обеспечить преимущество, заключающееся в возможности компенсации избыточной вспомогательной информации за счет ее размещения в перекрытиях переходов с сохранением участков наплыва в умеренных пределах, что гарантирует качество затухания-нарастания при микшировании.
Версии реализации предлагаемого изобретения будут далее детализированы в соответствии с прилагаемыми фигурами, где на фиг.1А дана блок-схема конструкции аудиокодера; на фиг.1В дана блок-схема конструкции аудиодекодера; на фиг.2a-2j даны уравнения МДКП/ОМДКП; на фиг.3 изображена схема модифицированного способа кадрирования; на фиг.4А показан псевдопериодический сигнал во временной области; на фиг.4В показан вокализованный сигнал в частотной области; на фиг.5А показан шумоподобный сигнал во временной области; на фиг.5В показан невокализованный сигнал в частотной области; на фиг.6 дана схема выполнения анализа через синтез с применением алгоритма CELP; на фиг.7 дана блок-схема, иллюстрирующая стадию применения LPC-анализа; на фиг.8А приведен пример применения модифицированного стопового окна; на фиг.8В приведен пример применения модифицированного стартстопного окна; на фиг.9 показан основной вид оконной функции; на фиг.10 дан более детализированный вид оконной функции; на фиг.11 приведен пример модифицированного стопового окна; на фиг.12 приведен пример различных зон или участков перекрытия; на фиг.13 приведен пример модифицированного стартового окна; на фиг.14 проиллюстрировано приложение модифицированного стопового окна без сложения наложением (алиасинга) для кодера; на фиг.15 проиллюстрировано приложение модифицированного стопового окна без сложения наложением (алиасинга) для декодера; на фиг.16 приведены блок-схемы действия стандартных кодера и декодера; на фиг.17А, 17В приведены блок-схемы алгоритма кодирования LPC для вокализованных и невокализованных сигналов; на фиг.18 отображено окно перехода наплывом известного уровня техники; на фиг.19 отображена последовательность окон AMR-WB+ известного уровня техники; на фиг.20 показаны оконные функции, применяемые в AMR-WB+ для переключения между ACELP и ТСХ; на фиг.21 приведен пример последовательности аудиофреймов, кодируемых в разных областях; фиг.22 иллюстрирует традиционный подход к аудиодекодированию в разных областях; и фиг.23 иллюстрирует алгоритм удаления наложения (алиасинга) во временной области.
На фиг.1А дана блок-схема аудиокодера 100, предназначенного для кодирования дискретов аудиосигнала. Аудиокодер 100 имеет в своем составе первый кодер с временным наложением 110, предназначенный для кодирования дискретов аудиосигнала в первой области кодирования, в инструментарий которого включены первое правило кадрирования (деления на фреймы), стартовое окно и стоповое окно. Кроме того, аудиокодер 100 имеет в своем составе второй кодер 120, предназначенный для кодирования дискретов аудиосигнала во второй области кодирования. В инструментарий второго кодера 120 включены число аудиоотсчетов, задаваемое форматом кадра (фрейма), и число аудиоотсчетов в интервале стабилизации режима кодирования. Длительность такого интервала «прогрева» перед кодированием может быть задана предварительно, может зависеть от отсчетов аудиосигнала, от фрейма аудиоотсчетов или от последовательности аудиосигналов. Второй кодер 120 имеет на вооружении другое, второе, правило кадрирования. Суперфрейм второго кодера 120 является кодированным представлением ряда последовательных во времени аудиоотсчетов, число которых задается форматом фрейма.
Далее, аудиокодер 100 имеет в своем составе контроллер 130, коммутирующий между первым кодером с временным наложением 110 и вторым кодером 120 в зависимости от характеристики аудиоотсчетов и выполняющий переход ко второму правилу кадрирования при коммутации от первого кодера с временным наложением 110 ко второму кодеру 120 или корректирующий стартовое окно или стоповое окно первого кодера с временным наложением 110 с сохранением второго правила кадрирования без изменений.
В реализациях контроллер 130 может быть настроен на определение характеристики отсчетов аудиосигнала по входным аудиоотсчетам или по выходным данным первого кодера с временным наложением 110 или второго кодера 120. На фиг.1А пунктиром показан канал, по которому входные аудиоотсчеты могут быть переданы на контроллер 130. Более подробно механизм коммутирования будет рассмотрен ниже.
Возможны варианты технического исполнения, при которых первый кодер с временным наложением 110 и второй кодер 120 параллельно выполняют кодирование аудиоотсчетов, в то время как контроллер 130, основываясь на полученных результатах, принимает решение о коммутации, внося перед коммутацией предварительные корректировки. В других аппаратных версиях контроллер 130 может анализировать характеристики аудиоотсчетов и выбирать для активации нужный контур кодирования, отключая при этом второй контур. При таком варианте осуществления актуальным становится введение времени стабилизации (прогрева) режима кодирования второго кодера 120, что подробнее будет описано ниже.
При реализации первый кодер с временным наложением 110 может иметь в своем составе частотный преобразователь для преобразования первого фрейма последовательных аудиоотсчетов в частотную область. Первый кодер с временным наложением 110 может быть настроен на взвешивание первого кодированного фрейма стартовым окном, если следующий фрейм будет кодироваться вторым кодером 120, и может быть настроен на взвешивание первого закодированного фрейма стоповым окном, если предыдущий фрейм кодируется вторым кодером 120.
Следует заметить, что возможно использование различных обозначений, однако в первом кодере с временным наложением 110 применены маркеры «окно старта» или «окно останова». Здесь и далее принято, что в первом кодере с временным наложением 110 стартовое окно вводится до переключения на второй кодер 120, а при обратном переключении со второго кодера 120 на первый кодер с временным наложением 110 вводится стоповое окно. Являясь универсальным, данное положение справедливо также и в отношении второго кодера 120. Во избежание разночтений здесь термины «старт» (стартовое) и «стоп» (стоповое) обозначают окна, маркируемые на стороне первого кодера 110 перед активацией и после останова второго кодера 120.
При техническом воплощении частотный преобразователь в составе первого кодера с временным наложением 110 может быть настроен на преобразование первого фрейма в частотную область на основании МДКП, а первый кодер с временным наложением 110 может быть настроен на адаптацию формата МДКП к стартстопным или модифицированным стартстопным окнам. Частные моменты МДКП и его форматы будут рассмотрены ниже.
Возможны конструктивные решения, в которых первый кодер с временным наложением 110 предусматривает использование стартового и/или стопового окна, имеющего сегмент без наложения (алиасинга), то есть - окна, внутри которого есть область, свободная от сложения наложением (алиасинга) во временной области. Кроме того, первый кодер с временным наложением 110 может использовать окно старта и/или окно останова, в котором безалиасинговый участок расположен на фронте оконной функции, когда предыдущий фрейм кодируется вторым кодером 120, то есть первый кодер с временным наложением 110 использует стоповое окно, нарастающий фронт которого свободен от наложения. Отсюда следует, что первый кодер с временным наложением 110 может использовать взвешивающую функцию, которая не имеет наложение (алиасинг) на срезе, если очередной фрейм кодируется вторым кодером 120, то есть может применять стоповое окно, срез которого свободен от наложения (алиасинга).
В аппаратном исполнении контроллер 130 может активировать второй кодер 120 таким образом, что первый фрейм последовательности фреймов второго кодера 120 будет содержать кодированное представление отсчетов, обработанных в предыдущей безалиасинговой части первого кодера с временным наложением 110. Иначе говоря, выходные аудиоданные первого кодера с временным наложением 110 и второго кодера 120 могут координироваться контроллером 130 таким образом, что свободный от наложения (безалиасинговый) сегмент аудиоотсчетов, закодированных первым кодером с временным наложением 110, обоюдно перекрывается с выходными кодированными аудиоотсчетами второго кодера 120. Кроме того, в контроллере 130 предусмотрена функция монтажа наплывом, то есть - микширование затухания одного кодера с нарастанием второго кодера.
Контроллер 130 может активировать второй кодер 120 так, чтобы массив аудиоотсчетов времени стабилизации режима кодирования перекрывал безалиасинговый сегмент стартового окна первого кодера с временным наложением 110, а следующий фрейм второго кодера 120 перекрывал стоповое окно в секторе наложения. Иначе говоря, контроллер 130 может согласовывать работу кодеров таким образом, что в период вхождения в готовность к кодированию второго кодера 120 открыт доступ к аудиоотсчетам без наложения (без алиасинга) первого кодера 110, а с началом поступления от первого кодера с временным наложением 110 только аудиоотсчетов с наложением время прогрева второго кодера 120 кончается, и начинается регулярный вывод кодированных аудиоотсчетов вторым кодером 120.
Контроллер 130 также может быть настроен на такой запуск второго кодера 120, при котором интервал стабилизации режима кодирования перекрывает окно старта на участке с наложением. При таком варианте осуществления в перекрываемый сектор могут быть включены аудиоотсчеты с наложением с выхода первого кодера с временным наложением 110 и кодированные аудиоотсчеты времени вхождения в рабочий режим второго кодера 120, которые могут содержать повышенный шум квантования. Кроме того, контроллер 130 предусматривает возможность плавного перехода на протяжении перекрытия между двумя субоптимально кодированными аудиопоследовательностями.
В других модификациях контроллер 130 может обеспечивать переключение с первого кодера 110 при изменении характеристик аудиоотсчетов и выполнять корректировку второго правила кадрирования как отклик на коммутацию с первого кодера с временным наложением 110 на второй кодер 120 или модификацию стартового окна или стопового окн первого кодера без корректировки второго правила кадрирования. Иначе говоря, контроллер 130 предназначен для обеспечения двусторонней коммутации между аудиокодерами.
В других случаях контроллер 130 может активировать первый кодер с временным наложением 110 таким образом, что участок без наложения (без алиасинга) стопового окна перекрывается фреймом второго кодера 120. Формулируя иначе, аппаратная реализация контроллера предусматривает монтаж наплывом выходных данных двух указанных кодеров. В ряде конструктивных исполнений выходные аудиоданные второго кодера плавно затухают, в то время как субоптимально кодированные, то есть прошедшие сложение наложением, аудиоотсчеты первого кодера с временным наложением 110 плавно нарастают. Возможен вариант, когда контроллер 130 выполняет переход наплывом между фреймом второго кодера 120 и фреймом первого кодера 110 без наложения (без алиасинга).
В реализациях первый кодер с временным наложением 110 может включать в себя кодер ААС в соответствии с международным стандартом «Generic Coding of Moving Pictures and Associated Audio: Advanced Audio Coding, International Standard 13818-7, ISO/IEC JTC1/SC29/WG11 Moving Pictures Expert Group, 1997» [Универсальное кодирование движущегося изображения и связанного с ним звука: Усовершенствованное аудиокодирование, международный стандарт 13818-7, ISO/IEC JTC1/SC29/WG11, Экспертная группа по движущимся изображениям (MPEG), 1997].
В реализациях второй кодер 120 может включать в себя кодер AMR-WB+ в соответствии с 3GPP, Technical Specification 26.290, Version 6.3.0 as of June 2005 «Audio Codec Processing Function; Extended Adaptive Multi-Rate-Wide Band Codec; Transcoding Functions», release 6 [„Проект Партнерства третьего поколения"), технические требования №26.290, версия 6.3.0, июнь 2005 «Рабочие функции аудиокодека; Расширенный адаптивный многоскоростной широкополосный кодек (AMR-WB); Функции транскодирования», выпуск 6].
Контроллер 130 может модифицировать правила кадрирования AMR или AMR-WB+, в результате чего первый суперфрейм AMR будет состоять из пяти фреймов AMR, в то время как согласно вышеуказанному техническому условию суперфрейм состоит из четырех стандартных фреймов AMR, ср.: фиг.4, таблица 10 на стр.18 и фиг.5 на стр.20 названного ТУ. Как будет показано ниже, контроллер 130 может вводить дополнительный фрейм в суперфрейм AMR. Следует отметить, что суперфрейм может быть модифицирован путем добавления фрейма в начало или в конец любого суперфрейма, то есть правила кадрирования могут быть применены с конца суперфрейма.
На фиг.1В показана блок-схема конструкции аудиодекодера 150, предназначенного для декодирования закодированных фреймов, содержащих отсчеты аудиосигнала. Аудиодекодер 150 имеет в своем составе первый декодер сигнала с временным наложением 160, предназначенный для декодирования аудиоотсчетов в первой области декодирования.
В инструментарий первого декодера сигнала с временным наложением 160 входят первое правило кадрирования, стартовое окно и стоповое окно. Кроме того, аудиодекодер 150 имеет в своем составе второй декодер 170, предназначенный для декодирования отсчетов аудиосигнала во второй области декодирования. В инструментарий второго декодера 170 входят задаваемое форматом фрейма число аудиоотсчетов и число аудиоотсчетов интервала стабилизации режима кодирования. В дополнение к этому второй декодер 170 имеет в своем инструментарии другое, второе, правило кадрирования. Суперфрейм второго декодера 170 может соответствовать декодированному представлению ряда последовательных во времени аудиоотсчетов, число которых задано форматом фрейма.
Далее, аудиодекодер 150 имеет в своем составе контроллер 180, коммутирующий между первым декодером сигнала с временным наложением 160 и вторым декодером 170 на основании индикации в закодированном фрейме аудиоотсчетов, корректирующий второе правило кадрирования в ответ на переключение с первого декодера сигнала с временным наложением 160 на второй декодер 170 или модифицирующий окно старта или окно останова первого декодера 160 с сохранением второго правила кадрирования без изменений.
Как описано выше, например, в кодеке ААС, стартстопные окна применяются как в кодере, так и в декодере. Аудиодекодер 150 выполняет декодирование данных, закодированных в соответствии с приведенным выше описанием аудиокодера 100. Команды коммутации могут подаваться контроллеру 180 в виде бита, флажка или любой другой служебной информации, сопровождающей кодированные фреймы.
В реализациях первый декодер 160 может включать в себя временной преобразователь, предназначенный для преобразования первого фрейма декодированных отсчетов аудиосигнала во временную область. Первый декодер сигнала с временным наложением 160 может быть настроен на взвешивание первого декодированного фрейма стартовым окном, когда следующий фрейм декодируется вторым декодером 170, и/или на взвешивание первого декодированного фрейма стоповым окном, когда предыдущий фрейм декодирован вторым декодером 170. Временной преобразователь может преобразовывать первый фрейм во временную область с использованием обратного МДКП (ОМДКП), и/или первый декодер сигнала с временным наложением 160 может адаптировать формат ОМДКП к стартовому и/или стоповому или к модифицированным стартовому и/или стоповому окнам. Форматы ОМДКП будут подробно рассмотрены дальше.
Возможны конструктивные решения, где первый декодер сигнала с временным наложением 160 предусматривает использование стартового окна и/или стопового окна, имеющего сегмент без наложения (без алиасинга). Кроме того, первый декодер сигнала с временным наложением 160 может использовать стоповое окно, в котором участок без наложения (без алиасинга) расположен на фронте оконной функции, когда предшествующий фрейм был декодирован вторым декодером 170, и/или первый декодер сигнала с временным наложением 160 может иметь стартовое окно с сегментом без наложения (без алиасинга) на срезе функции, когда следующий фрейм декодируется вторым декодером 170.
В соответствии с приведенным выше описанием конструктивных решений аудиокодера 100 контроллер 180 может активировать второй декодер 170 таким образом, что первый фрейм последовательности фреймов второго декодера 170 будет содержать декодированное представление отсчета, обработанного в предыдущем безалиасинговом сегменте (без наложения) первого декодера 160. Контроллер 180 может запускать второй декодер 170 так, что количество аудиоотсчетов периода стабилизации режима кодирования будет обоюдно перекрываться с безалиасинговым участком окна старта первого декодера сигнала с временным наложением 160, а следующий фрейм второго декодера 170 будет взаимно перекрываться с участком с наложением (с алиасингом) окна останова.
В других вариантах исполнения контроллер 180 может активировать второй декодер 170 таким образом, что интервал стабилизации режима кодирования будет перекрыт участком наложения (алиасинга) окна старта.
В других модификациях контроллер 180 может обеспечивать коммутацию со второго декодера 170 на первый декодер 160 в ответ на индикаторы, получаемые от закодированных аудиоотсчетов, и корректировку второго правила кадрирования как отклик на переключение со второго декодера 170 на первый декодер 160 или модификацию стартового окна или стопового окна первого декодера 160 с сохранением второго правила кадрирования без изменений. Указанные индикаторы могут представлять собой флажок, бит или любую форму служебных данных, сопровождающих кодированные фреймы.
Возможны технические решения, где при запуске контроллером 180 первого декодера сигнала с временным наложением 160 сектор с наложением (с алиасингом) стопового окна перекрывается фреймом второго декодера 170.
Контроллер 180 может быть реализован с функцией перехода с наплывом между последовательными фреймами декодированных аудиоотсчетов разных декодеров.
В дополнение к этому контроллер 180 может локализовать алиасинг на участке наложения стартстопных окон из декодированного фрейма второго декодера 170 и уменьшать этот локализованный на участке наложения алиасинг.
Кроме того, контроллер 180 предусматривает возможность удаления аудиоотсчетов интервала стабилизации режима кодирования второго декодера 170.
Далее рассматриваются детали модифицированного дискретного косинусного преобразования (МДКП=MDCT) и обратного МДКП (ОМДКП=IMDCT). Рассмотрение МДКП будет поясняться уравнениями, приведенными на фиг.2а-2j. Модифицированное дискретное косинусное преобразование представляет собой разложение сигнала по Фурье на базе дискретного косинусного преобразования четвертого типа (ДКП-IV=DCT-IV) с дополнительным перекрытием, то есть - для обработки последовательных блоков большого массива данных, где блоки перекрываются таким образом, что, например, последняя половина одного блока совпадает с начальной половиной следующего блока.
Такое перекрывание в дополнение к уплотнению энергии, получаемому с помощью ДКП, делает МДКП особенно полезным для сжатия сигнала, поскольку оно предупреждает возникновение артефактов на стыках блоков. Так, например, МДКП применяется для компрессии звука в форматах МР3 (МР3=MPEG2/4 уровня 3), АС-3 (аудиокодек Dolby), Ogg Vorbis [свободный формат сжатия звука с потерями аналогичный кодекам ААС, АСЗ и VQF] и ААС (усовершенствованный алгоритм кодирования звука).
МДКП (MDCT) было предложено Принсеном (Princen), Джонсоном (Johnson) и Бредли (Bradley) в 1987 году вслед за более ранней (1986) работой Принсена и Бредли, посвященной выведению основных принципов МДКП по удалению наложения во временной области (TDAC), внимание которым будет уделено здесь позднее. Кроме того, при аппаратном осуществлении для выполнения преобразования сжатия с наложением и суммированием (алиасинга) во временной области может быть применено аналоговое преобразование, МДСТ [(MDST)= модифицированное ДСП= модифицированное дискретное синусное преобразование], на основе дискретного синусного преобразования или других редко применяемых форм МДКП, построенных на вариантах сочетания ДКП или ДКП/ДСП.
На практике в формате МР3 МДКП не применяют непосредственно к звуковому сигналу, а - к выходному сигналу 32-полосного банка многофазных квадратурных фильтров (МКФ=PQF). Далее для обработки выходных данных такого МДКП применяют формулу приведения алиасинга, дающую сокращение алиасинга до нормального для банка фильтров МКФ вида. Подобное сочетание банка фильтров с МДКП называют гибридным банком фильтров или подполосовым МДКП. В то же время в ААС стандартно применяют МДКП в чистом виде; только в (редко используемом) варианте MPEG-4 ААС-SSR (Sony) применен четырехполосный банк МКФ (PQF) с последующим МДКП. В формате ATRAC (=кодирование звука с адаптивным преобразованием) используются многоуровневые квадратурно-зеркальные фильтры (КЗФ=QMF) с последующим МДКП.
2N
N
0
2N-1
0
N-1
Как преобразование наложением МДКП выглядит несколько необычно по сравнению с другими преобразованиями по Фурье, поскольку выходных данных при его выполнении вдвое меньше входных данных (вместо равного объема). Здесь, в частности, мы имеем линейную функцию F: R->R, где R обозначает ряд действительных чисел. 2N действительных чисел х, …, x преобразуется в N действительных чисел Х, …, X, что соответствует формуле на фиг.2а.
Коэффициент нормализации в начале данного преобразования, здесь, в частности, единица, является произвольным и для каждого вычисления различен. Ограничено только произведение нормализации МДКП и, ниже, ОМДКП.
Обратное МДКП известно как ОМДКП (=IMDCT). Поскольку количество вводов и выводов данных различно, на первый взгляд может показаться, что МДКП необратимо. Тем не менее, полная обратимость достигается за счет сложения наложением ОМДКП последовательных перекрывающихся блоков, благодаря чему нейтрализуются искажения и реконструируются исходные данные.
0
N-1
0
2N-1
С помощью ОМДКП N действительных чисел X, …, X преобразуют в 2N действительных чисел у, …, y в соответствии с формулой фиг.2b. Обратное преобразование имеет такую же ортогональную форму, как и прямое ДКП-IV.
В случае оконного МДКП с нормализацией обычной оконной функцией (см. ниже) коэффициент нормализации перед ОМДКП должен быть умножен на 2, то есть иметь вид 2/N.
2
Несмотря на то что прямое применение формулы МДКП требует 0(N) операций, имеется возможность выполнить такое же вычисление лишь при коэффициенте сложности 0(N log N) путем рекурсивного разложения на множители как при быстром преобразовании Фурье (БПФ). МДКП могут также быть рассчитаны через другие преобразования, как правило, ДПФ (БПФ) или ДКП в комбинации с 0(N) шагами пред- и постобработки. Кроме того, как описано ниже, любой алгоритм для ДКП-IV непосредственно обеспечивает способ вычисления МДКП и ОМДКП четной размерности.
n
n
n
Обычно при компрессии сигнала параметры преобразования в дальнейшем оптимизируют с использованием оконной функции w (n=0, …, 2N-1), которую умножают на x и y формул МДКП и ОМДКП, приведенных выше, для предотвращения разрывов на границах n=0 и 2N и плавного сведения функции к нулю в этих точках. Таким образом, данные проходят оконное взвешивание перед МДКП и после ОМДКП. В принципе, х и у могут иметь разные взвешивающие функции, а взвешивающая функция может меняться от блока к блоку, особенно при совмещении блоков данных разной величины, однако для упрощения в первую очередь рассматривается общий случай одинаковых оконных функций для равновеликих блоков.
n
2N-1-n
Преобразование остается обратимым, то есть TDAC продолжает действовать, для симметричного окна w=w, до тех пор, пока w удовлетворяет условию Принсена-Бредли согласно фиг.2с.
Многие различные оконные функции могут быть общими, что проиллюстрировано на фиг.2d для МР3 и MPEG-2 ААС и на фиг.2е для Vorbis. В алгоритме АС-3 используется производное окно Кайзера-Бесселя (KBD), и в формате MPEG-4 ААС также может быть применено окно KBD.
Следует учитывать, что окна, прилагаемые при МДКП, отличаются от окон, используемых при других видах анализа сигнала, поскольку они должны выполнять условие Принсена-Бредли. Одним из оснований для такого различия является то, что оконные функции МДКП применяются дважды - для МДКП (фильтры анализа) и для ОМДКП (фильтры синтеза).
При рассмотрении определений можно видеть, что при четном N МДКП во многом равнозначно ДКП-IV, где входной сигнал смещен на N/2, а два блока данных N преобразуются одновременно. При более близком рассмотрении этой равнозначности можно легко вывести такие существенные свойства как TDAC.
R
R
R
Чтобы точно определить соответствие ДКП-IV, необходимо понимать, что ДКП-IV согласуется с чередованием четных/нечетных граничных условий, когда у своей левой границы оно получает четное значение (около n=-1/2), а у правой границы - нечетное (около n=N-1/2), и так далее (вместо периодических границ, как при ДПФ). Это следует из тождеств фиг.2f. Таким образом, если при этом входные значения будут представлять собой последовательность х длиной N, можно мысленно продолжить эту последовательность до (х, -x, -х, x, …) и так далее, где x обозначает х в обратном порядке.
Предположим, выполняется МДКП 2N вводов при N выводах, где вводы могут быть разделены на четыре блока (а, b, с, d) каждый величиной N/2. Если они будут сдвинуты на N/2 (от элемента +N/2 по определению МДКП), то (b, с, d) продлятся за пределы конца N вводов ДКП-IV, в силу чего они должны быть «свернуты» назад в соответствии с граничными условиями, описанными выше.
R
R
Таким образом, МДКП 2N вводов (а, b, с, d) полностью эквивалентно ДКП-IV N вводов: (-C-d, a-b), где R, как и выше, определяет обратный порядок. В силу этого любой алгоритм вычисления ДКП-IV может быть применен для МДКП.
R
R
Аналогично, как говорилось выше, формула ОМДКП составляет точно 1/2 ДКП-IV (которое является его собственной инверсией), где выходной сигнал сдвинут на N/2 и расширен (за счет граничных условий) до длины 2N. Инверсное ДКП-IV просто возвращает введенные показатели (-c-d, a-b), указанные выше. При таком сдвиге и расширении через граничные условия будут получены результаты, показанные на фиг.2g. Следовательно, половина выходных показателей ОМДКП избыточна.
R
R
R
R
Теперь понятен принцип действия TDAC. Допустим, необходимо вычислить МДКП очередного блока 2N (с, d, e, f) с 50%-ным перекрытием. В результате ОМДКП будет сформировано аналогично описанному выше: (c-d, d-c, e+f, e+f)/2. При сложении этого результата с предыдущим результатом ОМДКП в половине с перекрытием обратные условия компенсируются, давая в итоге просто (с, d) с восстановлением первоначальных данных.
R
Теперь становится понятным происхождение термина «удаление (компенсация) наложения (алиасинга) во временной области». Превышение входными данными границ логического ДКП-IV приводит к их наложению (алиасингу) подобно тому, как происходит наложение (алиасинг) частот, выходящих за пределы частоты Найквиста, на более низкие частоты, с тем отличием, что в первом случае алиасинг происходит во временной области, а во втором - в частотной. Следовательно, сочетания c-d и так далее имеют знак, благодаря которому они аннулируются при сложении.
Для нечетных N (которые редко используются на практике) N/2 не является целым числом, поэтому МДКП представляет собой не просто перемещение сдвига ДКП-IV. В этом случае дополнительный сдвиг на половину отсчета означает, что МДКП/ОМДКП становится эквивалентным DCT-III/II, а анализ аналогичен вышеописанному.
Выше возможность TDAC для обычного МДКП была обоснована тем, что добавление ОМДКП последовательных блоков в их перекрывающуюся половину восстанавливает исходные данные. Подобное обратное преобразование для оконного МДКП формируется несколько сложнее.
R
R
R
R
Вспомним, что при выполнении МДКП и ОМДКП с (a, b, c, d) и (c, d, e, f) и их сложении в половине перекрытия было получено (с+d,c+d)/2+(с-d,d-c)2=(c,d), то есть исходные данные.
Теперь предполагается умножить вводы МДКП и выводы ОМДКП на оконную функцию длиной 2N. Как и ранее, зададим симметричную оконную функцию, соответственно, имеющую вид (w, z, zr, wr), где w и z - векторы длины N/2, a R - указатель обратного порядка. Тогда условие Принсена-Бредли может быть записано как
,
с поэлементным умножением и сложением, или аналогично
,
с обращением w и z.
R
R
Вследствие этого вместо МДКП (a, b, c, d) выполняется МДКП (wa, zb, zC, wd) с поэлементным умножением. После такого МДКП и повторного (поэлементного) умножения на оконную функцию половина последнего N дает в результате, как показано на фиг.2h.
Следует обратить внимание на то, что умножение на 1/2 больше не выполняется, так как в оконном варианте нормализация ОМДКП отличается на коэффициент 2. Такой же результат получаем при оконном МДКП и ОМДКП для (c, d, e, f) в первой половине N согласно фиг.2i. При сложении этих двух половин получаем результат, показанный на фиг.2j, то есть восстанавливаем первоначальные данные.
Далее будет подробно рассмотрено конструктивное решение, в котором контроллер 130 на стороне кодера и контроллер 180 на стороне декодера, соответственно, корректируют второе правило кадрирования в ответ на коммутацию с первой области кодирования на вторую область кодирования. При коммутации в кодере достигается плавный переход, то есть выполняется переключение между алгоритмами кодирования AMR-WB+и ААС. Для достижения плавного перехода применяют небольшое перекрытие, то есть узкий сегмент сигнала или ряд отсчетов аудиосигнала, задействованные в обоих режимах кодирования. Другими словами, ниже будет рассмотрен вариант, в котором первый кодер наложения (алиасинга) во временной области 110 и первый декодер наложения (алиасинга) во временной области 160 реализованы в формате кодека ААС. Второй кодер 120 и декодер 170 соответствуют AMR-WB+ в режиме ACELP. В данном исполнении для контроллеров, соответственно, 130 и 180 выбрана опция корректировки разбивка на фреймы AMR-WB+, то есть - второго правила кадрирования.
На фиг.3 представлена шкала времени, на которой отображены оконные функции и фреймы. На фиг.3 за регулярным окном ААС 301 следует стартовое окно ААС 302. В ААС стартовое окно ААС 302 используется между длинными фреймами и короткими фреймами. Для иллюстрации стандартного режима разбивки на фреймы ААС, то есть -первого правила кадрирования первого кодера с временным наложением 110 и декодера 160, на фиг.3 показана также последовательность коротких окон ААС 303. Последовательность коротких окон ААС 303 прерывается окном останова ААС 304, которое запускает последовательность длинных окон ААС. Как оговорено выше, в данном конструктивном решении второй кодер 120 и декодер 170, соответственно, используют алгоритм ACELP формата AMR-WB+. В AMR-WB+ используются фреймы одинакового размера, последовательность которых 320 показана на фиг.3. На фиг.3 изображена последовательность фреймов предварительного фильтрования различных типов в соответствии с ACELP в AMR-WB+. Перед переключением с ААС на ACELP контроллер 130 или 180 изменяет порядок кадрирования ACELP так, чтобы первый суперфрейм 320 состоял из пяти фреймов вместо четырех. Вследствие этого одновременно становятся доступны как данные АСЕ 314 на декодере, так и декодированные данные ААС. В результате декодер может пренебречь первой частью, поскольку она относится к интервалу вхождения в режим кодирования, соответственно, второго кодера 120, второго декодера 170. В большинстве других вариантов осуществления суперфрейм AMR-WB+ может быть расширен за счет присоединения фреймов также к концу суперфрейма.
Фиг.3 демонстрирует два перехода между режимами: от ААС к AMR-WB+ и от AMR-WB+ к ААС. Здесь в одной системе задействованы типичные окна старта/останова 302 и 304 кодека ААС, а длина фрейма кодека AMR-WB+ увеличена для перекрывания области затухания/нарастания стартстопного окна кодека ААС, то есть выполняется корректировка второго правила кадрирования. Как показано на фиг.3, переходы от ААС к AMR-WB+, то есть коммутация с первого кодера с временным наложением (алиасингом) 110 на второй кодер 120 или с первого декодера временного наложения (алиасинга) 160 на второй декодер 170, соответственно, выполняются путем сохранения порядка кадрирования ААС при расширении временного фрейма в месте перехода для охвата перекрытия. В суперфрейм AMR-WB+ на переходе, то есть в первый суперфрейм 320 на фиг.3, входят пять фреймов вместо четырех, при этом пятый фрейм охватывает перекрытие. Несмотря на то, что это вносит избыток протокольных данных (оверхед), такое техническое решение обеспечивает преимущество плавного перехода между режимами ААС и AMR-WB+.
Как уже упоминалось выше, контроллер 130 может быть настроен на коммутацию между двумя областями кодирования на базе характеристики аудиоотсчетов, когда могут быть заданы различные виды анализа или различные показатели. В частности, контроллер 130 может переключить режим кодирования, основываясь на стационарности или нестационарности фрагмента сигнала. Переход от одного режима к другому может быть также задан по тому, насколько аудиоотсчеты больше соответствуют вокализованному или невокализованному сигналу. Для подробного рассмотрения способа определения характеристик отсчетов аудиосигнала ниже представлен вариант технического решения контроллера 130, в котором коммутация задана по распознаванию сходства сигнала с речью.
Для иллюстрации можно обратиться к фиг.4А и 4В, 5А и 5В, соответственно. Для примера взяты псевдопериодические импульсоподобные сегменты или фрагменты сигнала и шумоподобные сегменты или фрагменты сигнала. В разных случаях контроллеры 130, 180 реализуются с возможностью принятия решения по различным критериям, например, стационарности, кратковременности, белизны спектра и т.д. Пример одного из таких критериев приведен в контексте варианта реализации. Так, на фиг.4А графически отображена вокализованная речь во временной области, а на фиг.4В - в частотной области, и рассмотрена в качестве примера квазипериодической составляющей импульсоподобного сигнала, в то время как на фиг.5А и 5В представлен графически и рассмотрен сегмент невокализованной речи как пример фрагмента шумоподобного сигнала.
Вообще речь может быть классифицирована на озвученную (вокализованную), неозвученную (невокализованную) и смешанную. Вокализованная речь квазипериодична во временной области и гармонически структурирована в частотной области, в то время как невокализованная речь является неупорядоченной и широкополосной. Кроме того, энергия вокализованных сегментов, как правило, выше энергии невокализованных сегментов. Краткосрочный спектр вокализованной речи отличается тонкой, формантной структурой. Тонкая гармоническая структура является следствием квазипериодичности речи и может быть объяснена вибрацией голосовых связок. Формантная структура, называемая также огибающей спектра, обусловлена взаимодействием источника звука и органов речеобразования. Речевой тракт составляют глотка и полость рта. Форма огибающей спектра, которая «совпадает» с кратковременным спектром вокализованной речи, непосредственно связана с характеристиками функций передачи речевого тракта и наклона спектра (6 дБ/октаву) вследствие глоттального импульса.
Огибающую спектра образует совокупность пиков, называемых формантами. Форманты представляют собой резонансные колебания органов речевого тракта. Усредненный речевой тракт вырабатывает 3-5 формант ниже 5 кГц. Амплитуды и локализация первых трех формант, которые обычно не превышают 3 кГц, имеют существенное значение, как для синтеза речи, так и для восприятия. Более высокие форманты также важны для передачи широкополосных сигналов и неозвученной речи. Свойства речи связаны с физическими процессами, протекающими в системе речеобразования следующим образом. Голосовые связки, вибрируя, создают псевдопериодические воздушные импульсы в голосовой щели, которые возбуждают речевой тракт, благодаря чему звучит речь. Частота периодических импульсов играет роль основной частоты, называемой основным тоном. Форсированное прохождение воздуха через сужения органов речевого тракта вызывает неозвученную речь. Назальные звуки возникают в силу акустического взаимодействия носового и речевого трактов, а взрывные согласные звуки извлекаются резким сокращением давления воздуха, которое было накоплено позади препятствия в тракте.
Таким образом, шумоподобный фрагмент аудиосигнала может быть стационарной составляющей во временной области, как показано на фиг.5А, или стационарной составляющей в частотной области, отличаясь при этом от квазипериодической импульсообразной составляющей, отображенной, например, на фиг.4А, поскольку стационарная составляющая во временной области не проявляется в виде устойчивых импульсов. Однако, как поясняется ниже, между шумоподобными и псевдопериодическими импульсоподобными составляющими необходима дальнейшая дифференциация после выполнения LPC-кодирования с целью распознавания сигнала возбуждения. Кодирование с линейным предсказанием LPC представляет собой метод моделирования речевого тракта и процессов возбуждения органов речеобразования. В частотной области импульсная составляющая аудиосигнала имеет выраженные индивидуальные форманты, то есть пики, что видно на фиг.4В, в то время как стационарная составляющая имеет довольно широкий спектр, как показано на фиг.5В, или, если рассматривать гармонические сигналы, достаточно продолжительный минимальный уровень шума с некоторым количеством пиков, отражающих отдельные тоны, которые могут встречаться, к примеру, в музыкальном сигнале, не имея при этом таких равных интервалов между собой, как в сигнале импульсного типа на фиг.4В.
Более того, в сигнале квазипериодические импульсообразные составляющие и шумоподобные составляющие могут чередоваться во времени, когда в один момент времени сегмент аудиосигнала является шумовым, а в другой момент времени другой сегмент этого аудиосигнала является квазипериодическим, то есть тональным. И наоборот, или вместе с тем, характеристика сигнала может быть различной в разных полосах частот. Отсюда следует, что распознавание шумового или тонального аудиосигнала может выполняться на частотно-селективной основе, когда определенная полоса частот или ряд определенных полос частот будут рассматриваться как шумонесущие, в то время как другие полосы частот будут считаться тональными. В таком случае некоторый сегмент аудиосигнала во времени может одновременно включать в себя тональные и шумовые компоненты.
w
Далее, в контексте фиг.6 будет рассмотрен кодер, анализирующий через синтез, на основе линейного предсказания с кодовым возбуждением CELP. Подробные данные о кодере CELP можно найти в: «Speech Coding: A tutorial review», Andreas Spanias, Proceedings of IEEE, Vol.84, No. 10, October 1994, pages 1541-1582 [«Кодирование речи: обзор программы обучения», Андреас Спаниас, Научные труды ИИЭЭ, Изд. 82, №10, октябрь 1994, с.1541-1582]. Кодер CELP, как показано на фиг.6, включает в себя долгосрочный предиктор 60 и краткосрочный предиктор 62. В дополнение к этому используется кодовый словарь 64. Кроме того, в схему включены перцептуальный взвешивающий фильтр W(z) 66 и контроллер минимизации ошибок 68, s(n) - входной аудиосигнал во временной области. После перцептуального взвешивания сигнал вводится в вычитатель 69, который вычисляет ошибку между синтезированным сигналом на выходе блока 66 и фактическим взвешенным сигналом s(n).
L
Обычно краткосрочное предсказание A(z) вычисляется на стадии анализа LPC, что будет рассмотрено ниже. На основании этой информации долгосрочное предсказание A(z) содержит значение выигрыша от долгосрочного предсказания b и величину задержки Т (также известные как выигрыш по частоте основного тона и задержка основного тона). Затем, с помощью алгоритма CELP кодируется разностный сигнал, полученный после краткосрочного и долгосрочного предсказаний, с использованием кодового словаря, допустим, гауссовых последовательностей. Алгоритм линейного предсказания с управлением алгебраическим кодом ACELP, где буква «А» означает «алгебраический», содержит специальный алгебраически структурированный кодовый словарь.
Этот кодовый словарь может содержать большее или меньшее количество векторов, из которых каждый вектор имеет длину, соответствующую некоторому числу отсчетов. Коэффициент усиления g масштабирует кодовый вектор, и полученные кодированные отсчеты фильтруются синтезирующим фильтром долгосрочного предсказания и синтезирующим фильтром краткосрочного предсказания. «Оптимальный» кодовый вектор выбирается из расчета минимизации перцептуально взвешенной среднеквадратической ошибки. Процедура поиска в рамках алгоритма линейного предсказания с кодовым управлением CELP очевидна из схемы на фиг.6. Следует учитывать, что фиг.6 представляет собой лишь иллюстрацию схемы анализа через синтез CELP, и конструктивные решения не должны ограничиваться структурой, приведенной как пример на фиг.6.
При выполнении CELP долгосрочный предиктор часто осуществляется как адаптивный кодовый словарь, содержащий в себе предыдущий сигнал возбуждения. Задержка долгосрочного предсказания и выигрыш от него представлены в адаптивном кодовом словаре индексом и коэффициентом усиления, которые также селектируются путем минимизации среднеквадратической взвешенной ошибки. В этом случае возбуждающий сигнал состоит из сложения двух векторов, масштабированных коэффициентом усиления, один из которых взят из адаптивного кодового словаря, а другой - из постоянной кодовой таблицы. Перцептуальный взвешивающий фильтр кодека AMR-WB+ базируется на фильтре LPC, следовательно, перцептуально взвешенный сигнал является разновидностью сигнала области LPC. Кодер трансформанты, используемый в AMR-WB+, преобразует уже взвешенный сигнал. Сигнал возбуждения в декодере может быть получен фильтрацией декодированного взвешенного сигнала комбинированным фильтром, состоящим из обратного синтезирующего и взвешивающего фильтров.
Аналитическая фаза предиктивного кодирования будет рассмотрена далее в контексте варианта реализации на фиг.7 с использованием LPC-анализа и LPC-синтеза в контроллерах 130, 180 соответственно.
На фиг.7 дана укрупненная схема конструкции блока LPC-анализа. Звуковой сигнал поступает в блок подбора фильтра, где анализируются параметры фильтра A(z), то есть рассчитываются коэффициенты фильтра синтеза. Эта информация квантуется и выводится в виде краткосрочных предикторов, предназначенных для декодера. В вычитатель 786 вводится текущий отсчет сигнала, из него вычитается предсказанное значение текущего отсчета, и генерируется сигнал ошибки предсказания 784 для этого отсчета. Сигнал ошибки предсказания называют также сигналом возбуждения или фреймом возбуждения (обычно в кодированном виде).
Фиг.8А отображает еще одну последовательность окон во времени, построенную с помощью одного из вариантов исполнения. В данной компоновке кодек AMR-WB+ соответствует второму кодеру 120, а кодек ААС соответствует первому кодеру с временным наложением (алиасингом) 110. При таком варианте решения сохраняется порядок разбивки на фреймы кодека AMR-WB+, то есть второе правило кадрирования остается без изменения, однако на переходе от кодека AMR-WB+ к кодеку ААС модифицируется оконная функция с манипулированием стартстопными окнами кодека ААС. Другими словами, оконное взвешивание кодеком ААС при переходе будет более продолжительным.
Фигуры 8А и 8В иллюстрируют такой подход. На обеих фигурах показана последовательность типовых окон ААС 801, при этом на фиг.8А введено новое модифицированное стоповое окно 802, а на фиг.8В, новое стопстартное окно 803. В случае применения линейного предсказания с управлением алгебраическим кодом ACELP используют аналогичный метод кадрирования, как уже обсуждалось в контексте осуществления на фиг.3. Предполагается, что в версии исполнения, формирующей в результате оконную последовательность как на фиг.8А и 8В, стандартное деление на фреймы кодека ААС не сохраняется, то есть задействуются модифицированные стартовые, стоповые или стартстопные окна. Первое окно на фиг.8А служит для перехода от AMR-WB+ к ААС, где кодек ААС использует длинное окно останова 802. Другое окно будет описано с помощью фиг.8В, где показан переход от AMR-WB+ к ААС, при котором кодек ААС будет использовать короткое окно, задействуя длинное окно ААС для этого перехода так, как показано на фиг.8В. На фиг.8А видно, что первый суперфрейм 820 ACELP состоит из четырех фреймов, то есть соответствует стандартному порядку деления на фреймы ACELP, то есть - второму правилу кадрирования. Для сохранения правило кадрирования ACELP, то есть для применения второго правила кадрирования без корректировки, применяют модифицированные окна 802 и 803, как показано на фиг.8А и 8В.
В связи с вышесказанным дальше подробнее рассмотрим применение оконного взвешивания вообще.
На фиг.9 в общем виде отображено прямоугольное окно, содержащее массив последовательных данных в таком порядке, при котором в первом, нулевом, сегменте отсчеты сигнала замаскированы (выведены за порог слышимости) оконной функцией, во втором, байпасном (полосовом), сегменте отсчеты входного фрейма временной области или фрейма с перекрытием во временной области могут быть пропущены без изменений и в третьем, нулевом, сегменте концевые отсчеты фрейма снова маскируются. Иными словами, к сигналу могут быть приложены оконные функции, которые подавляют ряд отсчетов фрейма в первой, нулевой, части, пропускают отсчеты во второй, байпасной (полосовой), части и затем подавляют ряд отсчетов в конце фрейма в третьей, нулевой, части. В данном контексте подавление может также означать добавление ряда нолей к началу и/или к концу байпасной области окна. Вторая, байпасная, часть может быть такой, при которой оконная функция просто имеет значение 1, то есть отсчеты проходят без изменения, что значит, что оконная функция пропускает все отсчеты фрейма подряд.
На фиг.10 показана другая последовательность оконного взвешивания, или другой вид оконной функции, где друг за другом следуют сегмент нарастающего фронта между первой, нулевой, и второй, байпасной, частями и сегмент среза между второй, байпасной, и третьей, нулевой, частями. Фронт функции можно также рассматривать как участок нарастания, а срез - как участок затухания. На практике вторая, байпасная, часть может состоять из последовательности единиц, чтобы вообще не вносить изменения в отсчеты фрейма возбуждения.
На фиг.11 детализировано модифицированное окно останова на переходе между AMR-WB+и ААС, первоначально представленное на фиг.8А. На фиг.11 показаны фреймы ACELP 1101, 1102, 1103 и 1104. После них для перехода к ААС, то есть при коммутации на первый кодер с временным наложением (алиасингом) 110, декодер 160, соответственно, использовано модифицированное стоповое окно 802. В соответствии с данным выше описанием МДКП окно начинается уже в середине фрейма 1102, имея первый нулевой сегмент в 512 отсчетов. За этим сегментом следует фронт оконной функции, занимающий 128 отсчетов, сменяемый вторым, байпасным, сегментом, который в данном случае проходит через 576 отсчетов, то есть 512 отсчетов после сегмента фронта, на который свертывается первый нулевой сегмент, и за которым следуют еще 64 отсчета второго, байпасного, сегмента, возникающих из третьего, нулевого, сегмента в конце оконной функции, занимающего 64 отсчета. Срез оконной функции в результате занимает 1024 отсчета, которые должны быть перекрыты следующим окном.
Подобная реализация может быть также описана с использованием псевдокода, например:
/*Block Switching based on attacks*/
/*Коммутация блоков по атакам*/
If (there is an attack) {
Если (есть атака) {
Next window Sequence=SHORT_WINDOW;
следующая оконная Последовательность = КОРОТКОЕ_ОКНО;
}
}
else {
еще {
Next window Sequence=LONG_WINDOW;
Следующая оконная Последовательность = ДЛИННОЕ_ОКНО;
}
}
/*Block Switching based on ACELP Switching Decision*/
/* Коммутация блоков по решению ACELP на переключение*/
if (next frame is AMR) {
если (следующий фрейм - AMR) {
Next window Sequence=SHORT_WINDOW;
Следующая оконная Последовательность = КОРОТКОЕ_ОКНО;
}
}
/*Block Switching based on ACELP Switching Decision for Stop_WINDOW_1152*/
/*Коммутация блоков по решению ACELP на переключение для ОКНА_СТОП_1152*/
if (actual frame is AMR && next frame is not AMR) {
если (текущий фрейм - AMR, && следующий фрейм - не AMR) {
Next window Sequence=Stop_WINDOW_1152;
Следующая оконная Последовательность = ОКНО_СТОП_1152;
}
}
/*Block Switching for StopSTART_WINDOW_1152*/
/*Коммутации блоков для СТОПСТАРТОВОГО_ОКНА_1152*/
If (next window Sequence=SHORT_WINDOW) {
Если (следующая оконная Последовательность = КОРОТКОЕ_ОКНО) {
if (window Sequence=Stop_WINDOW_1152) {
если (оконная Последовательность = ОКНО_СТОП_1152) {
Window Sequence=StopSTART_WINDOW_1152;
Оконная Последовательность = СТОПСТАРТОВОЕ_ОКНО_1152;
}
}
}
}
Возвратившись к варианту реализации на фиг.11, в нем можно увидеть свертываемый участок временного наложения (алиасинга) внутри сегмента фронта окна длиной 128 отсчетов. Поскольку этот участок обоюдно перекрывается с последним фреймом ACELP 1104, выходная версия фрейма ACELP 1104 может быть использована для нейтрализации временного наложения (алиасинга) на участке нарастающего фронта. Удаление алиасинга может выполняться как во временной, так и в частотной области, как в приведенных выше примерах. Иначе говоря, выход последнего фрейма ACELP может быть преобразован в частотную область, а затем наложен на фронт модифицированного стопового окна 802. И наоборот, TDA (алиасинг во временной области) или TDAC (удаление алиасинга во временной области) могут быть применены к последнему фрейму ACELP перед перекрытием его фронтом модифицированного стопового окна 802.
Вышеописанный вариант исполнения снижает избыточность протокольных данных (оверхед), образующуюся на участках переходов. Наряду с этим устраняется необходимость какой-либо корректировки разбивки на фреймы при кодировании во временной области, то есть - второго правила кадрирования. К тому же такая версия реализации обеспечивает согласование с кодером частотной области, то есть с кодером с временным наложением 110 (ААС), который, как правило, более гибок при распределении битов и коэффициентов для передачи, чем кодер временной области, то есть второй кодер 120.
Далее рассматривается другая версия осуществления, которая предусматривает переход наплывом без алиасинга с коммутированием между первым кодером с временным наложением (алиасингом) 110 и вторым кодером 120, декодерами 160 и 170, соответственно. Преимуществом такого подхода является предотвращение шумов благодаря использованию TDAC, особенно на низких битрейтах при пуске или перезапуске. Такое преимущество достигается за счет наличия модифицированного стартового окна ААС без какого-либо наложения по шкале времени в правой части, то есть на участке спада окна. Модифицированное стартовое окно представляет собой несимметричную оконную функцию, у которой правая часть, или часть нисходящего среза окна, кончается перед точкой свертывания МДКП. Следовательно, окно свободно от временного наложения (алиасинга). В то же время технически выполнимо сокращение области перекрытия до 64 отсчетов вместо 128 отсчетов.
При аппаратном воплощении аудиокодер 100 или аудиодекодер 150 требуют определенное время для вхождения в долговременный и стабильный рабочий режим. Говоря иначе, для запуска кодера временной области, то есть второго кодера 120, а также декодера 170, необходимо время, достаточное для инициации, скажем, коэффициентов LPC. Для сглаживания искажения при рабочем перезапуске левая часть входного сигнала AMR-WB+ может быть взвешена в кодере 120 коротким синусным окном длиной, например, в 64 отсчета. Вдобавок, левая часть синтезируемого сигнала может быть взвешена с помощью того же сигнала во втором декодере 170. Таким же образом квадратично-синусное окно может быть приложено к ААС, когда квадрат синуса применяется к правой части стартового окна.
Благодаря применению такого оконного взвешивания практический переход от ААС к AMR-WB+ может быть выполнен без временного наложения (алиасинга) с использованием короткого синусного окна плавного перехода длиной, например, 64 отсчета. На фиг.12 дана схема перехода от ААС к AMR-WB+ и обратно к ААС в масштабе времени. На фиг.12 за стартовым окном ААС 1201 следует область AMR-WB+1203, перекрывающая окно 1201 на участке наложения 1202 длиной 64 отсчета. За областью AMR-WB+ с наложением в 128 отсчетов следует стоповое окно ААС 1205.
На фиг.12 представлено осуществление перехода от ААС к AMR-WB+ с помощью соответствующего окна без наложения (алиасинга).
На фиг.13 схематически изображено модифицированное стартовое окно для перехода от ААС к AMR-WB+, используемое как на стороне кодера 100, так и на стороне декодера 150, то есть в кодере 110 и декодере 160, соответственно.
Окно на фиг.13 не имеет первый нулевой сегмент. Оконная функция сразу начинается нарастающим фронтом, длящимся 1024 отсчета, то есть ось свертывания проходит по центру интервала из 1024 отсчетов, как показано на фиг.13. Затем ось симметрии находится справа от интервала в 1024 отсчета. Как видно на фиг.13, третий, нулевой, сегмент занимает 512 отсчетов, то есть справа от окна в целом наложение (алиасинг) отсутствует, следовательно, область байпаса занимает пространство от центра до начала интервала из 64 отсчетов. Также видно, что сегмент спада длится 64 отсчета, обеспечивая преимущество короткого перехода. 64-отсчетный интервал используется для перехода наплывом, при том что на этом участке отсутствует алиасинг. Это дает низкий уровень вносимого оверхеда.
Технические решения с использованием вышеописанных модифицированных окон позволяют избегать кодирования избыточной информации, то есть повторного кодирования некоторых отсчетов. Окна, сконфигурированные в соответствии с приведенным выше описанием, могут быть применены для перехода от AMR-WB+ к ААС в соответствии с подходом, где окно ААС вновь модифицируется с сокращением перекрытия до 64 отсчетов.
За счет этого модифицированное стоповое окно увеличивается до 2304 отсчетов и используется в МДКП с 1152 точками. Левая часть окна может быть сформирована без временного наложения (алиасинга), если наплыв будет начинаться сразу после оси свертывания МДКП. Говоря иначе, если сделать первый, нулевой, сегмент больше четверти всего формата МДКП. Затем к последним 64 декодированным отсчетам сегмента AMR-WB+ применяют дополнительное квадратурное синусное окно. Эти два окна плавного перехода дают возможность получить наплыв от AMR-WB+ к ААС с ограничением объема передачи избыточной информации (оверхеда).
На фиг.14 схематически отображено окно перехода от AMR-WB+ к ААС при реализации кодера 100. На схеме видно, что ось свертывания проходит после 576 отсчетов, то есть первая нулевая часть охватывает 576 отсчетов. Вследствие этого левая сторона окна целиком свободна от наложения (алиасинга). Наплыв начинается во второй четверти окна, то есть после 576 отсчетов или, другими словами, сразу после оси свертывания. Как видно на фиг.14, участок плавного перехода, то есть фронт оконной функции, может затем быть сужен до 64 отсчетов.
На фиг.15 схематически отображено окно перехода от AMR-WB+ к АСС при реализации декодера 150. Окно аналогично окну на фиг.14 так, что приложение обеих оконных функций в ходе кодирования, а затем декодирования отсчетов дает в результате квадратично-синусное окно.
Приведенный ниже псевдокод описывает процедуру выбора стартового окна при переключении с ААС на AMR-WB+.
Эти реализации могут быть описаны также с помощью, например, следующего псевдокода:
/*Adjust to allowed Window Sequence*/
/*Привести в соответствие с допустимой Оконную Последовательность*/
if(next window Sequence=SHORT_WINDOW) {
если (следующая оконная Последовательность = КОРОТКОЕ_ОКНО) {
if(window Sequence=
если (оконная Последовательность =
LONGWINDOW){
ДЛИННОЕ ОКНО) {
if (actual frame is not AMR && next frame is AMR) {
если (текущий фрейм не AMR && следующий фрейм AMR){
Window Sequence=STARTWINDOWAMR;
Оконная Последовательность = CTAPTOBOE_OKHO_AMR;
}
}
else{
Еще {
Window Sequence=START_WINDOW;
Оконная Последовательность = СТАРТОВОЕ_ОКНО;
}
}
}
}
В рассмотренных выше реализациях генерируемый избыток служебной информации (оверхед) редуцируется за счет использовании малых областей перекрытия в последовательных окнах во время перехода. В дополнение к этому, такие конструктивные решения обеспечивают то преимущество, что небольшие области перекрытия, тем не менее, достаточны для сглаживания артефактов блокирования, то есть - для плавного перехода наплывом. Более того, такой подход снижает динамику пакетных ошибок благодаря запуску кодера временной области, то есть второго кодера 120, декодера 170, соответственно, путем его инициации затухающим входным сигналом.
Обобщая конструктивные решения по настоящему изобретению, можно выделить то их преимущество, что концепция многорежимного кодирования звука допускает сглаживание областей перехода при высокой эффективности кодирования, что значит, что переходные оконные функции вносят лишь незначительный избыток (оверхед) информации для дальнейшей обработки. Кроме того, варианты аппаратного исполнения позволяют применять мультирежимные кодеры с адаптацией правил кадрирования или оконного взвешивания одного режима к другому.
Несмотря на то, что здесь в основном рассматривается оборудование с точки зрения его технического устройства, понятно, что аспекты материальной части тесно связаны с описанием соответствующих способов ее применения, и какое-либо изделие или блок соответствуют особенностям метода или технологической операции. Аналогично, рассматриваемые технологии и рабочие операции непосредственно связаны с соответствующим машинным оборудованием и его элементной базой.
Относящийся к изобретению кодированный аудиосигнал может быть сохранен в цифровой запоминающей среде или может быть транслирован в среде передачи информации, такой как беспроводная передающая среда или проводная передающая среда, например, Интернет.
В зависимости от конечного назначения и особенностей практического применения изобретение может быть реализовано в аппаратных или программных средствах. При техническом исполнении могут быть использованы цифровые носители и накопители данных, такие, в частности, как гибкий диск, DVD, CD, ROM, ППЗУ, программируемое ПЗУ, СППЗУ или флэш-память, способные хранить электронно считываемые сигналы управления и взаимодействовать с программируемой компьютерной средой таким образом, чтобы мог быть осуществлен соответствующий способ.
Некоторые варианты конструкции согласно данному изобретению имеют в своем составе носитель информации, содержащий электронно считываемые сигналы управления, совместимый с программируемой компьютерной системой и способный участвовать в реализации одного из описанных здесь способов.
В целом данное изобретение может быть реализовано как компьютерный программный продукт с кодом программы, обеспечивающим осуществление одного из предлагаемых способов при условии, что компьютерный программный продукт используется с применением компьютера. Код программы может, например, храниться на машиночитаемом носителе.
Различные варианты реализации включают в себя компьютерную программу, хранящуюся на машиночитаемом носителе, для осуществления одного из описанных здесь способов.
Таким образом, формулируя иначе, относящийся к изобретению способ осуществляется с помощью компьютерной программы, имеющей код программы, обеспечивающий реализацию одного из описанных здесь способов, если компьютерную программу выполняют с использованием компьютера.
Далее, следовательно, техническое исполнение изобретенного способа включает в себя носитель данных (либо цифровой накопитель информации, либо читаемую компьютером среду), содержащий записанную на нем компьютерную программу, предназначенную для осуществления одного из способов, описанных здесь.
Отсюда следует, что реализация изобретения подразумевает наличие потока данных или последовательности сигналов, представляющих компьютерную программу для осуществления одного из описанных здесь способов. Поток данных или последовательность сигналов могут быть рассчитаны на передачу через средства связи, например, Интернет.
Кроме того, реализация включает в себя аппаратные средства, например, компьютер или программируемое логическое устройство, предназначенные или приспособленные для осуществления одного из описанных здесь способов.
Далее, для технического исполнения требуется компьютер с установленной на нем компьютерной программой для осуществления одного из описанных здесь способов.
Некоторые версии конструкции для реализации одной или всех функциональных возможностей описанных здесь способов могут потребовать применения программируемого логического устройства (например, полевой программируемой матрицы логических элементов). В зависимости от назначения версии базовый матричный кристалл может сочетаться с микропроцессором с целью осуществления одного из описанных здесь способов. Как правило, описываемые способы могут быть реализованы с использованием любого аппаратного средства.
Описанные выше конструктивные решения являются только иллюстрациями основных принципов настоящего изобретения. Подразумевается, что для специалистов в данной области возможность внесения изменений и усовершенствований в компоновку и элементы описанной конструкции очевидна. В силу этого, представленные здесь описания и пояснения вариантов реализации изобретения ограничиваются только рамками патентных требований, а не конкретными деталями.