Способ и устройство для кодирования и декодирования аудиосигналов
Иллюстрации
Показать всеИзобретение относится к связи, а более конкретно, к методикам для кодирования и декодирования. Описан обобщенный кодер, который кодирует входной сигнал (например, аудиосигнал) на основе, по меньшей мере, одного детектора и нескольких кодеров. По меньшей мере, один детектор может включать в себя детектор активности сигналов, детектор шумоподобных сигналов, детектор разреженности, какой-либо другой детектор или их комбинацию. Несколько кодеров могут включать в себя кодер молчания, кодер шумоподобных сигналов, кодер временной области, кодер области преобразования, какой-либо другой кодер или их комбинацию. Характеристики входного сигнала могут быть определены на основе, по меньшей мере, одного детектора. Кодер может быть выбран из числа нескольких кодеров на основе характеристик входного сигнала. Входной сигнал может быть кодирован на основе выбранного кодера. Входной сигнал может включать в себя последовательность кадров, и обнаружение и кодирование могут выполняться для каждого кадра. Технический результат - обеспечение эффективного кодирования входного сигнала. 10 н. и 33 з.п. ф-лы, 14 ил.
Реферат
Настоящая заявка притязает на приоритет предварительной заявки на патент (США) порядковый номер 60/828816, озаглавленной "A FRAMEWORK FOR ENCODING GENERALIZED AUDIO SIGNALS", поданной 10 октября 2006 года, и заявки на патент (США) порядковый номер 60/942984, озаглавленной "METHOD AND APPARATUS FOR ENCODING AND DECODING AUDIO SIGNALS", поданной 8 июня 2007 года, обе из которых назначены правопреемнику этой заявки и содержатся в данном документе по ссылке.
Уровень техники
Область техники, к которой относится изобретение
Настоящее раскрытие, в общем, относится к связи, а более конкретно, к методикам для кодирования и декодирования аудиосигналов.
Уровень техники
Аудиокодеры и декодеры широко используются для различных применений, таких как беспроводная связь, "речь-по-Интернет-протоколу" (VoIP), мультимедиа, цифровое аудио и т.д. Аудиокодер принимает аудиосигнал на входной скорости передачи битов, кодирует аудиосигнал на основе схемы кодирования и формирует кодированный сигнал на выходной скорости передачи битов, которая типично является более низкой (и иногда намного более низкой), чем входная скорость передачи битов. Это дает возможность отправлять или сохранять кодированный сигнал с использованием меньшего числа ресурсов.
Аудиокодер может быть разработан на основе определенных предполагаемых характеристик аудиосигнала и может применять эти характеристики сигнала, чтобы использовать меньшее число битов как возможно, чтобы представлять информацию в аудиосигнале. Эффективность аудиокодера может затем зависеть от того, как близко фактический аудиосигнал соответствует предполагаемым характеристикам, для которых разработан аудиокодер. Производительность аудиокодера может быть относительно плохой, если аудиосигнал имеет отличные характеристики от тех, для которых разработан аудиокодер.
Сущность изобретения
Методики для эффективного кодирования входного сигнала и декодирования кодированного сигнала описываются в данном документе. В одной схеме обобщенный кодер может кодировать входной сигнал (к примеру, аудиосигнал) на основе, по меньшей мере, одного детектора и нескольких кодеров. По меньшей мере, один детектор может содержать детектор активности сигналов, детектор шумоподобных сигналов, детектор разреженности, какой-либо другой детектор или их комбинацию. Несколько кодеров могут содержать кодер молчания, кодер шумоподобных сигналов, кодер временной области, по меньшей мере, один кодер области преобразования, какой-либо другой кодер или их комбинацию. Характеристики входного сигнала могут быть определены на основе, по меньшей мере, одного детектора. Кодер может быть выбран из числа нескольких кодеров на основе характеристик входного сигнала. Входной сигнал затем может быть кодирован на основе выбранного кодера. Входной сигнал может содержать последовательность кадров. Для каждого кадра, могут быть определены характеристики сигнала кадра, кодер может быть выбран для кадра на основе его характеристик и кадр может быть кодирован на основе выбранного кодера.
В другой схеме обобщенный кодер может кодировать входной сигнал на основе детектора разреженности и нескольких кодеров для нескольких областей. Разреженность входного сигнала в каждой из нескольких областей может быть определена. Кодер может быть выбран из числа нескольких кодеров на основе разреженности входного сигнала в нескольких областях. Входной сигнал затем может быть кодирован на основе выбранного кодера. Несколько областей могут включать в себя временную область и область преобразования. Кодер временной области может быть выбран, чтобы кодировать входной сигнал во временной области, если входной сигнал считается более разреженным во временной области, чем области преобразования. Кодер области преобразования может быть выбран, чтобы кодировать входной сигнал в области преобразования (к примеру, частотной области), если входной сигнал считается более разреженным в области преобразования, чем временной области.
В еще одной схеме детектор разреженности может выполнять обнаружение разреженности преобразованием первого сигнала в первой области (к примеру, временную область), чтобы получить второй сигнал во второй области (к примеру, области преобразования). Первый и второй параметры могут быть определены на основе энергии значений/компонентов в первом и втором сигналах. По меньшей мере, один подсчет также может быть определен на основе предшествующих объявлений первого сигнала более разреженным и предшествующих объявлений второго сигнала более разреженным. Является ли первый сигнал или второй сигнал более разреженным, может быть определено на основе первого и второго параметров и, по меньшей мере, одного подсчета, если он используется.
Далее более подробно описаны различные аспекты и признаки изобретения.
Краткое описание чертежей
Фиг.1 показывает блок-схему обобщенного аудиокодера.
Фиг.2 показывает блок-схему детектора разреженности.
Фиг.3 показывает блок-схему другого детектора разреженности.
Фиг.4A и 4B показывают графики речевого сигнала и инструментального музыкального сигнала во временной области и области преобразования.
Фиг.5A и 5B показывают графики для коэффициентов уплотнения временной области и области преобразования для речевого сигнала и инструментального музыкального сигнала.
Фиг.6A и 6B показывают процесс для выбора или кодера временной области, или кодера области преобразования для аудиокадра.
Фиг.7 показывает процесс для кодирования входного сигнала с обобщенным кодером.
Фиг.8 показывает процесс для кодирования входного сигнала с кодерами для нескольких областей.
Фиг.9 показывает процесс для выполнения обнаружения разреженности.
Фиг.10 показывает блок-схему обобщенного аудиодекодера.
Фиг.11 показывает блок-схему устройства беспроводной связи.
Подробное описание изобретения
Различные типы аудиокодеров могут использоваться, чтобы кодировать аудиосигналы. Некоторые аудиокодеры могут допускать кодирование различных классов аудиосигналов, таких как речь, музыка, тоны и т.д. Эти аудиокодеры могут упоминаться как универсальные аудиокодеры. Некоторые другие аудиокодеры могут быть предназначены для конкретных классов аудиосигналов, таких как речь, музыка, фоновый шум и т.д. Эти аудиокодеры могут упоминаться как конкретные для класса сигналов аудиокодеры, специализированные аудиокодеры и т.д. В общем, конкретный для класса сигналов аудиокодер, который предназначен для конкретного класса аудиосигналов, может быть способен более эффективно кодировать аудиосигнал в своем классе, чем универсальный аудиокодер. Конкретные для класса сигналов аудиокодеры могут быть способны достигать улучшенного кодирования источников аудиосигналов конкретных классов на скоростях передачи битов, равных минимум 8 килобитов в секунду (Кбит/с).
Обобщенный аудиокодер может использовать набор конкретных для класса сигналов аудиокодеров для того, чтобы эффективно кодировать обобщенные аудиосигналы. Обобщенные аудиосигналы могут принадлежать различным классам и/или могут динамически изменять класс с течением времени. Например, аудиосигнал может содержать главным образом музыку в некоторых интервалах времени, главным образом речь в некоторых других интервалах времени, главным образом шум в еще некоторых других интервалах времени и т.д. Обобщенный аудиокодер может быть способен эффективно кодировать этот аудиосигнал с различными надлежащим образом выбранными конкретными для класса сигналов аудиокодерами в различных интервалах времени. Обобщенный аудиокодер может быть способен достигать хорошей производительности кодирования для аудиосигналов различных классов и/или динамически изменяющихся классов.
Фиг.1 показывает блок-схему схемы обобщенного аудиокодера 100, который допускает кодирование аудиосигнала с различными и/или изменяющимися характеристиками. Аудиокодер 100 включает в себя набор детекторов 110, селектор 120, набор конкретных для класса сигналов аудиокодеров 130 и мультиплексор (Mux) 140. Детекторы 110 и селектор 120 предоставляют механизм, чтобы выбирать соответствующий конкретный для класса аудиокодер на основе характеристик аудиосигнала. Различные конкретные для класса сигналов аудиокодеры также могут упоминаться как различные режимы кодирования.
В рамках аудиокодера 100, детектор 112 активности сигналов может обнаруживать активность в аудиосигнале. Если активность сигнала не обнаружена, как определено на этапе 122, то аудиосигнал может быть кодирован на основе кодера 132 молчания, который может быть эффективным при кодировании главным образом шума.
Если активность сигнала обнаружена, то детектор 114 может обнаруживать периодические и/или шумоподобные характеристики аудиосигнала. Аудиосигнал может иметь шумоподобные характеристики, если он не является периодическим, не имеет прогнозируемой структуры или шаблона, не имеет фундаментального периода (основного тона) и т.д. Например, звук буквы "s" может рассматриваться как имеющий шумоподобные характеристики. Если аудиосигнал имеет шумоподобные характеристики, как определено на этапе 124, то аудиосигнал может быть кодирован на основе кодера 134 шумоподобных сигналов. Кодер 134 может реализовать методику линейного предсказания с шумовым возбуждением (NELP) и/или какую-либо другую методику кодирования, которая может эффективно кодировать сигнал, имеющий шумоподобные характеристики.
Если аудиосигнал не имеет шумоподобных характеристик, то детектор 116 разреженности может анализировать аудиосигнал, чтобы определять, демонстрирует ли сигнал разреженность во временной области или в одной или более областей преобразования. Аудиосигнал может быть преобразован из временной области в другую область (к примеру, частотную область) на основе преобразования, и область преобразования упоминается как область, в которую преобразовывается аудиосигнал. Аудиосигнал может быть преобразован в различные области преобразования на основе различных типов преобразования. Разреженность упоминается как возможность представлять информацию с малым числом битов. Аудиосигнал может рассматриваться как разреженный в данной области, если только малое число значений или компонентов для сигнала в этой области содержат большую часть энергии или информации сигнала.
Если аудиосигнал разряжен во временной области, как определено на этапе 126, то аудиосигнал может быть кодирован на основе кодера 136 временной области. Кодер 136 может реализовать методику линейного предсказания с шумовым возбуждением (NELP) и/или какую-либо другую методику кодирования, которая может эффективно кодировать сигнал, разряженный во временной области. Кодер 136 может определять и кодировать остатки долгосрочных и краткосрочных предсказаний аудиосигнала. Иначе, если аудиосигнал разрежен в одной из областей преобразования, и/или эффективность кодирования лучше в одной из областей преобразования, чем временной области и других областей преобразования, то аудиосигнал может быть кодирован на основе кодера 138 области преобразования. Кодер области преобразования - это кодер, который кодирует сигнал, представление которого в области преобразования разрежено, в области преобразования. Кодер 138 может реализовать модифицированное дискретное косинусное преобразование (MDCT), набор гребенок фильтров, синусоидальное моделирование и/или какую-либо другую методику кодирования, которая может эффективно представлять разреженные коэффициенты преобразования сигнала.
Мультиплексор 140 может принимать выводы кодеров 132, 134, 136 и 138 и может предоставлять вывод одного кодера как кодированный сигнал. Различные кодеры 132, 134, 136 и 138 могут быть выбраны в различных интервалах времени на основе характеристик аудиосигнала.
Фиг.1 показывает конкретную схему обобщенного аудиокодера 100. В общем, обобщенный аудиокодер может включать в себя любое число детекторов и любой тип детектора, который может использоваться, чтобы обнаруживать любые характеристики аудиосигнала. Обобщенный аудиокодер также может включать в себя любое число кодеров и любой тип кодера, который может использоваться, чтобы кодировать аудиосигнал. Некоторые примерные детекторы и кодеры приведены выше и известны специалистам в данной области техники. Детекторы и кодеры могут быть расположены по-разному. Фиг.1 показывает один примерный набор детекторов и кодеров в одной примерной компоновке. Обобщенный аудиокодер может включать в себя меньшее, большее число и/или другие кодеры и детекторы, чем показано на Фиг.1.
Аудиосигнал может быть обработан в единицах кадров. Кадр может включать в себя данные, собранные за предварительно определенный интервал времени, к примеру 10 миллисекунд (мс), 20 мс и т.д. Кадр также может включать в себя предварительно определенное число выборок с предварительно определенной частотой дискретизации. Кадр также может упоминаться как пакет, блок данных, единица данных и т.д.
Обобщенный аудиокодер 100 может обрабатывать каждый кадр так, как показано на Фиг.1. Для каждого кадра детектор 112 активности сигналов может определять, содержит ли этот кадр молчание или активность. Если кадр молчания обнаружен, то кодер 132 молчания может кодировать кадр и предоставлять кодированный кадр. Иначе, детектор 114 может определять, содержит ли кадр шумоподобный сигнал, и если да, кодер 134 может кодировать кадр. Иначе, любой кодер 136 или 138 может кодировать кадр на основе обнаружения разреженности в кадре детектором 116. Обобщенный аудиокодер 100 может выбирать соответствующий кодер для каждого кадра, чтобы максимизировать эффективность кодирования (к примеру, достигать хорошего качества восстановления при низких скоростях передачи в битах) при активации бесшовного перехода между различными кодерами.
Хотя описание ниже описывает детекторы разреженности, которые активируют выбор между временной областью и областью преобразования, схема ниже может быть обобщена, чтобы выбирать одну область из числа временной области и любого числа областей преобразования. Аналогично, кодеры в обобщенных аудиокодерах могут включать в себя любое число и любой тип кодеров области преобразования, один из которых может быть выбран, чтобы кодировать сигнал или кадр сигнала.
В схеме, показанной на Фиг.1, детектор 116 разреженности может определять, разрежен ли аудиосигнал во временной области или области преобразования. Результат этого определения может использоваться, чтобы выбирать кодер 136 временной области или кодер 138 области преобразования для аудиосигнала. Поскольку разреженная информация может быть представлена с меньшим числом битов, критерий разреженности может использоваться, чтобы выбирать эффективный кодер для аудиосигнала. Разреженность может быть обнаружена по-разному.
Фиг.2 показывает блок-схему детектора 116a разреженности, который является одной схемой детектора 116 разреженности на Фиг.1. В этой схеме детектор 116a разреженности принимает аудиокадр и определяет, является ли аудиокадр более разреженным во временной области или области преобразования.
В схеме, показанной на Фиг.2, блок 210 может выполнять анализ кодирования с линейным предсказанием (LPC) в окрестности текущего аудиокадра и предоставлять кадр остатков. Окрестность типично включает в себя текущий аудиокадр и дополнительно может включать в себя предшествующие и/или будущие кадры. Например, блок 210 может извлекать предсказанный кадр на основе выборок только в текущем кадре или в текущем кадре и одном или более предшествующих кадров, или в текущем кадре и одном или более будущих кадров, или в текущем кадре, одном или более предшествующих кадров и одном или более будущих кадров и т.д. Предсказанный кадр также может быть извлечен на основе одинакового или различного числа выборок в различных кадрах, к примеру, 160 выборок из текущего кадра, 80 выборок из следующего кадра и т.д. В любом случае блок 210 может вычислять разность между текущим аудиокадром и предсказанным кадром, чтобы получать остаточный кадр, содержащий разности между текущими и предсказанными кадрами. Разности также упоминаются как остатки, ошибки предсказания и т.д.
Текущий аудиокадр может содержать K выборок и может быть обработан блоком 210, чтобы получить остаточный кадр, содержащий K остатков, при этом K может быть любым целочисленным значением. Блок 220 может преобразовать остаточный кадр (к примеру, на основе такого же преобразования, используемого кодером 138 области преобразования на Фиг.1), чтобы получить преобразованный кадр, содержащий K коэффициентов.
Блок 212 может вычислять квадратную величину или энергию каждого остатка в остаточном кадре следующим образом:
уравнение (1)
где - это k-тый комплекснозначный остаток в остаточном кадре, и
|xk | 2 является квадратной величиной или энергией k-того остатка.
Блок 212 может фильтровать остатки и затем вычислять энергию фильтрованных остатков. Блок 212 также может сглаживать и/или повторно дискретизировать значения остаточной энергии. В любом случае блок 212 может предоставлять N значений остаточной энергии во временной области, где N≤K.
Блок 214 может сортировать N значений остаточной энергии в порядке убывания следующим образом:
уравнение (2)
где X 1 - это наибольшее значение |xk | 2, X 2 - это второе по величине значение |xk | 2 и т.д., а X N - это наименьшее значение |xk | 2 из N значений |xk|2 из блока 212.
Блок 216 может суммировать N значений остаточной энергии, чтобы получить полную остаточную энергию. Блок 216 также может накапливать N отсортированных значений остаточной энергии, по одному значению энергии за раз, до тех пор пока накопленная остаточная энергия не превышает предварительно определенный процент полной остаточной энергии, следующим образом:
уравнение (3a)
уравнение (3b)
где E total,X - это полная энергия всех N значений остаточной энергии, η - это предварительно определенный процент, к примеру, η=70 или какому-либо другому значению, а N T - это минимальное число значений остаточной энергии с накопленной энергией, превышающей η процентов полной остаточной энергии.
Блок 222 может вычислять квадратную величину или энергию каждого коэффициента в преобразованном кадре следующим образом:
уравнение (4)
где - это k-тый коэффициент в преобразованном кадре, и
|yk|2 - это квадратная величина или энергия k-того коэффициента.
Блок 222 может оперировать коэффициентами в преобразованном кадре таким же образом, что и блок 212. Например, блок 222 может сглаживать и/или повторно дискретизировать значения энергии коэффициентов. Блок 222 может предоставлять N значений энергии коэффициентов.
Блок 224 может сортировать N значений энергии коэффициентов в порядке убывания, следующим образом:
уравнение (5)
где Y - это -наибольшее значение |yk|2, Y 2 - это второе по значение величине |yk|2 и т.д., а YN - это наименьшее значение |yk|2 из N значений |yk|2 из блока 222.
Блок 226 может суммировать N значений энергии коэффициентов, чтобы получить полную энергию коэффициентов. Блок 226 также может накапливать N отсортированных значений энергии коэффициентов, по одному значению энергии за раз, до тех пор пока накопленная энергия коэффициентов не превышает предварительно определенный процент полной энергии коэффициентов, следующим образом:
уравнение (6a)
уравнение (6b)
где E total,Y - это полная энергия всех N значений энергии коэффициентов, и N M - это минимальное число значений энергии коэффициентов с накопленной энергией, превышающей η процентов полной энергии коэффициентов.
Блоки 218 и 228 могут вычислять коэффициенты уплотнения для временной области и области преобразования, соответственно, следующим образом:
уравнение (7a)
уравнение (7b)
где C T (i) является коэффициентом уплотнения для временной области, а C M (i) является коэффициентом уплотнения для области преобразования.
C T (i) служит признаком совокупной энергии верхних i значений остаточной энергии. C T (i) может рассматриваться как функция накопленной энергии для временной области. C M (i) служит признаком совокупной энергии верхних i значений энергии коэффициентов. C M (i) может рассматриваться как функция накопленной энергии для области преобразования.
Блок 238 может вычислять параметр D(i) дельты на основе коэффициентов уплотнения следующим образом:
D(i)=C M (i)-C T (i) уравнение (8)
Модуль 240 решения может принимать параметры N T и N M из блоков 216 и 226, соответственно, параметр D(i) дельты из блока 238 и, возможно, другую информацию. Модуль 240 решения может выбирать или кодер 136 временной области или кодер 138 области преобразования для текущего кадра на основе N T , N M , D(i) и/или другой информации.
В одной схеме модуль 240 решения может выбирать кодер 136 временной области или кодер 138 области преобразования для текущего кадра следующим образом:
Если N T <(N M -Q 1 ), то выбрать кодер 136 временной области, уравнение (9a)
Если N M<(N T -Q 2 ), то выбрать кодер 138 области преобразования, уравнение (9b)
где Q 1 и Q 2 - это предварительно определенные пороговые значения, к примеру Q 1 ≥0 и Q 2 ≥0.
N T может служить признаком разреженности остаточного кадра во временной области с меньшим значением N T, соответствующее более разреженному остаточному кадру, и наоборот. Аналогично, N M, может служить признаком разреженности преобразованного кадра в области преобразования с меньшим значением N M, соответствующее более разреженному преобразованному кадру, и наоборот. Уравнение (9a) выбирает кодер 136 временной области, если представление временной области остатков более разрежено, а уравнение (9b) выбирает кодер 138 области преобразования, если представление области преобразования остатков более разрежено.
Выбор в наборе уравнений (9), может быть неопределенным для текущего кадра. Это может иметь место, к примеру, если N T =N M , Q 1 ≥0 и/или Q 2 ≥0. В этом случае один или более дополнительных параметров, таких как D(i), могут использоваться, чтобы определять, выбрать ли кодер 136 временной области или кодер 138 области преобразования для текущего кадра. Например, если одного набора уравнений (9) недостаточно, чтобы выбрать кодер, то кодер 138 области преобразования может быть выбран, если D(i) больше нуля, и кодер 136 временной области может быть выбран в противном случае.
Пороговые значения Q 1 и Q 2 могут использоваться, чтобы достигать различных результатов. Например, пороговые значения Q 1 и/или Q 2 могут быть выбраны, чтобы учитывать разности или смещение (если есть) в вычислении N T и N M . Пороговые значения Q 1 и/или Q 2 также могут быть использованы, чтобы (i) предпочесть кодер 136 временной области кодеру 138 области преобразования использованием небольшого значения Q 1 и/или большого значения Q 2, или (ii) предпочесть кодер 138 области преобразования кодеру 136 временной области использованием небольшого значения Q 2 и/или большого значения Q 1. Пороговые значения Q 1 и/или Q 2 также могут использоваться, чтобы достигать гистерезиса в выборе кодера 136 или 138. Например, если кодер 136 временной области выбран для предыдущего кадра, то кодер 138 области преобразования может быть выбран для текущего кадра, если N M меньше чем N T на Q 2 , где Q 2 - это величина гипотезы в переходе от кодера 136 к кодеру 138. Аналогично, если кодер 138 области преобразования выбран для предыдущего кадра, то кодер 136 временной области может быть выбран для текущего кадра, если N T меньше чем N M на Q 1 , где Q 1 - это величина гипотезы в переходе от кодера 138 к кодеру 136. Гипотеза может использоваться, чтобы изменять кодер только, если характеристики сигнала изменились на достаточную величину, где достаточная величина может быть задана соответствующими вариантами значений Q 1 и Q 2.
В другой схеме модуль 240 решения может выбирать кодер 136 временной области или кодер 138 области преобразования для текущего кадра на основе начальных решений для текущих и предшествующих кадров. В каждом кадре модуль 240 решения может принимать начальное решение использовать кодер 136 временной области или кодер 138 области преобразования для данного кадра, к примеру, как описано выше. Модуль 240 решения затем может переключаться с одного кодера на другой кодер на основе правила выбора. Например, модуль 240 решения может переключаться на другой кодер, только если новые кадры Q 3 предпочитают переключение, если Q 4 из Q 5 новых кадров предпочитают переключение и т.д., где Q 3 , Q 4 и Q 5 могут быть надлежащим образом выбранными значениями. Модуль 240 решения может использовать текущий кодер для текущего кадра, если переключение не делается. Эта схема может предоставлять гипотезу времени и не допустить непрерывного переключения между кодерами в последовательных кадрах.
Фиг.3 показывает блок-схему детектора 116b разреженности, который является другой схемой детектора 116 разреженности на Фиг.1. В этой схеме детектор 116b разреженности включает в себя блоки 210, 212, 214, 218, 220, 222, 224 и 228, которые работают так, как описано выше для Фиг.2, чтобы вычислять коэффициент уплотнения C T (i) для временной области и коэффициент уплотнения C M (i) для области преобразования.
Блок 330 может определять число раз, когда C T (i) ≥C M (i), и число раз, когда C M (i)≥C T (i), для всех значений C T (i) и C M (i) вплоть до предварительно определенного значения следующим образом:
уравнение (10a)
уравнение (10b)
где K T - это параметр разреженности временной области,
К М - это параметр разреженности области преобразования, и
τ - это процент полной энергии, учитываемой, чтобы определять K T и К М .
Кардинальное число набора - это число элементов в наборе.
В уравнении (10a) каждый коэффициент C T (i) уплотнения временной области сравнивается с соответствующим коэффициентом C M (i) уплотнения области преобразования, для i = 1, ..., N и C T(i)≤τ. Для всех коэффициентов уплотнения временной области, которые сравниваются, число коэффициентов уплотнения временной области, которые больше чем или равны соответствующим коэффициентам уплотнения области преобразования, предоставляется как K T .
В уравнении (10b) каждый коэффициент C M (i) уплотнения области преобразования сравнивается с соответствующим коэффициентом C T (i) уплотнения временной области, для i = 1, ..., N и C M (i)≤τ. Для всех коэффициентов уплотнения области преобразования, которые сравниваются, число коэффициентов уплотнения области преобразования, которые больше чем или равны соответствующим коэффициентам уплотнения временной области, предоставляется как К М .
Блок 332 может определять параметры ΔT и ΔM следующим образом:
уравнение (11a)
уравнение (11b)
K T служит признаком того, сколько раз C T (i) соответствует или превышает C M (i), а ΔT служит признаком совокупной величины, на которую C T (i) превышает C M (i), когда C T (i)>C M (i). К М служит признаком того, сколько раз C M (i) соответствует или превышает C T (i), и ΔM служит признаком совокупной величины, на которую C M (i) превышает C T (i), когда C M (i)>C T (i).
Модуль 340 решения может принимать параметры KT , K M , Δ T и ΔM от блоков 330 и 332 и может выбирать либо кодер 136 временной области, либо кодер 138 области преобразования для текущего кадра. Модуль 340 решения может сохранять подсчет H T предысторий временной области и подсчет H M предысторий области преобразования. Подсчет H T предысторий временной области может быть увеличен каждый раз, когда кадр считается более разреженным во временной области, и уменьшен каждый раз, когда кадр считается более разреженным в области преобразования. Подсчет H M предысторий области преобразования может быть увеличен каждый раз, когда кадр считается более разреженным в области преобразования, и уменьшен каждый раз, когда кадр считается более разреженным во временной области.
Фиг.4A показывает графики примерного речевого сигнала во временной области и области преобразования, к примеру, области MDCT. В этом примере речевой сигнал имеет относительно немного больших значений во временной области, но много больших значений в области преобразования. Этот речевой сигнал более разрежен во временной области и может быть более эффективно кодирован на основе кодера 136 временной области.
Фиг.4B показывает графики примерного инструментального музыкального сигнала во временной области и области преобразования, к примеру области MDCT. В этом примере инструментальный музыкальный сигнал имеет много больших значений во временной области, но меньше больших значений в области преобразования. Этот инструментальный музыкальный сигнал более разрежен в области преобразования и может быть более эффективно кодирован на основе кодера 138 области преобразования.
Фиг.5A показывает график 510 для коэффициента C T (i) уплотнения временной области и график 512 для коэффициента C M (i) уплотнения области преобразования для речевого сигнала, показанного на Фиг.4A. Графики 510 и 512 указывают, что данный процент полной энергии может быть зафиксирован меньшим числом значений временной области, чем значений области преобразования.
Фиг.5B показывает график 520 для коэффициента C T (i) уплотнения временной области и график 522 для коэффициента C M (i) уплотнения области преобразования для инструментального музыкального сигнала, показанного на Фиг.4B. Графики 520 и 522 указывают, что данный процент полной энергии может быть зафиксирован меньшим числом значений области преобразования, чем значений временной области.
Фиг.6A и 6B показывают блок-схему последовательности операций схемы процесса 600 для выбора или кодера 136 временной области или кодера 138 области преобразования для аудиокадра. Процесс 600 может использоваться для детектора 116b разреженности на Фиг.3. В последующем описании, Z T1 и Z T2 - это пороговые значения, с которыми подсчет H T предысторий временной области сравнивается, а Z M1 , Z M2 , Z M3 - это пороговые значения, с которым подсчет H M предысторий области преобразования сравнивается. U T1 , U T2 и U T3 - это величины приращения для H T, когда выбран кодер 136 временной области, а U M1 , U M2 и U M3 - это величины приращения для H M, когда выбран кодер 138 области преобразования. Величины приращения могут быть одинаковыми или различными значениями. D T1 , D T2 и D T3 - это величины декремента для H T, когда выбран кодер 138 области преобразования, а D M1 , D M2 и D M3 - это величины декремента для H M, когда выбран кодер 136 временной области. Величины декремента могут быть одинаковыми или различными значениями. V 1 , V 2 , V 3 и V 4 - это пороговые значения, используемые, чтобы решать, обновлять ли или нет подсчеты H T и H M предысторий.
На Фиг.6A, аудиокадр, чтобы кодировать, первоначально принимается (этап 612). Совершается определение, являлся ли предыдущий аудиокадр кадром молчания или шумоподобным кадром сигнала (этап 614). Если ответ "Да", то подсчеты предысторий временной области и области преобразования сбрасываются как H T =0 и H M =0 (этап 616). Если ответ "Нет" для этапа 614 и также после этапа 616, параметры KT , К М , Δ T и ΔM вычисляются для текущего аудиокадра так, как описано выше (этап 618).
Затем совершается определение того, что K T >К М и H M <Z M1 (этап 620). Условие K T >К М может указывать, что текущий аудиокадр более разрежен во временной области, чем в области преобразования. Условие H M <Z M1 может указывать, что предшествующие аудиокадры не строго разрежены в области преобразования. Если ответ "Да" для этапа 620, то кодер 136 временной области выбирается для текущего аудиокадра (этап 622). Подсчеты предысторий могут затем быть обновлены на этапе 624 следующим образом:
H T =H T +U T1 и H M =H M -D M1 уравнение (12)
Если ответ "Нет" для этапа 620, то совершается определение того, что К М >K T и H M >Z M2 (этап 630). Условие К М >K T может указывать, что текущий аудиокадр более разрежен в области преобразования, чем временной области. Условие H M >Z M2 может указывать, что предшествующие аудиокадры разрежены в области преобразования. Набор условий для этапа 630 помогает смещать решение к выбору кодера 138 временной области более часто. Второе условие на этапе может быть заменено H T >Z T1, чтобы совпасть с этапом 620. Если ответ "Да" для этапа 630, то кодер 138 области преобразования выбирается для текущего аудиокадра (этап 632). Подсчеты предысторий могут затем быть обновлены на этапе 634 следующим образом:
H M =H M +U M1 и H T =H T -D T1 уравнение (13).
После этапов 624 и 634 процесс завершается. Если ответ "Нет" для этапа 630, то процесс переходит к Фиг.6B.
Фиг.6B может быть достигнут, если K T =К М или если условия подсчета предысторий на этапах 620 и/или 630 не удовлетворяются. Первоначально совершается определение того, что ΔM >Δ T и H M >Z M2 (этап 640). Условие ΔM >Δ T может указывать, что текущий аудиокадр более разрежен в области преобразования, чем во временной области. Если ответ "Да" для этапа 640, то кодер 138 области преобразования выбирается для текущего аудиокадра (этап 642). Затем совершается определение того, что (ΔM-ΔT )>V 1 (этап 644). Если ответ "Да", то подсчеты предысторий могут быть обновлены на этапе 646 следующим образом:
H M =H M +U M2 и H T =H T -D T2 уравнение (14)
Если ответ "Нет" на этапе 640, то совершается определение того, что ΔM >Δ T и H T >Z T1 (этап 650). Если ответ "Да" для этапа 650, то кодер 136 временной области выбирается для текущего аудиокадра (этап 652). Затем совершается