Настоящее изобретение относится к устройству и способу для кодирования, обработки и декодирования огибающей аудиосигнала, и, в частности, к устройству и способу кодирования, обработки и декодирования огибающей аудиосигнала с использованием квантования и кодирования распределения.
Кодирование с линейным предсказанием (LPC) является классическим инструментом для моделирования спектральной огибающей основной полосы частот в речевых кодеках. Наиболее распространенная область для квантования LPC моделей - область линейных спектральных частот (LSF). Она основывается на разложении LPC многочлена на два многочлена, корни которого расположены на единичной окружности, так что они могут быть описаны только лишь их углами или частотами.
Задача настоящего изобретения - предоставление улучшенных концепций для кодирования и декодирования огибающей аудиосигнала. Задача настоящего изобретения решается с помощью устройства по пункту 1 формулы изобретения, с помощью устройства по пункту 9 формулы изобретения, с помощью способа по пункту 15 формулы изобретения, с помощью способа по пункту 16 формулы изобретения и с помощью компьютерной программы по пункту 17 формулы изобретения.
Предоставлено устройство для генерации огибающей аудиосигнала из одного или более кодирующих значений. Устройство содержит интерфейс ввода для приема одного или более кодирующих значений и генератор огибающей для генерации огибающей аудиосигнала в зависимости от одного или более кодирующих значений. Генератор огибающей сконфигурирован для генерации агрегирующей функции в зависимости от одной или более кодирующих величин, причем агрегирующая функция содержит множество точек агрегации, причем каждая точка агрегации содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает, и причем каждое из одного или более кодирующих значений указывает по меньшей мере одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции. Кроме того, генератор огибающей сконфигурирован для генерации огибающей аудиосигнала так, что огибающая аудиосигнала содержит множество точек огибающей, причем каждая из точек огибающей содержит значение аргумента и значение огибающей, и причем точка огибающей аудиосигнала присвоена каждой из каждой из точек агрегации агрегирующей функции так, что значение аргумента указанной точки огибающей равно значению аргумента указанной точки агрегации. Более того, генератор огибающей сконфигурирован для генерации огибающей аудиосигнала так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации по меньшей мере одной точки агрегации агрегирующей функции.
В соответствии с вариантом осуществления, генератор огибающей может, например, быть сконфигурирован для определения агрегирующей функции путем определения одной из точек агрегации для каждого из одного или более кодирующих значений в зависимости от указанного кодирующего значения, и путем применения интерполяции для получения агрегирующей функции в зависимости от точки агрегации каждого из одного или более кодирующих значений.
В варианте осуществления, генератор огибающей может, например, быть сконфигурирован для определения первой производной агрегирующей функции на множестве точек агрегации агрегирующей функции.
В соответствии с вариантом осуществления, генератор огибающей может, например, быть сконфигурирован для генерации агрегирующей функции в зависимости от кодирующих значений так, чтобы агрегирующая функция имела непрерывную первую производную.
В варианте осуществления, генератор огибающей может, например, быть сконфигурирован для определения огибающей аудиосигнала путем применения:
где
В соответствии с вариантом осуществления, интерфейс ввода может быть сконфигурирован для приема одного или более разделяющих значений в качестве одного или более кодирующих значений. Генератор огибающей может быть сконфигурирован для генерации агрегирующей функции в зависимости от одного или более разделяющих значений, причем каждое из одного или более разделяющих значений указывает значение агрегации одной из точек агрегации агрегирующей функции. Кроме того, генератор огибающей может быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что одна или более разделяющих точек разделяют восстановленную огибающую аудиосигнала на два или больше сегментов огибающей аудиосигнала, причем предварительно определенное правило присвоения определяет значение сегмента огибающей аудиосигнала для каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала в зависимости от указанного сегмента огибающей сигнала. Более того, генератор огибающей может быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше, чем половина абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
Кроме того, предусмотрено устройство для определения одного или более кодирующих значений для кодирования огибающей аудиосигнала. Устройство содержит агрегатор для определения агрегированного значения для каждого из множества значений аргумента, причем множество значений аргумента упорядочены так, что первое значение аргумента множества значений аргумента или предшествует, или следует за вторым значением аргумента множества значений аргумента, когда указанное второе значение аргумента отличается от первого значения аргумента, причем значение огибающей присваивается каждому из значений аргумента, причем значение огибающей зависит от огибающей аудиосигнала, и причем агрегатор сконфигурирован для определения агрегированного значения для каждого значения аргумента множества значений аргумента в зависимости от значения огибающей указанного значения аргумента и в зависимости от значения огибающей каждого из множества значений аргумента, которое предшествует указанному значению аргумента. Кроме того, устройство содержит кодирующий блок для определения одного или более кодирующих значений в зависимости от одного или более агрегированных значений из множества значений аргумента.
В соответствии с вариантом осуществления, агрегатор может, например, быть сконфигурирован для определения агрегированного значения для каждого значения аргумента множества значений аргумента путем суммирования значения огибающей указанного значения аргумента и значений огибающей значений аргумента, которые предшествуют указанному значению аргумента.
В варианте осуществления, значение огибающей каждого из значений аргумента может, например, указывать значение энергии огибающей аудиосигнала, имеющей огибающую аудиосигнала в качестве огибающей сигнала.
В соответствии с вариантом осуществления, значение огибающей каждого из значений аргумента может, например, указывать n-ую мощность спектрального значения огибающей аудиосигнала, имеющей огибающую аудиосигнала в качестве огибающей сигнала, где n - четное целое число больше нуля.
В варианте осуществления, значение огибающей каждого из значений аргумента может, например, указывать n-ую мощность амплитудного значения огибающей аудиосигнала, представленного во временной области, и имеющую огибающую аудиосигнала в качестве огибающей сигнала, где n - четное целое больше нуля.
В соответствии с вариантом осуществления, блок кодирования может, например, быть сконфигурирован для определения одного или более кодирующих значений в зависимости от одного или более агрегированных значений аргумента и в зависимости от числа кодирующих значений, которое указывает, как много значений должны быть определены блоком кодирования как одно или более кодирующих значений.
В варианте осуществления, блок кодирования может, например, быть сконфигурирован для определения одного или более кодирующих значений в соответствии с
где c(k) указывает k-ое кодирующее значение для определения блоком кодирования, где j указывает j-ое значение аргумента из множества значений аргумента, где a(j) указывает агрегированное значение, присвоенное j-ому значению аргумента, где max(a) указывает максимальное значение, являющееся одним из агрегированных значений, которое присвоено одному из значений аргумента, причем ни одно из агрегированных значений, которые присвоены одному из значений аргумента, не превышает максимальное значение, и где
Кроме того, предусматривается способ для генерации огибающей аудиосигнала из одного или более кодирующих значений. Способ содержит:
- прием одного или более кодирующих значений; и
- генерацию огибающей аудиосигнала в зависимости от одного или более кодирующих значений.
Генерация огибающей аудиосигнала сопровождается генерацией агрегирующей функции в зависимости от одного или более кодирующих значений, причем агрегирующая функция содержит множество точек агрегации, причем каждая из точек агрегации содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает, и причем каждое из одного или более кодирующих значений указывает по меньшей мере одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции. Кроме того, генерация огибающей аудиосигнала проводится так, что огибающая аудиосигнала содержит множество точек огибающей, причем каждая из точек огибающей содержит значение аргумента и значение огибающей, и причем точка огибающей аудиосигнала присваивается каждой из точек агрегации агрегирующей функции так, что значение аргумента указанной точки огибающей равно значению аргумента указанной точки агрегации. Более того, генерация огибающей аудиосигнала проводится так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации по меньшей мере одной точки агрегации агрегирующей функции.
Более того, предоставляется способ для определения одного или более кодирующих значений для кодирования огибающей аудиосигнала. Способ содержит:
- определение агрегированного значения для каждого из множества значений аргумента, причем множество значений аргумента упорядочено так, что первое значение аргумента из множества значений аргумента или предшествует, или следует за вторым значением аргумента из множества значений аргумента, когда указанное второе значение отличается от первого значения аргумента, причем значение огибающей присваивается каждому из значений аргумента, причем значение огибающей каждого из значений аргумента зависит от огибающей аудиосигнала, и причем агрегатор сконфигурирован для определения агрегированного значения для каждого значения аргумента из множества значений аргумента в зависимости от значения огибающей указанного значения аргумента и в зависимости от значения огибающей каждого из множества значений аргумента, которые предшествуют указанному значению аргумента. И:
- определение одного или более кодирующих значений в зависимости от одного или более агрегированных значений множества значений аргумента.
Более того, предусмотрена компьютерная программа для реализации одного из вышеописанных способов при исполнении на компьютере или сигнальном процессоре.
Предоставляется устройство для декодирования для получения восстановленной огибающей аудиосигнала. Устройство содержит восстановитель огибающей сигнала для генерации восстановленной огибающей аудиосигнала в зависимости от одной или более разделяющих точек и интерфейс вывода для вывода восстановленной огибающей аудиосигнала. Восстановитель огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что упомянутые одна или более разделяющих точек разделяют восстановленную огибающую аудиосигнала на два или более сегмента огибающей сигнала, причем предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала двух или более сегментов огибающей сигнала в зависимости от указанного сегмента огибающей сигнала. Кроме того, восстановитель огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждой из двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше, чем половина абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
В соответствии с вариантом осуществления, восстановитель огибающей сигнала может, например, быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше чем 90% абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
В варианте осуществления, восстановитель огибающей сигнала может, к примеру, быть сконфигурирован для формирования восстановленной огибающей сигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше чем 99% абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
В другом варианте осуществления, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что значение сегмента огибающей сигнала каждого из двух или более сегментов огибающей сигнала равно значению сегмента огибающей сигнала каждого из других сегментов огибающей сигнала из двух или более сегментов огибающей сигнала.
В соответствии с вариантом осуществления, значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала может, например, зависеть от одного или более значений энергии или от одного или более значений мощности указанного сегмента огибающей сигнала. Или значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала, зависит от любого другого значения, подходящего для восстановления исходного или целевого уровня огибающей звукового сигнала.
Масштабирование огибающей может быть выполнено различными способами. В частности, оно может соответствовать энергии сигнала или спектральной массе или подобию (фактическому размеру), или это может быть коэффициентом масштабирования или усиления (относительный размер). Соответственно, она может быть закодирована как относительное или абсолютное значение, или она может быть закодирована при помощи разности от предыдущего значения, или сочетанием предыдущих значений. В некоторых случаях масштабирование может также быть нерелевантным или выведенным из других имеющихся данных. Огибающая должна быть восстановлена до исходного или требуемого уровня. Таким образом, в общем случае, значение сегмента огибающей сигнала зависит от любого значения, подходящего для восстановления исходного или целевого уровня огибающей звукового сигнала.
В варианте осуществления, устройство может, например, дополнительно содержать декодер разделяющих точек для декодирования одной или более закодированных точек, в соответствии с правилом декодирования, для получения положения каждой из одной или более разделяющих точек. Декодер разделяющих точек может, например, быть сконфигурирован для анализа общего числа положений, указывающего общее число возможных положений разделяющих точек, числа разделяющих точек, указывающего число одной или более разделяющих точек, и номера состояния разделяющих точек. Кроме того, декодер разделяющих точек может, например, быть сконфигурирован для генерации указания положения каждой из упомянутых одной или более разделяющих точек с использованием общего числа положений, числа разделяющих точек и номера состояния разделяющих точек.
В соответствии с вариантом осуществления, восстановитель огибающей сигнала может, например, быть сконфигурирован для генерации восстановленной огибающей аудиосигнала в зависимости от общего значения энергии, указывающего общую энергию восстановленной огибающей аудиосигнала, или в зависимости от любого другого значения, подходящего для восстановления исходного или заданного уровня огибающей аудиосигнала.
Кроме того, предусмотрено устройство для декодирования для получения восстановленной огибающей аудиосигнала в соответствии с другим вариантом осуществления. Устройство содержит восстановитель огибающей сигнала для генерации восстановленной огибающей аудиосигнала в зависимости от одной или более разделяющих точек, и интерфейс вывода для вывода восстановленной огибающей аудиосигнала. Восстановитель аудиосигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что одна или более разделяющих точек делит восстановленную огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала, причем предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала в зависимости от указанного сегмента огибающей сигнала. Предварительно определенное значение сегмента огибающей присваивается каждому из двух или более сегментов огибающей сигнала. Восстановитель огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого сегмента из двух или более сегментов огибающей сигнала абсолютное значение сегмента огибающей сигнала указанного сегмента огибающей сигнала больше чем 90% абсолютного значения предварительно определенного значения сегмента огибающей, присвоенного указанному сегменту огибающей сигнала, и так, что абсолютное значение сегмента огибающей сигнала указанного сегмента огибающей сигнала меньше чем 110% абсолютного значения предварительно определенного значения сегмента огибающей, присвоенного указанному сегменту огибающей сигнала.
В варианте осуществления, восстановитель огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что значение сегмента огибающей сигнала каждого из двух или более сегментов огибающей сигнала равно предварительно определенному значению сегмента огибающей, присвоенному указанному сегменту огибающей сигнала.
В варианте осуществления, предварительно определенные значения сегмента огибающей по меньшей мере двух сегментов огибающей сигнала отличаются друг от друга.
В другом варианте осуществления, предварительно определенное значение сегмента огибающей каждого из сегментов огибающей сигнала отличается от предварительно определенного значения сегмента огибающей каждого из других сегментов огибающей сигнала.
Кроме того, предусмотрено устройство для восстановления аудиосигнала. Устройство содержит устройство для декодирования в соответствии с одним из вышеописанных вариантов осуществления для получения восстановленной огибающей аудиосигнала, и генератор сигнала для генерации аудиосигнала в зависимости от огибающей аудиосигнала и в зависимости от дополнительных характеристик сигнала аудиосигнала, дополнительных характеристик сигнала, отличающихся от огибающей аудиосигнала.
Более того, предусмотрено устройство для кодирования огибающей аудиосигнала. Устройство содержит интерфейс огибающей аудиосигнала для приема огибающей аудиосигнала, и определитель разделяющей точки для определения, в зависимости от предварительно определенного правила присвоения, значения сегмента огибающей сигнала для, по меньшей мере, одного сегмента огибающей аудиосигнала из двух или более сегментов огибающей аудиосигнала для каждой из по меньшей мере двух конфигураций разделяющих точек. Каждая из, по крайней мере, двух конфигураций разделяющих точек содержит одну или более разделяющих точек, причем упомянутая одна или более разделяющие точки из двух или более конфигураций разделяющих точек разделяют огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала. Определитель разделяющей точки сконфигурирован выбирать одну или более разделяющих точек одной из по меньшей мере двух конфигураций разделяющих точек как одну или более выбранные разделяющие точки для кодирования огибающей аудиосигнала, причем определитель разделяющей точки сконфигурирован выбирать одну или более разделяющих точек в зависимости от значения сегмента огибающей сигнала каждого из по меньшей мере одного сегмента огибающей аудиосигнала из двух или более сегментов огибающей аудиосигнала каждой из по меньшей мере двух конфигураций разделяющих точек.
В соответствии с вариантом осуществления, значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала может, например, зависеть от одного или более значений энергии или одного или более значений мощности указанного сегмента огибающей сигнала. Или значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала зависит от любого другого значения, подходящего для восстановления исходного или целевого уровня огибающей аудиосигнала.
Как уже было сказано, масштабирование огибающей может быть осуществлено различными способами. А именно, она может соответствовать энергии или спектральной массе или подобию (абсолютный размер) сигнала, или это может быть коэффициент масштабирования или усиления (относительный размер). Соответственно, она может быть закодирована как абсолютная или относительная величина, или она может быть закодирована с помощью разности к предыдущему значению или комбинации предыдущих значений. В некоторых случаях масштабирование также может быть нерелевантным или выведенным из других доступных данных. Огибающая должна быть восстановлена до исходного или целевого уровня. Таким образом, в общем, значение сегмента огибающей сигнала зависит от любого значения, подходящего для восстановления исходного или целевого уровня огибающей звукового сигнала.
В варианте осуществления, устройство может, например, дополнительно содержать кодер разделяющих точек для кодирования положения каждой из одной или более разделяющих точек для получения одной или более закодированных точек. Кодер разделяющих точек может, например, быть сконфигурирован для кодирования каждой из одной или более разделяющих точек с помощью кодирования номера состояния разделяющих точек. Кроме того, кодер разделяющих точек может, например, быть сконфигурирован для предоставления общего числа положений, указывающего общее число возможных положений разделяющих точек, и числа разделяющих точек, указывающего число одной или более разделяющих точек. Порядковый номер разделяющих точек, общее число позиций и число разделяющих точек вместе указывают положение каждой из одной или более разделяющих точек.
В соответствии с вариантом осуществления, устройство может, например, дополнительно содержать определитель энергии для определения общей энергии огибающей аудиосигнала и для кодирования общей энергии огибающей аудиосигнала. Или, устройство может, например, быть дополнительно сконфигурировано для определения любого другого значения, подходящего для восстановления исходного или целевого уровня огибающей аудиосигнала.
Кроме того, предусмотрено устройство для кодирования аудиосигнала. Устройство содержит устройство для кодирования согласно одному из вышеописанных вариантов осуществления для кодирования огибающей аудиосигнала из аудиосигнала, и кодер вторичной характеристики сигнала для кодирования дополнительной характеристики сигнала из аудиосигнала, причем дополнительная характеристика сигнала отличается от огибающей аудиосигнала.
Дополнительно, предусмотрен способ декодирования для получения восстановленной огибающей аудиосигнала. Способ содержит:
- генерацию восстановленной огибающей аудиосигнала в зависимости от одной или более разделяющих точек. И:
- вывод восстановленной огибающей аудиосигнала.
Генерация восстановленной огибающей аудиосигнала проводится так, что одна или более разделяющих точек делят восстановленную огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала, причем предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала из двух или более сегментов огибающей в зависимости от указанного сегмента огибающей сигнала. Кроме того, генерация восстановленной огибающей аудиосигнала проводится так, что для каждого из двух или более сегментов огибающей, абсолютное значение данного сегмента огибающей сигнала больше, чем половина абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
Кроме того, предусмотрено устройство для кодирования аудиосигнала. Устройство содержит устройство для кодирования согласно одному из вышеописанных вариантов осуществления для кодирования огибающей аудиосигнала, и кодер вторичной характеристики сигнала для кодирования дополнительной характеристики сигнала из аудиосигнала, дополнительная характеристика сигнала отличается от огибающей аудиосигнала.
Дополнительно, предусмотрен способ декодирования для получения восстановленной огибающей аудиосигнала. Способ содержит:
- генерацию восстановленной огибающей аудиосигнала в зависимости от одной или более разделяющих точек. И:
- вывод восстановленной огибающей аудиосигнала.
Генерация восстановленной огибающей аудиосигнала проводится так, что одна или более разделяющих точек делят восстановленную огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала. Предварительно определенное значение сегмента огибающей присваивается каждому из двух или более сегментов огибающей. Более того, генерация восстановленной огибающей аудиосигнала проводится так, что для каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала абсолютное значение сегмента огибающей сигнала указанного сегмента огибающей сигнала больше чем 90% абсолютного значения предварительно определенного значения сегмента огибающей, присвоенного указанному сегменту огибающей сигнала, и так, что абсолютное значение сегмента огибающей сигнала указанного сегмента огибающей сигнала меньше чем 110% абсолютного значения предварительно определенного значения сегмента огибающей, присвоенного указанному сегменту огибающей сигнала.
Более того, предусмотрен способ для кодирования огибающей аудиосигнала. Способ содержит:
- прием огибающей аудиосигнала.
- определение, в зависимости от предварительно определенного правила присвоения, значения сегмента огибающей сигнала для по меньшей мере одного сегмента огибающей аудиосигнала из двух или более сегментов огибающей аудиосигнала для каждой из по меньшей мере двух конфигураций разделяющих точек, причем каждая из по меньшей мере двух конфигураций разделяющих точек содержит одну или более разделяющих точек, причем упомянутая одна или более разделяющих точек каждой из двух или более конфигураций разделяющих точек разделяют огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала. И:
- выбор одной или более разделяющих точек из одной из по меньшей мере двух конфигураций разделяющих точек как одну или более выбранную разделяющую точку для кодирования огибающей аудиосигнала, причем выбор одной или более разделяющих точек проводится в зависимости от значения сегмента огибающей сигнала каждого из, по меньшей мере, одного сегмента огибающей сигнала из двух или более сегментов огибающей аудиосигнала каждой из, по меньшей мере, двух конфигураций разделяющих точек.
Кроме того, предусмотрена компьютерная программа для реализации одного из вышеописанных способов при исполнении на компьютере или сигнальном процессоре.
Эвристическое, но немного не точное, описание линейных спектральных частот 5 (LSF5) заключается в том, что они описывают распределение энергии сигнала вдоль частотной оси. С высокой вероятностью, LSF5 будет находиться на частотах, где сигнал имеет много энергии. Варианты осуществления основываются на решении взять данное эвристическое описание буквально и квантовать фактическое распределение энергии сигнала. Поскольку методы LSFs применяют эту идею только приближенно, согласно вариантам осуществления, принцип LSF опускается, и вместо этого квантуется распределение частот, таким образом, что из этого распределения может быть построена гладкая форма огибающей. Этот изобретательский замысел в дальнейшем именуется как квантование распределения.
Варианты осуществления основываются на квантовании и кодировании спектральных огибающих, используемых в речи и кодировании звука. Варианты осуществления могут, например, быть применены к огибающим центральной полосы частот, а также к способам расширения полосы частот.
В соответствии с вариантами осуществления, стандартные методики моделирования огибающей, такие как полосы частот с коэффициентами масштабирования [3, 4] и модели с линейным предсказанием [1] могут, например, быть заменены и/или улучшены.
Целью вариантов осуществления является получение квантования, которое совмещает преимущества как подходов с линейным предсказанием, так и подходов, основанных на полосах частот с коэффициентами масштабирования, исключая их недостатки.
В соответствии с вариантами осуществления, предоставлены принципы, которые, с одной стороны, имеют гладкую, но довольно точную спектральную огибающую, а с другой стороны, могут быть закодированы малым числом битов (опционально с фиксированной битовой скоростью), и более того, реализованы с приемлемой вычислительной сложностью.
Далее, варианты осуществления настоящего изобретения описаны более детально со ссылкой на чертежи, на которых:
Фиг.1 иллюстрирует устройство для декодирования для получения восстановленной огибающей аудиосигнала в соответствии с вариантом осуществления,
Фиг.2 иллюстрирует устройство в соответствии с еще одним вариантом осуществления, в котором устройство дополнительно содержит декодер разделяющих точек,
Фиг.3 иллюстрирует устройство для кодирования огибающей аудиосигнала в соответствии с вариантом осуществления,
Фиг.4 иллюстрирует устройство для кодирования огибающей аудиосигнала в соответствии с другим вариантом осуществления, в котором устройство дополнительно содержит кодер разделяющих точек,
Фиг.5 иллюстрирует устройство для кодирования огибающей аудиосигнала в соответствии с другим вариантом осуществления, в котором устройство для кодирования огибающей аудиосигнала дополнительно содержит определитель энергии,
Фиг.6 иллюстрирует три огибающие сигнала, описанные блоками с постоянной энергией в соответствии с вариантами осуществления,
Фиг.7 иллюстрирует совокупное представление спектра с Фиг.6 в соответствии с вариантами осуществления, и
Фиг.8 иллюстрирует интерполированную огибающую спектральной массы в исходном представлении, а также в представлении области совокупной массы,
Фиг.9 иллюстрирует процесс декодирования для декодирования положений разделяющих точек в соответствии с вариантом осуществления,
Фиг.10 иллюстрирует псевдокод, осуществляющий декодирование положений разделяющих точек в соответствии с вариантом осуществления,
Фиг.11 иллюстрирует процесс кодирования для кодирования разделяющих точек в соответствии с вариантом осуществления,
Фиг.12 иллюстрирует псевдокод, осуществляющий кодирование положений разделяющих точек в соответствии с вариантом осуществления настоящего изобретения,
Фиг.13 иллюстрирует декодер разделяющих точек в соответствии с вариантом осуществления,
Фиг.14 иллюстрирует устройство для кодирования аудиосигнала в соответствии вариантом осуществления,
Фиг.15 иллюстрирует устройство для восстановления аудиосигнала в соответствии с вариантом осуществления,
Фиг.16 иллюстрирует устройство для генерации огибающей аудиосигнала из одного или более кодирующих значений в соответствии с вариантом осуществления,
Фиг.17 иллюстрирует устройство для определения одного или более кодирующих значений для кодирования огибающей аудиосигнала в соответствии с вариантом осуществления,
Фиг.18 иллюстрирует агрегирующую функцию в соответствии с первым примером, и
Фиг.19 иллюстрирует агрегирующую функцию в соответствии со вторым примером.
Фиг.3 иллюстрирует устройство для кодирования огибающей аудиосигнала в соответствии с вариантом осуществления.
Устройство содержит интерфейс 210 огибающей аудиосигнала для приема огибающей аудиосигнала.
Кроме того, устройство содержит определитель 220 разделяющей точки для определения, в зависимости от предварительно определенного правила присвоения, значения сегмента огибающей сигнала для по меньшей мере одного сегмента огибающей аудиосигнала из двух или более сегментов огибающей аудиосигнала для каждой из по меньшей мере двух конфигураций разделяющих точек.
Каждая из по меньшей мере двух конфигураций разделяющих точек содержит одну или более разделяющих точек, причем упомянутая одна или более разделяющих точек каждой из двух или более конфигураций разделяющих точек разделяет огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала. Определитель 220 разделяющей точки сконфигурирован выбирать одну или более разделяющих точек из одной из по меньшей мере двух конфигураций разделяющих точек как одну или более выбранную разделяющую точку для кодирования огибающей аудиосигнала, причем определитель 220 разделяющей точки сконфигурирован для выбора одной или более разделяющих точек в зависимости от значения сегмента огибающей сигнала каждого из по меньшей мере одного сегмента огибающей аудиосигнала из двух или более сегментов огибающей аудиосигнала из каждой из по меньшей мере двух конфигураций разделяющих точек.
Конфигурация разделяющих точек содержит одну или более разделяющих точек и определяется ее разделяющими точками. Например, огибающая аудиосигнала может содержать 20 сэмплов (отсчетов): 0, …, 19, и конфигурация с двумя разделяющими точками может быть определена ее первой разделяющей точкой в расположении сэмла 3, и ее второй разделяющей точкой в расположении сэмпла 8, например, конфигурация разделяющих точек может быть указана кортежем (3; 8). Если только одна разделяющая точка должна быть определена, тогда одна разделяющая точка указывает конфигурацию разделяющих точек.
Соответствующая одна или более разделяющих точек должны быть определены как одна или более выбранные разделяющие точки. Для этой цели, рассматриваются по меньшей мере две конфигурации разделяющих точек, каждая из которых содержит одну или более разделяющих точек. Одна или более разделяющих точек выбираются из наиболее подходящей конфигурации разделяющих точек. Является ли конфигурация разделяющих точек более подходящей, чем другая, определяется в зависимости от определенного значения сегмента огибающей сигнала, которое, в свою очередь, зависит от предварительно определенного правила присвоения.
В вариантах осуществления, в которых каждая конфигурация разделяющих точек имеет N разделяющих точек, каждая возможная конфигурация разделяющих точек с разделяющими точками может быть рассмотрена. Однако, в некоторых вариантах осуществления рассматриваются не все возможные, а только две конфигурации разделяющих точек, и разделяющая точка наиболее подходящей конфигурации разделяющих точек выбирается как одна или более выбранные разделяющие точки.
В вариантах осуществления, в которых должна быть определена только одна разделяющая точка, каждая конфигурация разделяющих точек содержит только одну разделяющую точку. В вариантах осуществления, в которых должны быть определены две разделяющих точки, каждая конфигурация разделяющих точек содержит две разделяющих точки. Таким же образом, в вариантах осуществления, в которых должны быть определены N разделяющих точек, каждая конфигурация разделяющих точек содержит N разделяющих точек.
Конфигурация разделяющих точек с единичной разделяющей точкой делит огибающую аудиосигнала на два сегмента огибающей аудиосигнала. Конфигурация разделяющих точек с двумя разделяющими точками делит огибающую аудиосигнала на три сегмента огибающей аудиосигнала. Конфигурация разделяющих точек с N точками дели огибающую аудиосигнала на N+1 сегмент огибающей аудиосигнала.
Существует предварительно определенное правило присвоения, которое присваивает значение сегмента огибающей сигнала каждому из сегментов аудиосигнала. Предварительно определенное правило присвоения зависит от сегментов огибающей аудиосигнала.
В некоторых вариантах осуществления, разделяющие точки определены так, что каждый из сегментов огибающей аудиосигнала, который получается от одной или более разделяющих точек, делящих огибающую аудиосигнала, имеет значение сегментов огибающей аудиосигнала, присвоенное предварительно определенным правилом присвоения, которое является строго равным. Таким образом, поскольку одна или более разделяющих точек зависят от огибающей аудиосигнала и правила присвоения, огибающая аудиосигнала может быть оценена на декодере, если правило присвоения и разделяющие точки известны декодеру. Это например, проиллюстрировано на Фиг.6.
На Фиг.6(a), должна быть определена единичная разделяющая точка для огибающей 610 сигнала. Таким образом, в этом примере, различные возможные конфигурации разделяющих точек определены одной разделительной точкой. В варианте осуществления Фиг.6(a), разделяющая точка 631 найдена как лучшая разделяющая точка. Разделяющая точка 631 делит огибающую 610 аудиосигнала на два сегмента огибающей сигнала. Прямоугольный блок 611 представляет энергию первого сегмента огибающей сигнала определенного разделяющей точкой 631. Прямоугольный блок 612 представляет энергию второго сегмента огибающей сигнала, определенного разделяющей точкой 631. В примере Фиг.6(a), верхние грани блоков 611 и 612 представляют оценку огибающей 610 сигнала. Такая оценка может быть сделана в декодере, например, с использованием в качестве информации разделяющей точки 631 (например, если единственная разделяющая точка имеет значение s = 12, тогда разделительная точка s расположена на позиции 12), информации о том, где начинается огибающая сигнала (здесь в точке 638), и информации, где заканчивается огибающая сигнала (здесь в точке 639). Огибающая сигнала может начинаться и может заканчиваться в фиксированных значениях, и эта информация может быть доступна как фиксированная информация в приемнике. Или, эта информация может быть передана приемнику. На стороне декодера, декодер может восстановить оценку огибающей сигнала так, что сегменты огибающей сигнала, которые исходят из разделяющей точки 631, делящей огибающую аудиосигнала, получают то самое значение, присвоенное предварительно определенным правилом присвоения. На Фиг.6(а), сегменты огибающей сигнала из огибающей сигнала, определяемые верхним краем блоков 611 и 612, получат то же самое значение, присвоенное предварительно определенным правилом присвоения, и представят хорошую оценку огибающей 610 сигнала. Вместо использования разделяющей точки 631, в качестве разделяющей точки также может быть использовано значение 621. Кроме того, вместо начального значения 638, значение 628 может быть использовано в качестве начального значения, а вместо конечного значения 639 конечное значение 629 может быть использовано как конечное значение. Однако, кодирование не только значения абсциссы, но также значения ординаты, требует больше ресурсов кодирования и не является обязательным.
На Фиг.6(b), должны быть определены три разделяющие точки для огибающей 640 сигнала. Следовательно, в этом примере, другие возможные конфигурации разделяющих точек определены тремя разделяющими точками. В варианте осуществления с Фиг.6(b), разделяющие точки 661, 662, 663 найдены как лучшие разделяющие точки. Разделяющие точки 661, 662, 663 делят огибающую 640 на четыре сегмента огибающей сигнала. Прямоугольный блок 641 представляет энергию первого сегмента огибающей сигнала, определенного разделяющими точками. Прямоугольный блок 642 представляет энергию второго сегмента огибающей сигнала, определенного разделяющими точками. Прямоугольный блок 643 представляет энергию третьего сегмента огибающей сигнала, определенного разделяющими точками. Прямоугольный блок 644 представляет энергию четвертого сегмента огибающей сигнала, определенного разделяющими точками. В примере Фиг. 6(b), верхний край блоков 641, 642, 643, 644 представляет оценку огибающей 640 сигнала. Такая оценка может быть сделана в декодере, например, с использованием в качестве информации разделяющих точек 661, 662, 663, информации о том, где начинается огибающая сигнала (здесь в точке 668), и информации, где огибающая сигнала заканчивается (здесь в точке 669). Огибающая сигнала может начинаться и может заканчиваться в фиксированных значениях, и эта информация может быть доступна как фиксированная информация в приемнике. Или, эта информация может быть передана приемнику. На стороне декодера, декодер может восстановить оценку огибающей сигнала так, что сегменты огибающей сигнала, которые получаются из разделяющих точек 661, 662, 663, разделяющих огибающую аудиосигнала, получают то самое значение, присвоенное предварительно определенным правилом присвоения. На Фиг.6(b), сегменты огибающей сигнала из огибающей сигнала определяются верхними гранями блоков 641, 642, 643, 644, получающими то самое значение, присвоенное правилом присвоения, и представляющими хорошую оценку огибающей 640 сигнала. Вместо использования разделяющей точки 661, 662, 663, значения 651, 652, 653 также могут быть использованы как разделяющие точки. Более того, вместо начального значения 668, значение 658 может быть использовано как начальное значение, и вместо конечного значения 669 конечное значение 659 может быть использовано как конечное значение. Однако, кодирование не только значения абсциссы, но также и значения ординаты, требует больше ресурсов кодирования и не является необходимым.
На Фиг.6(c), для огибающей сигнала 670 должны быть определены четыре разделяющие точки. Следовательно, в этом примере, другие возможные конфигурации разделяющих точек определены четырьмя разделяющими точками. В варианте осуществления с Фиг.6(c), разделяющие точки 691, 692, 693, 694 найдены как лучшие разделяющие точки. Разделяющие точки 691, 692, 693, 694 делят огибающую 670 аудиосигнала на пять сегментов огибающей сигнала. Прямоугольный блок 671 представляет энергию первого сегмента огибающей сигнала, определенного разделяющими точками. Прямоугольный блок 672 представляет энергию второго сегмента огибающей сигнала, определенного разделяющими точками. Прямоугольный блок 673 представляет энергию третьего сегмента огибающей сигнала, определенного разделяющими точками. Прямоугольный блок 674 представляет энергию четвертого сегмента огибающей сигнала, определенного разделяющими точками. И прямоугольный блок 675 представляет энергию пятого сегмента огибающей сигнала, определенного разделяющими точками. В примере с Фиг.6(c), верхние грани блоков 671, 672, 673, 674, 675 представляют оценку огибающей сигнала 670. Такая оценка может быть сделана в декодере, например, с использованием в качестве информации разделяющих точек 691, 692, 693, 694 информации о том, где огибающая сигнала начинается (здесь в точке 698), и информации, где огибающая сигнала заканчивается (здесь в точке 699). Огибающая сигнала может начинаться и может заканчиваться в фиксированных значениях, и эта информация может быть доступна как фиксированная информация в приемнике. Или, эта информация может быть передана приемнику. На стороне декодера, декодер может восстановить оценку огибающей сигнала так, что сегменты огибающей сигнала, которые получаются из разделяющих точек 691, 692, 693, 694, разделяющих огибающую аудиосигнала, получают то самое значение, присвоенное предварительно определенным правилом присвоения. На Фиг.6(c), сегменты огибающей сигнала из огибающей сигнала определяются верхними гранями блоков 671, 672, 673, 674, получающими то самое значение, присвоенное правилом присвоения, и представляющими хорошую оценку огибающей 670 сигнала. Вместо использования разделяющей точки 691, 692, 693, значения 681, 682, 683 также могут быть использованы как разделяющие точки. Более того, вместо начального значения 698 начальное значение 688 может быть использовано как начальное значение, и вместо конечного значения 699 конечное значение 689 может быть использовано как конечное значение. Однако, кодирование не только значения абсциссы, но также и значения ординаты, требует больше ресурсов кодирования и не является необходимым.
В качестве дополнительного частного варианта осуществления, может быть рассмотрен следующий пример:
Огибающая сигнала, представленная в спектральной области, должна быть закодирована. Огибающая сигнала может, например, включать в себя n спектральных значений (например, n = 33).
Различные сегменты огибающей теперь могут быть рассмотрены. Например, первый сегмент огибающей сигнала может содержать первые 10 спектральных значений vi (i = 0, …, 9; где i является индексом спектрального значения), и второй сегмент огибающей сигнала может содержать последние 23 спектральных значения (i = 10, …, 32).
В варианте осуществления, предварительно определенное правило присвоения, может, например, быть таким, что значение p(m) сегмента огибающей сигнала из спектрального сегмента m огибающей сигнала с спектральными значениями v0, v1, …, vs-1 является энергией сегмента огибающей сигнала, например,
где lowerbound является значением нижней границы сегмента m огибающей сигнала и где upperbound является значением верхней границы сегмента m огибающей сигнала.
Определитель 110 значения сегмента огибающей сигнала может присвоить значение сегмента огибающей сигнала в соответствии с такой формулой одному или более сегментам огибающей аудиосигнала.
Определитель 220 разделяющей точки теперь сконфигурирован для определения одного или более значений сегмента огибающей сигнала в соответствии с предварительно определенным правилом присвоения. В частности, определитель 220 разделяющей точки сконфигурирован для определения одного или более значения огибающей сигнала в соответствии с правилом присвоения таким, что значение огибающей сигнала каждого из двух или более сегментов огибающей сигнала является (примерно) равным значению сегмента огибающей сигнала каждого из других сегментов огибающей сигнала из двух или более сегментов огибающей сигнала.
Например, в частном варианте осуществления, определитель 220 разделяющей точки может быть сконфигурирован с возможностью определения только одной разделяющей точки. В таком варианте осуществления, два сегмента огибающей сигнала, например, сегмент 1 огибающей сигнала (m=1) и сегмент 2 огибающей сигнала (m=2) определяются разделяющей точкой s, например, в соответствии с формулами:
где n указывает число сэмплов огибающей аудиосигнала, например, число спектральных значений огибающей аудиосигнала. В приведенном выше примере, n может, например, быть n=33.
Определитель 110 значения сегмента огибающей сигнала может присвоить такое значение p(1) сегмента огибающей сигнала сегменту 1 огибающей аудиосигнала и такое значение p(2) сегмента огибающей сигнала сегменту 2 огибающей аудиосигнала.
В некоторых вариантах осуществления, оба значения p(1), p(2) сегмента огибающей сигнала определены. Тем не менее, в некоторых вариантах осуществления, учитывается только одно из двух значений сегмента огибающей сигнала. Например, если известна полная энергия. В таком случае, достаточно определить разделяющую точку такую, что p(1) примерно равно 50% полной энергии.
В некоторых вариантах осуществления, s(k) может быть выбрано из множества возможных значений, например, из множества целочисленных значений, например, {0; 1; 2; …; 32}. В других вариантах осуществления, s(k) может быть выбрано из множества возможных значений, например, из множества значений частот, указывающих множество полос частот.
В вариантах осуществления, в которых должно быть определено более одной разделяющей точки, может быть рассмотрена формула, представляющая суммарную энергию, суммирующая энергию сэмплов непосредственно до разделяющей точки s
Если должны быть определены N разделяющих точек, тогда разделяющие точки s(1), s(2), …, s(N) определяются так, что:
где totalenergy - полная энергия огибающей сигнала.
В варианте осуществления, разделяющая точка s(k) может быть выбрана так, что
- минимален.
Следовательно, в соответствии с вариантом осуществления, определитель 220 разделяющей точки может, например, быть сконфигурирован для определения одной или более разделяющих точек s(k) так, что
минимален, где totalenergy указывает полную энергию, и где k указывает k-ую разделяющую точку из одной или более разделяющих точек, и где N указывает число одной или более разделяющих точек.
В другом варианте осуществления, если определитель 220 разделяющей точки сконфигурирован для выбора только одной разделяющей точки s, тогда определитель 220 разделяющей точки может проверить все возможные разделяющие точки s = 1, …, 32.
В некоторых вариантах осуществления, определитель 220 разделяющей точки может выбрать лучшее значение разделяющей точки s, например, разделяющую точку s, где
минимально.
В соответствии с вариантом осуществления, значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей может, например, зависеть от одного или более значений энергии или одного или более значений мощности указанного сегмента огибающей сигнала. Или, значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала может, например, зависеть от любого другого значения, подходящего для восстановления исходного или целевого уровня огибающей аудиосигнала.
В соответствии с вариантом осуществления, огибающая аудиосигнала может, например, быть представлена в спектральной области или во временной области.
Фиг.4 иллюстрирует устройство для кодирования огибающей аудиосигнала в соответствии с другим вариантом осуществления, в котором устройство дополнительно содержит кодер 225 разделяющих точек для кодирования одной или более разделяющих точек, например в соответствии с правилом кодирования, для получения одной или более закодированных точек.
Кодер 225 разделяющих точек может, например, быть сконфигурирован для кодирования положения каждой из одной или более разделяющих точек для получения одной или более закодированных точек. Кодер 225 разделяющих точек может, например, быть сконфигурирован для кодирования положения каждой из одной или более разделяющих точек путем кодирования номера состояния разделяющих точек. Кроме того, кодер 225 может, например, быть сконфигурирован для предоставления общего числа положений, указывающего общее число возможных положений разделяющей точки, и числа разделяющих точек, указывающего число одной или более разделяющих точек. Номер состояния разделяющих точек, общее число положений и число разделяющих точек вместе указывают положение каждой из одной или более разделяющих точек.
Фиг.5 иллюстрирует устройство для кодирования огибающей аудиосигнала в соответствии с другим вариантом осуществления, в котором устройство для кодирования огибающей аудиосигнала дополнительно содержит определитель 230 энергии.
В соответствии с другим вариантом осуществления, устройство может, например, дополнительно содержать определитель (230) энергии для определения полной энергии огибающей аудиосигнала и для кодирования полной энергии огибающей аудиосигнала.
В другом варианте осуществления, тем не менее, устройство может, например, быть дополнительно сконфигурировано для определения любого другого значения, подходящего для восстановления исходного или целевого уровня огибающей аудиосигнала. Вместо полной энергии, множество других величин подходят для восстановления исходного или целевого уровня огибающей аудиосигнала. Например, как уже упоминалось, масштабирование огибающей может быть выполнено различными путями, и поскольку оно может соответствовать энергии или спектральной массе или подобию сигнала (абсолютный размер), или оно может быть коэффициентом масштабирования или усиления (относительный размер), оно может быть закодировано как абсолютное или относительное значение, или оно может быть закодировано с помощью разности от предыдущего значения или комбинации предыдущих значений. В некоторых случаях масштабирование также может быть ненужным или выведенным из других доступных данных. Огибающая должна быть восстановлена до ее исходного или целевого уровня.
Фиг.14 иллюстрирует устройство для кодирования аудиосигнала. Устройство содержит устройство 1410 для кодирования в соответствии с одним из вышеописанных вариантов осуществления для кодирования огибающей аудиосигнала из аудиосигнала путем генерации одной или более разделяющих точек, и кодер 1420 вторичной характеристики сигнала для кодировки дополнительной характеристики аудиосигнала, дополнительная характеристика сигнала является отличной от огибающей аудиосигнала. Специалисту в данной области известно, что из огибающей аудиосигнала и из дополнительной характеристики аудиосигнала может быть восстановлен сам аудиосигнал. Например, огибающая сигнала может, например, указывать энергию сэмплов аудиосигнала. Дополнительная характеристика сигнала может, например, указывать для каждого сэмпла из, например, временной области аудиосигнала, имеет ли сэмпл положительное или отрицательное значение.
Фиг.1 иллюстрирует устройство для декодирования для получения восстановленной огибающей аудиосигнала в соответствии с вариантом осуществления.
Устройство содержит восстановитель 110 огибающей сигнала для генерации восстановленной огибающей аудиосигнала в зависимости от одной или более огибающих точек.
Кроме того, устройство содержит интерфейс 120 вывода для вывода восстановленной огибающей аудиосигнала.
Восстановитель 110 огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что одна или более разделяющих точек разделяют восстановленную огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала.
Предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала в зависимости от указанного сегмента огибающей сигнала.
Кроме того, восстановитель 110 огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше, чем половина абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
Относительно абсолютного значения a значение x сегмента огибающей сигнала означает:
Если x ≥ 0, то a = x;
Если x < 0, то a = -x;
Если все значения сегмента огибающей сигнала положительны, данная выше формулировка означает, что восстановленная огибающая аудиосигнала генерируется так, что для каждого из двух или более сегментов огибающей сигнала, его значение сегмента огибающей сигнала больше, чем половина значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
В частном варианте осуществления, значение сегмента огибающей сигнала каждого из сегментов огибающей сигнала равно значению сегмента огибающей сигнала каждого из других сегментов огибающей сигнала из двух или более сегментов огибающей сигнала.
Тем не менее, в более общем варианте осуществления Фиг.1, огибающая аудиосигнала восстанавливается так, что значения сегмента огибающей сигнала сегментов огибающей сигнала не совсем равны. Вместо этого, разрешен некоторый уровень допустимого отклонения (некоторый предел).
Формулировка, «так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение его значения сегмента огибающей сигнала больше, чем абсолютное значение сегмента огибающей сигнала каждого из других сегментов огибающей сигнала», может, например, толковаться, что пока наибольшее абсолютное значение из всех значений сегмента огибающей сигнала не больше в два раза наименьшего абсолютного значения из всех значений сегмента огибающей сигнала, требуемое условие соблюдено.
Например, набор из четырех значений сегмента огибающей сигнала {0.23; 0.28; 0.19; 0.30} удовлетворяет вышеупомянутому условию, поскольку 0.30 < 2∙0.19 = 0.38. Другой набор из четырех значений сегмента огибающей сигнала, тем не менее, {0.24; 0.16; 0.35; 0.25} не удовлетворяет требуемому условию, поскольку 0.35 > 2 ∙ 0.16 = 0.32.
На стороне декодера, восстановитель 110 огибающей сигнала сконфигурирован для восстановления восстановленной огибающей аудиосигнала так, что сегменты огибающей аудиосигнала, полученные от разделяющих точек, делящих восстановленную огибающую аудиосигнала, имеют строго равные значения сегментов огибающей сигнала. Следовательно, значение сегмента огибающей сигнала каждого из двух или более сегментов огибающей сигнала больше, чем половина значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала из двух или более сегментов огибающей сигнала.
В таком варианте осуществления, значения сегмента огибающей сигнала сегментов огибающей сигнала должны быть примерно равны, но не строго равны.
Требование, что значения сегментов огибающей сигнала сегментов огибающей сигнала должны быть почти равны, показывает декодеру, как должен быть восстановлен сигнал. Когда сегменты огибающей сигнала восстанавливаются так, что значения сегмента огибающей сигнала строго равны, степень свободы в восстановлении сигнала на стороне декодера строго ограничена.
Чем больше значения сегмента огибающей могут отличаться друг от друга, тем больше свободы имеет декодер для адаптации огибающей аудио сегмента в соответствии со спецификацией на стороне декодера. Например, когда кодируется спектральная огибающая аудиосигнала, некоторые декодеры предпочитают размещать больше, например, энергии на нижнем диапазоне частот, тогда как другие декодеры предпочитают размещать больше, например, энергии на верхнем диапазоне частот. И, если разрешить некоторый допуск, ограниченное число ошибок округления, например, вызванных квантованием и/или деквантованием, могут быть допустимы.
В варианте осуществления, в котором восстановитель 110 огибающей сигнала восстанавливает довольно точно, восстановитель 110 огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение его значения сегмента огибающей сигнала больше чем 90% абсолютного значения сегмента огибающей сигнала каждого из сегментов огибающей сигнала.
В соответствии с вариантом осуществления, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение его значения сегмента огибающей сигнала больше чем 99% абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
В другом варианте осуществления, однако, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что значение сегмента огибающей сигнала каждого из двух или более сегментов огибающей сигнала равно значению сегмента огибающей сигнала каждого из других сегментов огибающей сигнала из двух или более сегментов огибающей сигнала.
В варианте осуществления, значение сегмента огибающей сигнала каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала может, например, зависеть от одного или более значений энергии или одного или более значений мощности указанного сегмента огибающей сигнала.
В соответствии с вариантом осуществления, восстановленная огибающая аудиосигнала может, например, быть представлена в спектральной области или во временной области.
Фиг.2 иллюстрирует устройство для декодирования в соответствии с дополнительным вариантом осуществления, в котором устройство дополнительно содержит декодер 105 разделяющих точек для декодирования одной или более закодированных точек в соответствии с правилом декодирования для получения одной или более разделяющих точек.
В соответствии с вариантом осуществления, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для генерации восстановленной огибающей аудиосигнала в зависимости от полного значения энергии, указывающего полную энергию восстановленной огибающей аудиосигнала, или в зависимости от любого другого значения, подходящего для восстановления исходного или целевого уровня огибающей аудиосигнала.
Теперь, чтобы проиллюстрировать настоящее изобретение более детально, представлены частные варианты осуществления.
Согласно частному варианту осуществления, концепция заключается в разделении полосы частот на две части так, что обе половины имеют равную энергию. Данная концепция отражена на Фиг. 6(a), где огибающая, то есть вся форма сигнала, описывается блоками с постоянной энергией.
Данная концепция может затем рекурсивно быть применена так, что обе из двух половин дополнительно разделяются на две половины, которые имеют равную энергию. Этот подход проиллюстрирован на Фиг.6(b).
В более общем виде, спектр может быть разделен на N блоков так, что каждый блок имеет 1/N-ую энергии. На Фиг.6, это проиллюстрировано с N = 5.
Чтобы восстановить эти блочные постоянные спектральные огибающие в декодере, частотные границы блоков и, например, общая энергия могут, например, быть переданы. В таком случае, частотные границы соответствуют, но только в эвристическом смысле, LSF представлению LPC.
До сих пор, объяснения предоставлялись относительно огибающей abs(x)2 энергии сигнала x. Тем не менее, в других вариантах осуществления моделируется амплитудная огибающая abs(x), в некоторых других мощность abs(x)n спектра или любое перцепционно мотивированное представление (например, громкость). Вместо энергии, можно сослаться к термину «спектральная масса» и предположить, что он описывает соответствующее представление спектра. Важно лишь, что можно посчитать совокупную сумму спектральных представлений, то есть, что представление имеет только положительные значения.
Тем не менее, если последовательность не положительна, она может быть обращена в положительную последовательность добавлением значительно большой постоянной, взятием ее совокупной суммы или другими подходящими операциями. Подобным образом, комплексная последовательность может быть обращена в, например,
1) две последовательности, из которых одна чисто действительная и одна чисто мнимая, или
2) две последовательности, из которых первая представляет амплитуду, а вторая фазу. Эти две последовательности в обоих случаях затем могут быть смоделированы как две отдельные огибающие.
Также нет необходимости ограничивать модель моделями огибающей спектра, любая форма огибающей может быть описана текущей моделью. Например, временное формирование шумового сигнала (TNS) [6] - стандартный инструмент в аудио кодеках, которые моделируют временную огибающую сигнала. Поскольку настоящий способ моделирует огибающие, он может с тем же успехом также быть применен к сигналам временной области.
Подобным образом, в способах расширения полосы пропускания (BWE) применяются огибающие спектра для моделирования формы спектра более высоких частот и, таким образом, предложенный способ также может быть применен для BWE.
Фиг.17 иллюстрирует устройство для определения одного или более кодирующих значений для кодирования огибающей аудиосигнала в соответствии с вариантом осуществления.
Устройство содержит агрегатор 1710 для определения агрегированного значения для каждого из множества значений аргумента. Множество значений аргумента упорядочено так, что первое значение аргумента множества значений аргумента или предшествует, или следует за вторым значением аргумента из множества значений аргумента, когда указанное второе значение аргумента отличается от первого значения аргумента.
Значение огибающей присваивается каждому из значений аргумента, причем значение огибающей каждого из значений аргумента зависит от огибающей аудиосигнала, и причем агрегатор сконфигурирован для определения агрегированного значения для каждого значения аргумента из множества значений аргумента в зависимости от значения огибающей указанного значения аргумента и в зависимости от значения огибающей каждого из множества значений аргумента, которые предшествуют указанному значению аргумента.
Более того, устройство содержит кодирующий блок 1720 для определения одного или более кодирующих значений в зависимости от одного или более агрегированных значений из множества значений аргумента. Например, кодирующий блок 1720 может генерировать вышеописанную одну или более разделяющих точек как одно или более кодирующих значений, например, как описано выше.
Фиг.18 иллюстрирует агрегирующую функцию 1810 в соответствии с первым примером.
Среди прочего, Фиг.18 иллюстрирует 16 точек огибающей аудиосигнала. Например, 4-ая точка огибающей аудиосигнала обозначена ссылочным обозначением 1824, а 8-ая точка огибающей обозначена ссылочным обозначением 1828. Каждая точка огибающей содержит значение аргумента и значение огибающей. Другими словами, значение аргумента может рассматриваться как x-компонент, а значение огибающей может рассматриваться как y-компонент точки огибающей в xy - координатной системе. Таким образом, как можно увидеть на Фиг.18, значение аргумента 4-ой точки 1824 огибающей - 4, а значение огибающей 4-ой точки огибающей - 3. Как другой пример, значение аргумента 8-ой точки 1828 огибающей - 8, а значение огибающей 8-ой точки огибающей - 2. В других вариантах осуществления, значения аргумента могут не указывать порядковый номер как на Фиг.18, но могут, например, указывать центральную частоту спектральной полосы, если, например, рассматривается спектральная огибающая, так что, например, первое значение аргумента может тогда быть 300 Гц, второе значение аргумента может быть 500 Гц, и т.д. Или, например, в других вариантах осуществления, значения аргумента могут указывать точки во времени, если, например, рассматривается временная огибающая.
Агрегирующая функция 1810 содержит множество точек агрегации. Например, рассмотрим 4-ую точку 1814 агрегации и 8-ую точку 1818 агрегации. Каждая точка агрегации содержит значение аргумента и значение агрегации. Аналогично описанному выше, значение аргумента может быть рассмотрено как x-компонент, а значение агрегации может быть рассмотрено как y-компонент точки агрегации в xy - координатной системе. На Фиг. 18, значение аргумента 4-ой точки 1814 агрегации - 4, а значение агрегации 8-ой точки 1818 агрегации - 7. В качестве другого примера, значение аргумента 8-ой точки огибающей - 8, а значение огибающей 4-ой точки огибающей - 13.
Значение агрегации каждой точки агрегации агрегирующей функции 1810 зависит от значения огибающей точки огибающей, имеющей такое же значение аргумента, как рассматриваемая точка агрегации, и дополнительно зависит от значения огибающей каждого из множества значений аргумента, которые предшествуют указанному значению аргумента. В примере Фиг.18, относительно 4-ой точки 1814 агрегации, ее значение агрегации зависит от значения огибающей 4-ой точки 1824 огибающей, так как эта точка огибающей имеет такое же значение аргумента, как точка агрегации, и дополнительно зависит от значений огибающей точек 1821, 1822 и 1823 огибающей, так как значения аргумента этих точек 1821, 1822, 1823 огибающей предшествует значению аргумента точки 1824 огибающей.
В примере с Фиг.18, значение агрегации каждой точки агрегации определено суммированием значения огибающей соответствующей точки огибающей и значениями огибающей предшествующих ей точек огибающей. Таким образом, значение агрегации 4-ой точки агрегации - 1+2+1+3 = 7 (так как значение огибающей 1-ой точки огибающей - 1, так как значение огибающей 2-ой точки огибающей - 2, так как значение огибающей 3-ой точки огибающей - 1, так как значение огибающей 4-ой точки огибающей - 3). Соответственно, значение агрегации 8-ой точки агрегации - 1+2+1+3+1+2+1+2 = 13.
Агрегирующая функция монотонно увеличивается. Это, например, значит, что каждая точка агрегации агрегирующей функции (которая имеет предшествующий элемент) имеет значение агрегации, которое больше или равно значению агрегации непосредственно предшествующей точки агрегации. Например, относительно агрегирующей функции 1810, например, значение агрегации 4-ой точки 1814 агрегации больше или равно значению агрегации 3-ей точки агрегации; значение агрегации 8-ой точки 1818 агрегации больше или равно значению агрегации 7-ой точки 1817 агрегации, и так далее, и это остается истинно для всех точек агрегации агрегирующей функции.
Фиг.19 демонстрирует другой пример агрегирующей функции, в данном случае агрегирующую функцию 1910. В примере с Фиг.19, значение агрегации каждой точки агрегации определено суммированием квадрата значения огибающей соответствующей точки огибающей и квадратами значений огибающей предшествующих ей точек огибающей. Следовательно, для, например, получения значения агрегации 4-ой точки 1914 агрегации, квадрат значения огибающей соответствующей точки 1924 огибающей, и квадраты значений огибающей предшествующих ей точек 1921, 1922 и 1923 суммируются, приводя в результате к 22 + 12 + 22 + 12 = 10. Таким образом, значение агрегации 4-ой точки 1914 агрегации на Фиг.19 равно 10. На Фиг.19, ссылочные обозначения 1931, 1933, 1935 и 1936 указывают квадраты значений огибающей соответствующих точек огибающих в указанном порядке.
Что также может быть видно из Фиг. 18 и 19, это то, что агрегирующие функции предоставляют эффективное решение для определения разделяющих точек. Разделяющие точки являются примером для кодирующих значений. На Фиг.18, наибольшее значение агрегации из всех разделяющих точек (это может быть, например, общая энергия) равно 20.
Например, если только одна разделяющая точка должна быть определена, это значение аргумента точки агрегации может, например, быть выбрано как разделяющая точка, которая равна или близка к 10 (50% от 20). На Фиг.18, это значение аргумента будет составлять 6, и единственная разделяющая точка, например, будет равна 6.
Если три разделяющие точки должны быть определены, значения аргумента точек агрегации могут быть выбраны как разделяющие точки, которые равны или близки к 5, 10 и 15 (25%, 50% и 75% от 20), соответственно. На Фиг.18, эти значения аргумента должны быть одним из 3 или 4, 6 и 11. Следовательно, выбранные разделяющие точки будут либо 3, 6 и 11, либо 4, 6 и 11. В других вариантах осуществления, не целочисленные значения могут быть допустимы в качестве разделяющих точек, и тогда на Фиг.18 определенные разделяющие точки будут, например, 3.33, 6 и 11.
Так, в соответствии с некоторыми вариантами осуществления, агрегатор может, например, быть сконфигурирован для определения агрегированного значения для каждого значения аргумента множества значений аргумента путем добавления значения огибающей указанного значения аргумента и значений огибающей из значений аргумента, которые предшествуют указанному значению аргумента.
В варианте осуществления, значение огибающей каждого из значений аргумента может, например, указывать значение энергии огибающей аудиосигнала, имея огибающую аудиосигнала в качестве огибающей сигнала.
В соответствии с вариантом осуществления, значение огибающей каждого из значений аргумента может, например, указывать n-ую мощность спектрального значения огибающей аудиосигнала, имея огибающую аудиосигнала в качестве огибающей сигнала, где n - четное целое число больше нуля.
В варианте осуществления, значение огибающей каждого из значений аргумента может, например, указывать n-ую мощность значения амплитуды огибающей аудиосигнала, представленную во временной области, и имея огибающую аудиосигнала в качестве огибающей сигнала, где n - четное целое число больше нуля.
В соответствии с вариантом осуществления, кодирующий блок может, например, быть сконфигурирован для определения одного или более кодирующих значений в зависимости от одного или более агрегированных значений аргумента и в зависимости от числа кодирующих значений, которое указывает, как много значений должны быть определены кодирующим блоком в качестве одного или более кодирующих значений.
В варианте осуществления, кодирующий блок может, например, быть сконфигурирован для определения одного или более кодирующих значений в соответствии с
где c(k) указывает k-ое кодирующее значение, определяемое блоком кодирования, где j указывает j-ое значение аргумента из множества значений аргумента, где a(j) указывает агрегированное значение, присвоенное j-ому значению аргумента, где max(a) указывает максимальное значение, являющееся одним из агрегированных значений, которые присвоены одному из значений аргумента, причем ни одно из агрегированных значений, которые присвоены одному из значений аргумента, не превышает максимального значения, и где
Фиг.16 иллюстрирует устройство для генерации огибающей аудиосигнала из одного или более кодирующих значений в соответствии с вариантом осуществления.
Устройство содержит интерфейс 1610 ввода для приема одного или более кодирующих значений, и генератор 1620 огибающей для генерации огибающей аудиосигнала в зависимости от одного или более кодирующих значений.
Генератор 1620 огибающей сконфигурирован для генерации агрегирующей функции в зависимости от одного или более кодирующих значений, причем агрегирующая функция содержит множество точек агрегации, причем каждая из точек агрегации содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает.
Каждое из одного или более кодирующих значений указывает по меньшей мере одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции. Это значит, что каждое из кодирующих значений точно определяет значение аргумента одной из точек агрегации или точно определяет значение агрегации одной из точек агрегации или точно определяет и значение аргумента, и значение агрегации одной из точек агрегации агрегирующей функции. Другими словами, каждое из одного или более кодирующих значений указывает значение аргумента и/или значение агрегации одной из точек агрегации агрегирующей функции.
Кроме того, генератор 1620 огибающей сконфигурирован для генерации огибающей аудиосигнала так, что огибающая аудиосигнала содержит множество точек огибающей, причем каждая из точек огибающей содержит значение аргумента и значение огибающей, и причем для каждой из точек агрегации агрегирующей функции одна из точек огибающей аудиосигнала присвоена указанной точке агрегации так, что это значение аргумента указанной точки огибающей равно значению аргумента указанной точки агрегации. Более того, генератор 1620 огибающей сконфигурирован для генерации огибающей аудиосигнала так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации по меньшей мере одной точки агрегации агрегирующей функции.
В соответствии с вариантом осуществления, генератор 1620 огибающей может, например, быть сконфигурирован для определения агрегирующей функции путем определения одной из точек агрегации для каждого из одного или более кодирующих значений в зависимости от указанного кодирующего значения, и путем применения интерполяции для получения агрегирующей функции в зависимости от точки агрегации каждого из одного или более кодирующих значений.
В соответствии с вариантом осуществления, интерфейс 1610 ввода может быть сконфигурирован для приема одного или более разделяющих значений в качестве одного или более кодирующих значений. Генератор 1620 огибающей может быть сконфигурирован для генерации агрегирующей функции в зависимости от одного или более разделяющих значений, причем каждое из одного или более разделяющих значений указывают значение агрегации одной из точек агрегации агрегирующей функции. Более того, генератор 1620 огибающей может быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что одна или более разделяющие точки делят восстановленную огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала. Предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала в зависимости от указанного сегмента огибающей сигнала. Кроме того, генератор 1620 огибающей может быть сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше, чем половина абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
В варианте осуществления, генератор 1620 огибающей может, например, быть сконфигурирован для определения первой производной агрегирующей функции на множестве точек агрегации агрегирующей функции.
В соответствии с вариантом осуществления, генератор 1620 огибающей может, например, быть сконфигурирован для генерации агрегирующей функции в зависимости от кодирующих значений так, что агрегирующая функция имеет непрерывную первую производную.
В других вариантах осуществления, LPC модель может быть получена из квантованных огибающих спектра. Путем взятия обратного преобразования Фурье спектра abs(x)2 мощности, достигается автокорреляция. Из этой автокорреляции, LPC модель может быть легко рассчитана традиционными способами. Такая LPC модель затем может быть использована для создания гладкой огибающей.
В соответствии с некоторыми вариантами осуществления, гладкая огибающая может быть получена моделированием блоков со сплайнами или другими способами интерполяции. Интерполяции более традиционно делаются путем моделирования совокупной суммы спектральной массы.
Фиг.7 иллюстрирует тот же спектр, что на Фиг.6, но с совокупными массами. Линия 710 иллюстрирует линию совокупной массы исходной огибающей сигнала. Точки 721 на (a), 751, 752, 753 на (b), и 781, 782, 783, 784 на (c) указывают, где должны быть расположены разделяющие точки.
Размер шагов между точками 738, 721 и 729 на y-оси на (a) постоянен. Таким же образом, размер шагов между точками 768, 751, 752, 753 и 759 на y-оси на (b) постоянен. Таким же образом, размер шагов между точками 798, 781, 782, 783, 784 и 789 на y-оси на (c) постоянен. Пунктирная линия между точками 729 и 739 указывает общее значение.
На (a), точка 721 указывает положение разделяющей точки 731 на x-оси. На (b), точки 751, 752 и 753 указывают положение разделяющих точек 761, 762 и 763 на x-оси, соответственно. Аналогично, на (c), точки 781, 782, 783 и 784 указывают положение разделяющих точек 791, 792, 793 и 794 на x-оси, соответственно. Пунктирные линии между точками 729 и 739, точками 759 и 769, и точками 789 и 799, соответственно, указывают общее значение.
Нужно отметить, что точки 721; 751, 752, 753; 781, 782, 783 и 784, указывающие положение разделяющих точек 731; 761, 762, 763; 791, 792, 793 и 794, соответственно, всегда расположены на линии совокупной массы исходной огибающей сигнала, и размер шагов на y-оси постоянен.
В этой области, совокупная спектральная масса может быть интерполирована любым традиционным алгоритмом интерполяции.
Для получения непрерывного представления исходной области, совокупная область должна иметь непрерывную первую производную. Например, интерполяция может быть сделана с использованием сплайнов, так что для k-ого блока, конечные точки сплайна являются kE/N и (k+1)E/N, где E является общей массой спектра. Более того, производная сплайна в конечных точках может быть определена, для того чтобы получить непрерывную огибающую в исходной области.
Одна возможность заключается в точном определении производной (наклон (tilt)) для разделяющей точки k как
где c(k) является совокупной энергией в разделяющей точке k, а f(k) является частотой разделяющей точки k.
В более широком смысле, точки k-1, k и k+1 могут быть любым видом кодирующих значений.
В соответствии с вариантом осуществления, генератор 1620 огибающей сконфигурирован для определения огибающей аудиосигнала путем определения соотношения первой разности и второй разности. Указанная первая разность является разностью между первым значением (c(k+1)) агрегации первой из точек агрегации агрегирующей функции и вторым значением (c(k-1) или c(k)) агрегации второй из точек агрегации агрегирующей функции. Указанная вторая разность является разностью между первым значением (f(k+1)) аргумента указанной первой из точек агрегации агрегирующей функции и вторым значением (f(k-1) или f(k)) аргумента указанной второй из точек агрегации агрегирующей функции.
В частном варианте осуществления, генератор 1620 огибающей сконфигурирован для определения огибающей аудиосигнала путем применения
где tilt(k) указывает производную агрегирующей функции в k-ом кодирующем значении, где c(k+1) является указанным первым значением агрегации, где f(k+1) является указанным первым значением аргумента, где с(k-1) является указанным вторым значением агрегации, где f(k-1) является указанным вторым значением аргумента, где k является целым числом, указывающим индекс одного из одного или более кодирующих значений, где
Например, c(k+1) является указанным первым значением агрегации, присвоенным k+1-ому кодирующему значению. f(k+1) является указанным первым значением аргумента, присвоенным k+1-ому кодирующему значению. c(k-1) является указанным вторым значением агрегации, присвоенным k-1-ому кодирующему значению. f(k-1) является указанным вторым значением аргумента, присвоенным k-1-ому значению кодирования.
В другом варианте осуществления, генератор 1620 огибающей сконфигурирован для определения огибающей аудиосигнала путем применения
где tilt(k) указывает производную агрегирующей функции в k-ом кодирующем значении, где c(k+1) является указанным первым значением агрегации, где f(k+1) является указанным первым значением аргумента, где c(k) является указанным вторым значением агрегации, где f(k) является указанным вторым значением аргумента, где с(k-1) является третьим значением агрегации третьей точки агрегации агрегирующей функции, где f(k-1) является третьим значением аргумента указанной третьей точки агрегации агрегирующей функции, где k является целым числом, указывающим индекс одного из одного или более кодирующих значений, где
Например, c(k+1) является указанным первым значением агрегации, присвоенным k+1-ому кодирующему значению. f(k+1) является указанным первым значением аргумента, присвоенным k+1-ому кодирующему значению. c(k) является указанным вторым значением агрегации, присвоенным k-ому кодирующему значению. f(k) является указанным вторым значением аргумента, присвоенным k-ому значению кодирования. c(k-1) является указанным третьим значением агрегации, присвоенным k-1-ому кодирующему значению. f(k-1) является указанным третьим значением аргумента, присвоенным k-1-ому значению кодирования.
Указание того, что значение агрегации присваивается k-ому кодирующему значению, например, значит, что k-ое кодирующее значение указывает упомянутое значение агрегации, и/или что k-ое кодирующее значение указывает значение аргумента точки агрегации, которой упомянутое значение агрегации принадлежит.
Указание того, что значение аргумента присваивается k-ому кодирующему значению, например, значит, что k-ое кодирующее значение указывает упомянутое значение аргумента, и/или что k-ое кодирующее значение указывает значение агрегации точки агрегации, которой упомянутое значение аргумента принадлежит.
В частных вариантах осуществления, кодирующие значения k-1, k и k+1 являются разделяющими точками, например, как описано выше.
Например, в варианте осуществления, восстановитель 110 огибающей сигнала с Фиг.1 может, например, быть сконфигурирован для генерации агрегирующей функции в зависимости от одной или более разделяющих точек, причем агрегирующая функция содержит множество точек агрегации, причем каждая из точек агрегации содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает, и причем каждая из одной или более разделяющих точек указывает по меньшей мере одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции.
В таком варианте осуществления, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для генерации огибающей аудиосигнала так, что огибающая аудиосигнала содержит множество точек огибающей, причем каждая из точек огибающей содержит значение аргумента и значение огибающей, и причем точка огибающей аудиосигнала присваивается каждой из точек агрегации агрегирующей функции так, что значение аргумента указанной точки огибающей равно значению аргумента указанной точки агрегации.
Кроме того, в таком варианте осуществления, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для генерации огибающей аудиосигнала так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации по меньшей мере одной точки агрегации агрегирующей функции.
В частном варианте осуществления, восстановитель 110 огибающей сигнала может, например, быть сконфигурирован для определения огибающей аудиосигнала путем определения отношения первой разности и второй разности, указанная первая разность является разностью между первым значением (c(k+1)) агрегации первой из точек агрегации агрегирующей функции и вторым значением (c(k-1); c(k)) агрегации второй из точек агрегации агрегирующей функции, и указанная вторая разность является разностью между первым значением (f(k+1)) аргумента указанной первой из точек агрегации агрегирующей функции и вторым значением (f(k-1);f(k)) аргумента указанной второй из точек агрегации агрегирующей функции. Для этой цели, восстановитель 110 огибающей сигнала может быть сконфигурирован для обеспечения выполнения одного из вышеописанных принципов, которые объяснены для генератора 1620 огибающей.
Самый левый и правый края не могут использовать вышеуказанное уравнение для наклона (производной), поскольку c(k) и f(k) недоступны за пределами их области определения. Эти c(k) и f(k), которые находятся вне области k, тогда заменяются непосредственно значениями в конечных точках, так что
и
Поскольку есть четыре ограничения (совокупная масса и наклон на обоих конечных точках), соответствующий сплайн может быть выбран многочленом 4-го порядка.
Фиг.8 иллюстрирует пример интерполированной огибающей спектральной массы в обеих областях (a) исходной и (b) совокупной массы.
На (a), исходная огибающая сигнала обозначена 810, а интерполированная огибающая спектральной массы обозначена 820. Разделяющие точки обозначены 831, 832, 833 и 834, соответственно. 838 указывает начало огибающей сигнала, а 839 указывает конец огибающей сигнала.
На (b), 840 указывает совокупную огибающую исходного сигнала, а 850 указывает совокупную огибающую спектральной массы. Разделяющие точки обозначены 861, 862, 863 и 864, соответственно. Положение разделяющих точек обозначено точками 851, 852, 853 и 854 на совокупной огибающей 840 исходного сигнала, соответственно. 868 указывает начало огибающей исходного сигнала, а 869 указывает конец огибающей исходного сигнала на x-оси. Линия между 869 и 859 указывает общее значение.
Варианты осуществления предоставляют принципы для кодирования тех частот, которые разделяют блоки. Частоты представляют список скалярных величин fk, то есть, fk < fk+1. Если имеется K+1 блоков, тогда имеется K разделяющих точек.
Дополнительно, если имеется N уровней квантования, тогда имеется
Следует отметить, что Переходный Управляемый Декоррелятор (TSD), инструмент в MPEG USAC [5], имеет схожую задачу кодирования K позиций с диапазоном от 0 до N-1, в результате чего такая же или схожая методика нумерации может быть использована для кодирования частот текущей задачи. Преимущество данного алгоритма кодирования в том, что он имеет постоянное потребление битов.
Альтернативно, для дополнительного улучшения точности или уменьшения битовой скорости, могут быть использованы традиционные методики векторного квантования, такие как те, что используются для квантования LSF. С таким подходом большее число уровней квантования может быть достигнуто, и квантование может быть оптимизировано с учетом среднего отклонения. Недостаток в том, что может, например, понадобиться хранить кодовые книги, тогда как подход TSD использует алгебраическую нумерацию последовательностей.
Дальше описаны алгоритмы в соответствии с вариантами осуществления.
Сначала, рассматривается основной случай применения.
В частности, нижеследующее описывает практическое применение предложенного способа квантования распределения для кодирования огибающей спектра в SBR-подобном сценарии:
В соответствии с некоторыми вариантами осуществления, кодер сконфигурирован для:
- вычисления амплитуды спектра или значений энергии ВЧ-полосы исходного аудиосигнала, и/или
- вычисления предварительно определенного (или произвольного и переданного) числа K индексов подполос, разделяющих огибающую спектра на K+1 блоков равной массы, и/или
- кодирования индексов с использованием такого же алгоритма, как в TSD [5], и/или
- квантования и кодирования общей массы ВЧ-полосы (например через код Хаффмана) с записью общей массы и индексов в битовый поток.
Согласно некоторым вариантам осуществления, декодер сконфигурирован для:
- считывания общей массы и индексов из битового потока и последующего декодирования, и/или
- аппроксимации гладкой кривой совокупной массы с помощью интерполяции сплайнов, и/или
- 1-ой производной кривой совокупной массы для восстановления огибающей спектра.
Некоторые варианты осуществления, кроме того, содержат опциональные дополнения:
Например, некоторые варианты осуществления предоставляют возможности деформации (искажения). Уменьшение числа возможных уровней квантования ведет к уменьшению необходимого числа битов для кодирования разделяющих точек и дополнительно уменьшает вычислительную сложность. Этот эффект может быть использован с помощью, например, искривления огибающей спектра с помощью психоакустической характеристики или просто с помощью суммирования смежных полос частот внутри кодера перед применением квантования распределения. После восстановления огибающей спектра из индексов разделяющих точек и общей массы на стороне декодера, огибающая должна быть восстановлена с помощью обратной характеристики.
Некоторые дополнительные варианты осуществления предоставляют адаптивное преобразование огибающей. Как ранее упоминалось, нет необходимости применять квантование распределения к энергиям огибающей спектра (то есть, abs(x)2 сигнала x), но любое другое (положительное, действительное) представление реализуемо (например, abs(x), sqrt(abs(x)),и т.д.). Чтобы иметь возможность использовать различные свойства подгонки формы различных представлений огибающей, имеет смысл использовать адаптивную методику преобразования. По этой причине, обнаружение наиболее соответствующего преобразования (из фиксированного, предварительно определенного набора) для текущей огибающей осуществляется как этап предварительной обработки, перед применением квантования распределения. Используемое преобразование должно быть указано и передано с помощью битового потока, чтобы обеспечить возможность корректного обратного преобразования на стороне декодера.
Дополнительные варианты осуществления сконфигурированы для поддержки адаптивного числа блоков. Для достижения более высокой гибкости предложенной модели, выгодно иметь возможность переключаться между различным числом блоков для каждой огибающей спектра. Выбранное в настоящее время число блоков может быть или из предварительно определенного набора, для уменьшения потребности в битах для указания, или явно переданным, для обеспечения большей гибкости. С одной стороны, это уменьшает суммарную битовую скорость для устойчивых форм, когда нет надобности в хорошей адаптации. С другой стороны, меньшее число блоков ведет к большим массам блоков, что обеспечивает более точную подгонку сильных единичных пиков с крутыми склонами.
Некоторые варианты осуществления сконфигурированы для предоставления стабилизации огибающей. Вследствие более высокой гибкости предложенной модели квантования распределения по сравнению с, например, подходом, основанным на полосе частот с коэффициентами масштабирования, флуктуации между смежными по времени огибающими могут вести к нежелательным нестабильностям. Чтобы противодействовать этому эффекту, адаптивная к сигналу методика стабилизации огибающей применяется как этап постобработки. Для устойчивых частей сигнала, где предполагается незначительное число флуктуаций, огибающая стабилизируется сглаживанием соседних по времени значений огибающей. Для частей сигнала, которые обычно включают в себя сильные временные изменения, как, например, транзиенты или сибилянтные/фрикативные начальные/конечные звуки, сглаживание не применяется или применяется слабо.
Далее, описан алгоритм реализующий квантование распределения и кодирование огибающей в соответствии с вариантом осуществления.
Описание практической реализации предложенного способа квантования распределения для кодирования огибающей спектра в SBR-подобном сценарии. Нижеследующее описание алгоритма ссылается на этапы со стороны кодера и декодера, которые могут, например, быть проведены для обработки одной конкретной огибающей:
Далее, описан соответствующий кодер:
Определение и предварительная обработка огибающей может, например, быть осуществлена следующим образом:
- определение энергии спектра целевой огибающей кривой (например, представленной 20 сэмплами подполос) и ее соответствующей полной энергии.
- применение деформации огибающей с помощью попарного усреднения значений подполос для уменьшения общего числа значений (например, усреднение верхних 8 значений подполос, и таким образом, уменьшение общего числа с 20 до 16).
- применение преобразования амплитуды огибающей для лучшего соответствия между эффективностью модели огибающей и перцепционным критерием качества (например, извлечение корня 4-ой степени каждого значения подполосы,).
Квантование и кодирование распределения может, например, быть проведено следующим образом:
- многократное определение индексов подполос, разделяющих огибающую на предварительно определенное число блоков равной массы (например, 4-кратное повторение определения для разделения огибающей на 3, 4, 5 и 8 блоков).
- полное восстановление распределения квантованных огибающих (подход “анализ через синтез”, см. ниже).
- определение и принятие решения о числе блоков, что приводит к наиболее точному описанию огибающей (например, путем сравнения перекрестных корреляций огибающих, подвергнутых квантованию распределения, и оригинала).
- коррекция громкости путем сравнения оригинала и огибающей, подвергнутой квантованию распределения, и согласно адаптации полной энергии.
- кодирование индексов разделения с использованием того же алгоритма, что и в инструменте TSD (см. [5]).
- сигнализация числа блоков, используемых для квантования распределения (например, 4 предварительно определенных числа блоков, сигнализируемых с помощью 2 битов).
- квантование и кодирование полной энергии (например, с использованием кодирования Хаффмана.
Теперь, описывается соответствующий декодер.
Декодирование и обратное квантование может, например, быть проведено следующим образом:
- декодирование числа блоков, используемого для квантования распределения, и декодирование полной энергии.
- декодирование индексов разделения с использованием такого же алгоритма, как в инструменте TSD (см. [5]).
- аппроксимация гладкой кривой совокупной массы с помощью интерполяции сплайном.
- восстановление огибающей спектра из совокупной области с помощью первой производной (например, взятием разности последовательных сэмплов).
Постобработка может, например, быть проведена следующим образом:
- применение стабилизации огибающей для противодействия отклонениям между последовательными огибающими, вызванным ошибками квантования (например, с помощью временного сглаживания восстановленных значений подполос,
- обращение преобразования огибающей в соответствии с применением в кодере.
- обращение деформации огибающей в соответствии с применением в декодере.
Далее, описано эффективное кодирование и декодирование разделяющих точек. Кодер 225 разделяющих точек с Фиг.4 и Фиг.5 может, например, быть сконфигурирован для обеспечения выполнения эффективного кодирования, как описано ниже. Декодер 105 разделяющих точек с Фиг.2 может, например, быть сконфигурирован для обеспечения выполнения эффективного декодирования, как описано ниже.
В варианте осуществления, проиллюстрированного на Фиг.2, устройство для декодирования дополнительно содержит декодер 105 разделяющих точек для декодирования одной или более кодированных точек согласно правилу декодирования для получения одной или более разделяющих точек. Декодер 105 разделяющих точек сконфигурирован для анализа общего числа положений, указывающего общее число возможных положений разделяющих точек. Кроме того, декодер 105 разделяющих точек сконфигурирован для генерации указания одного или более положений разделяющих точек с использованием общего числа положений, числа разделяющих точек и номера состояния разделяющих точек. В частном варианте осуществления, декодер 105 разделяющих точек может, например, быть сконфигурирован для генерации указания двух или более положений разделяющих точек с использованием общего числа положений, числа разделяющих точек и номера состояния разделяющих точек.
В вариантах осуществления, проиллюстрированных на Фиг. 4 и Фиг. 5, устройство дополнительно содержит кодер 225 разделяющих точек для кодирования положений каждой из одной или более разделяющих точек для получения одной или более кодированных точек. Кодер 225 разделяющих точек сконфигурирован для кодирования положения каждой из одной или более разделяющих точек кодированием номера состояния разделяющих точек. Кроме того, кодер 225 разделяющих точек сконфигурирован для предоставления общего числа положений, указывающего число из одной или более разделяющих точек. Номер состояния разделяющих точек, общее число положений и число разделяющих точек вместе указывают положение каждой из одной или более разделяющих точек.
Фиг.15 иллюстрирует устройство для восстановления аудиосигнала согласно варианту осуществления. Устройство содержит устройство 1510 для декодирования согласно одному из вышеописанных вариантов осуществления или согласно вариантам осуществления, описанным ниже, для получения восстановленной огибающей аудиосигнала и генератор 1520 сигнала для генерации аудиосигнала в зависимости от огибающей аудиосигнала и в зависимости от дополнительной характеристики сигнала, причем дополнительная характеристика сигнала отличается от огибающей аудиосигнала. Как уже подчеркнуто выше, специалисту в данной области известно, что из огибающей сигнала может быть восстановлен сам сигнал. Например, огибающая сигнала может, например, указывать энергию сэмплов аудиосигнала. Дополнительная характеристика аудиосигнала может, например, указывать для каждого сэмпла, например, аудиосигнала временной области, имеет ли сэмпл положительное или отрицательное значение.
Некоторые частные варианты осуществления основаны на том, что общее число положений, указывающее общее число возможных положений разделяющих точек, и число разделяющих точек, указывающее общее число разделяющих точек, может быть доступно в устройстве для декодирования согласно настоящему изобретению. Например, кодер может передать общее число положений и/или число разделяющих точек устройству для декодирования.
Основываясь на этих исходных допущениях, некоторые варианты осуществления обеспечивают выполнение следующих принципов:
Пусть N будет (общим) числом возможных положений разделяющих точек, и пусть P будет (общим) числом разделяющих точек.
Предполагается, что устройству для кодирования, так же как устройству для декодирования, известны значения N и P.
Зная N и P, можно вывести, что имеется только
Например, если положения из числа возможных положений разделяющих точек пронумерованы от 0 до N-1, и если P=8, тогда первая возможная комбинация положений разделяющей точки с событиями будет (0, 1, 2, 3, 4, 5, 6, 7), вторая будет (0, 1, 2, 3, 4, 5, 6, 8), и т.д., до комбинации (N-8, N-7, N-6, N-5, N-4, N-3, N-2, N-1), так что в общем имеется
Также применимо решение, которое заключается в том, что номер состояния разделяющих точек может быть закодирован устройством для кодирования и что номер состояния разделяющих точек передается декодеру. Если каждая из возможных
Иными словами, проблема кодирования положений разделяющей точки может быть решена кодированием дискретного числа P положений pk в диапазоне [0…N-1] так, что положения не перекрывают pk≠ph для k≠h, наименьшим возможным числом бит. Поскольку последовательность положений не имеет значения, отсюда следует, что число уникальных комбинаций положений является биноминальным коэффициентом
Некоторые варианты осуществления используют принцип кодирования положения за положением. Принцип кодирования положения за положением. Этот принцип основан на следующих выводах:
Предположим, что N является (общим) числом возможных положений разделяющей точки, а P является числом разделяющих точек (это значит, что N может быть общим числом FSN положений, а P может быть числом ESON разделяющих точек). Рассматривается первое возможное положение разделяющей точки. Можно выделить два случая:
Если первое возможное положение разделяющей точки является положением, которое не содержит разделяющей точки, тогда, что касается оставшихся N-1 возможных положений разделяющей точки, имеется только
Тем не менее, если возможное положение разделяющей точки является положением, содержащим разделяющую точку, тогда, относительно оставшихся N-1 возможных положений разделяющей точки, имеется только
Основываясь на этом выводе, варианты осуществления дополнительно основаны на решении, что все комбинации с первым возможным положением разделяющей точки, где не находится разделяющей точки, должны быть закодированы номерами состояния разделяющих точек, которые меньше или равны пороговому значению. В варианте осуществления, все номера состояния разделяющих точек могут быть положительными целыми числами или 0, а подходящее пороговое значение относительно первого положения разделяющей точки может быть
В варианте осуществления определено, содержит ли положение первой возможной разделяющей точки кадра разделяющую точку с помощью проверки, больше ли номер состояния разделяющих точек, чем пороговое значение. (Альтернативно, процесс кодирования/декодирования вариантов осуществления также может быть реализован с помощью проверки, является ли номер состояния разделяющих точек большим или равным, меньшим или равным, или меньшим, чем пороговое значение.)
После анализа первого возможного положения разделяющей точки, декодирование продолжается для второго возможного положения разделяющей точки с использованием адаптированных значений. Кроме адаптации числа рассматриваемых положений разделяющей точки (которое уменьшено на единицу), число разделяющих точек также уменьшается на единицу, и номер состояния разделяющих точек адаптируется, в случае если номер состояния разделяющих точек больше, чем пороговое значение, чтобы удалить часть, относящуюся к первому возможному положению разделяющей точки, из номера состояния разделяющих точек. Процесс декодирования может быть продолжен для следующих возможных положений разделяющей точки схожим образом.
В варианте осуществления, дискретное число P положений pk кодируется в диапазоне [0 … N-1] так, что положения не перекрываются pk≠ph для k≠h. При этом, каждая уникальная комбинация положений в данном диапазоне называется состоянием, а каждое возможное положение в этом диапазоне называется возможным положением разделяющей точки (pspp). Согласно варианту осуществления устройства для декодирования, рассматривается первое возможное положение разделяющей точки в диапазоне. Если возможное положение разделяющей точки не имеет разделяющей точки, тогда диапазон может быть уменьшен до N-1, и число возможных состояний уменьшается до
Для каждого pspp h
Если состояние >
Присвоить разделяющую точку pspp h
Обновить оставшееся состояние
состояние:= состояние -
Уменьшить число оставшихся положений P := P-1
Конец
Конец
Вычисление биноминального коэффициента на каждой итерации будет затратным. Поэтому, согласно вариантам осуществления, следующие правила могут быть использованы для обновления биноминального коэффициента с использованием значения с предыдущей итерации:
За счет использования этих формул, каждое обновление биноминальных коэффициентов стоит только одну операцию умножения и деления, тогда как точное вычисление будет стоить P умножений и делений на каждой итерации.
В этом варианте осуществления, общей сложностью декодера является P умножений и делений для инициализации биномиального коэффициента, для каждой итерации 1 умножение, деление и условный оператор, и для каждого кодированного положения 1 умножение, сложение и деление. Следует отметить, что в теории, можно было бы уменьшить число делений, необходимых для инициализации, до одного. Однако на практике, этот подход приведет к очень большим целым числам, которые трудно обрабатывать. Таким образом, в худшем случае сложность декодера - N+2P делений и N+2P умножений, P сложений (можно пренебречь, если используются MAC-операции (операции совмещенного умножения-сложения)), и N условных операторов.
В варианте осуществления, алгоритм кодирования, используемый устройством для кодирования, должен перебирать не все возможные положения разделяющей точки, а только те, которые имеют присвоенное им положение. Вследствие этого,
Для каждого положения ph, h=1 … P
Обновить состояние состояние:= состояние +
В худшем случае. сложностью кодера является P·(P-1) умножений и P·(P-1) делений, а также P-1 сложений.
Фиг.9 иллюстрирует процесс декодирования согласно варианту осуществления настоящего изобретения. В этом варианте осуществления, декодирование осуществляется на основе метода «положение за положением».
На этапе 110, значения инициализируются. Устройство для декодирования хранит номер состояния разделяющих точек, который оно принимает в качестве входного значения, в переменной s. Более того, (общее) число разделяющих точек, которое указано числом разделяющих точек, хранится в переменной p. Кроме того, общее число возможных положений разделяющей точки, содержащихся в кадре, которое указано общим числом положений, хранится в переменной N.
На этапе 120, значение spSepData[t] инициализируется нулем для всех возможных положений разделяющей точки. Битовый массив spSepData является выходными данными, которые будут сгенерированы. Он указывает для каждого возможного положения t разделяющей точки, содержит ли возможное положение разделяющей точки разделяющую точку (spSepData[t] = 1) или не содержит (spSepData[t] = 0). На этапе 120 соответствующие значения всех возможных положений разделяющей точки инициализируются 0.
На этапе 130 переменная k инициализируется значением N-1. В этом варианте осуществления, N возможных положений разделяющей точки пронумерованы 0, 1, 2, …, N-1. Установка k = N-1 означает, что сначала рассматривается возможное положение разделяющей точки с наибольшим номером.
На этапе 140, рассматривается, является ли k ≥ 0. Если k < 0, декодирование положений разделяющей точки завершено, и процесс завершается, в противном случае процесс продолжается на этапе 150.
На этапе 150, проверяется, является ли p>k. Если p больше, чем k, значит, все оставшиеся возможные положения разделяющей точки содержат разделяющую точку. Процесс продолжится на этапе 230, на котором все значения полей spSepData оставшихся возможных положений разделяющей точки 0, 1, …, k устанавливаются в 1, что указывает на то, что каждое из оставшихся возможных положений разделяющей точки содержит разделяющую точку. В этом случае, после этого процесс завершается. Тем не менее, если на этапе 150 определится, что p не больше, чем k, процесс декодирования продолжится на этапе 160.
На этапе 160, рассчитывается значение
На этапе 170 проверяется, больше ли или равно c текущее значение номера s состояния разделяющих точек, где c является пороговым значением, только что рассчитанным на этапе 160.
Если s меньше, чем c, значит рассмотренное возможное положение разделяющей точки (с разделяющей точкой k) не содержит разделяющую точку. В этом случае, не должно предприниматься никаких дальнейших действий, поскольку spSepData[k] уже установлен в 0 для этого возможного положения разделяющей точки на этапе 140. Тогда, процесс продолжится на этапе 220. На этапе 220, k устанавливается равным k:=k-1, и рассматривается следующее возможное положение разделяющей точки.
Тем не менее, если проверка на этапе 170 показывает, что s больше или равно c, это значит, что рассматриваемое возможное положение k разделяющей точки содержит разделяющую точку. В этом случае, номер s состояния обновляется и устанавливается равным значению s:=s-c на этапе 180. Кроме того, spSepData[k] устанавливается равным 1 на этапе 190 для указания, что возможное положение k разделяющей точки содержит разделяющую точку. Более того, на этапе 200, p устанавливается равным p-1, что указывает на то, что оставшиеся для рассмотрения возможные положения теперь содержат только p-1 возможных положений разделяющей точки с разделяющими точками.
На этапе 210 проверяется является ли p равным 0. Если p равен 0, оставшиеся возможные положения разделяющей точки не содержат разделяющих точек, и процесс декодирования завершается.
В противном случае, по меньшей мере одно из оставшихся возможных положений разделяющей точки содержит событие, и процесс продолжается на этапе 220, на котором процесс декодирования продолжается со следующим возможным положением (k-1) разделяющей точки.
Процесс декодирования согласно варианту осуществления, проиллюстрированному на Фиг. 9, генерирует массив spSepData в качестве выходного значения, показывающего для каждого возможного положения k разделяющей точки, содержит ли возможное положение разделяющей точки разделяющую точку (spSepData[k]=1) или нет (spSepData[k]=0).
Фиг.10 иллюстрирует псевдокод, обеспечивающий выполнение декодирования положений разделяющей точки согласно варианту осуществления.
Фиг.11 иллюстрирует процесс кодирования для кодирования разделяющих точек согласно варианту осуществления. В этом варианте осуществления, кодирование осуществляется на основе метода «положение за положением». Целью процесса кодирования согласно варианту осуществления, проиллюстрированному на Фиг.11, является генерация номера состояния разделяющих точек.
На этапе 310, инициализируются значения. p_s инициализируется 0 (нулем). Номер состояния разделяющих точек генерируется путем последовательного обновления переменной p_s. Когда процесс кодирования завершен, p_s будет содержать номер состояния разделяющих точек. Этап 310 также инициализирует переменную k, устанавливая k равной k:=число разделяющих точек -1.
На этапе 320, переменная «pos» устанавливается равной pos:=spPos[k], где spPos является массивом, содержащим положения возможных положений разделяющей точки, которые содержат разделяющие точки.
Положения разделяющих точек в массиве хранятся в возрастающем порядке.
На этапе 330, проводится проверка, при которой проверяется, является ли k≥pos. Если это так, процесс завершается. В противном случае, процесс продолжается на этапе 340.
На этапе 340, вычисляется значение c=
На этапе 350, переменная p_s обновляется и устанавливается равной p_s:=p_s+c.
На этапе 360, k устанавливается равной k:=k-1.
Затем, на этапе 370, проводится проверка, при которой проверяется, является ли k≥0. В этом случае, рассматривается следующее возможное положение k-1 разделяющей точки. В противном случае, процесс завершается.
Фиг.12 изображает псевдокод, обеспечивающий выполнение кодирования положений разделяющей точки согласно варианту осуществления настоящего изобретения.
Фиг.13 иллюстрирует декодер 410 разделяющих точек согласно варианту осуществления.
Общее число FSN положений, указывающее общее число возможных положений разделяющей точки, число ESON разделяющих точек, указывающее (общее) число разделяющих точек, и номер ESTN состояния разделяющих точек вводятся в декодер 410 разделяющих точек. Декодер 410 разделяющих точек содержит разделитель 440. Разделитель 440 приспособлен для деления кадра на первую часть, содержащую первый набор возможных положений разделяющей точки, и на вторую часть, содержащую второй набор возможных положений разделяющей точки, и причем возможные положения разделяющей точки, которые содержат разделяющие точки, определяются отдельно для каждой из частей. За счет этого, положения разделяющих точек могут быть определены многократным делением частей на равные меньшие части.
«Основанное на делении» декодирование в декодере 410 разделяющих точек согласно этому варианту осуществления основано на следующих принципах:
Основанное на делении декодирование опирается на идею, что множество всех возможных положений разделяющей точки разделено на две части A и B, причем каждая часть содержит множество возможных положений разделяющей точки, где часть A содержит Na возможных положений разделяющей точки, и где часть B содержит Nb возможных положений разделяющей точки, и так что Na + Nb = N. Множество всех возможных положений разделяющей точки может быть произвольно разделено на две части, предпочтительно так, что часть A и B имеют примерно одинаковое общее число возможных положений разделяющей точки (например, так что Na = Nb или Na = Nb-1). Путем разделения множества всех возможных положений разделяющей точки на две части, задача определения действительных положений разделяющей точки также разделяется на две подзадачи, а именно определения действительных положений разделяющей точки в части A кадра и определения действительных положений разделяющей точки в части B кадра.
В этом варианте осуществления, вновь предполагается, что декодеру 105 разделяющих точек известно общее число возможных положений разделяющей точки, общее число разделяющих точек и номер состояния разделяющих точек. Для решения обеих подзадач, декодер 105 разделяющих точек должен быть осведомлен о числе возможных положений разделяющей точки каждой части, числе разделяющих точек в каждой части и номере состояния разделяющих точек каждой части (такой номер состояния разделяющих точек части теперь указывается как «номер подсостояния разделяющих точек»).
Поскольку декодер разделяющих точек сам делит набор всех возможных разделяющих точек на две части, он сам по себе знает, что часть A содержит Na положений возможной разделяющей точки и что часть B содержит Nb положений возможной разделяющей точки. Определение числа действительных разделяющих точек для каждой из двух частей опирается на следующие выводы:
Поскольку множество всех возможных положений разделяющей точки было разделено на две части, каждое из действительных положений разделяющей точки теперь располагается или в части A, или в части B. Более того, при условии, что P является числом разделяющих точек части, а N является общим числом положений возможных разделяющих точек этой части, и что f(P,N) является функцией, которая возвращает число различных комбинаций положений разделяющей точки, тогда числом различных комбинаций разделения полного набора возможных положений разделяющей точки (который был разделен на часть A и часть B) является:
Опираясь на вышеупомянутые соображения, согласно варианту осуществления, все комбинации с первой конфигурацией, где часть А имеет 0 разделяющих точек и где часть В имеет Р разделяющих точек, должны быть кодированы с номером состояния разделяющих точек, меньшим чем первое пороговое значение. Номер состояния разделяющих точек может быть кодирован как целочисленное значение, положительным или 0. Поскольку здесь имеется только f(0,Na)·f(P,Nb) комбинаций с первой конфигурацией, подходящим первым пороговым значением может быть f(0,Na)·f(P,Nb).
Все комбинации со второй конфигурацией, где часть А имеет 1 разделяющую точку и где часть В имеет Р-1 разделяющих точек, должны быть кодированы с номером состояния разделяющих точек, большим или равным первому пороговому значению, но меньшим чем или равным второму пороговому значению. Так как имеется только f(1,Na)·f(P-1,Nb) комбинаций со второй конфигурацией, подходящим вторым значением может быть f(0,Na)·f(P,Nb) + f(1,Na)·f(P-1,Nb). Номер состояния разделяющих точек для комбинаций с другими конфигурациями определяется подобным образом.
Согласно варианту осуществления, декодирование выполняется путем разделения набора всех возможных положений разделяющей точки на две части А и В. Затем проверяется, меньше ли номер состояния разделяющих точек, чем первое пороговое значение. В предпочтительном варианте осуществления, первое пороговое значение может быть f(0,Na)·f(P,Nb).
Если номер состояния разделяющих точек меньше, чем первое пороговое значение, тогда может быть сделан вывод, о том, что часть А содержит 0 разделяющих точек, а часть В содержит все Р разделяющих точек. Затем декодирование производится для обеих частей с соответственно определенным числом, представляющим число разделяющих точек соответствующей части. Более того, первый номер состояния разделяющих точек определен для части А, а второй номер состояния разделяющих точек определен для части В, которые соответственно используются в качестве нового номера состояния разделяющих точек. В этом документе номер состояния разделяющих точек части указывается как «номер подсостояния разделяющих точек».
Однако, если номер состояния разделяющих точек больше или равен первому пороговому значению, номер состояния разделяющих точек может быть обновлен. В предпочтительном варианте осуществления, номер состояния разделяющих точек может быть обновлен путем вычитания значения из номера состояния разделяющих точек, предпочтительно путем вычитания первого порогового значения, например f(0,Na)·f(P,Nb). На следующем этапе проверяется, является ли обновленный номер состояния разделяющих точек меньшим, чем второе пороговое значение. В предпочтительном варианте осуществления, второе пороговое значение может быть f(1,Na)·f(P-1,Nb). Если номер состояния разделяющих точек меньше, чем второе пороговое значение, может быть выведено, что часть А имеет одну разделяющую точку и часть В имеет Р-1 разделяющих точек.
Затем декодирование проводится для обеих частей с соответственно определенными числами разделяющих точек каждой части. Первый номер подсостояния разделяющих точек используется для декодирования части А, и второй номер подсостояния разделяющих точек используется для декодирования части В. Однако, если номер состояния разделяющих точек больше или равен второму пороговому значению, номер состояния разделяющих точек может быть обновлен. В предпочтительном варианте осуществления, номер состояния разделяющих точек может быть обновлен путем вычитания значения из номера состояния разделяющих точек, предпочтительно f(1,Na)·f(P-1,Nb). Процесс декодирования аналогичным образом применяется к оставшимся возможностям распределения разделяющих точек относительно двух частей.
В варианте осуществления, номер состояния разделяющих точек для части А и номер состояния разделяющих точек для части В могут быть использованы для декодирования части А и части В, причем оба из рассматриваемых номеров состояния определены путем совершения деления:
номер состояния разделяющих точек/f (число разделяющих точек части В, Nb)
Предпочтительно, номер подсостояния разделяющих точек части А является целой частью вышеупомянутого деления, и номер подсостояния разделяющих точек части B является остатком этого деления. Номер состояния разделяющих точек, используемый в этом делении, может быть исходным номером состояния разделяющих точек кадра или обновленным номером состояния разделяющих точек, например, обновленным путем вычитания одного или более пороговых значений, как описано выше.
Чтобы проиллюстрировать вышеописанный принцип основанного на делении декодирования, рассматривается ситуация, в которой набор всех возможных положений разделяющей точки имеет две разделяющие точки. Более того, если f(p,N) снова является функцией, которая возвращает число различных комбинаций положений разделяющей точки части, где р является числом разделяющих точек части кадра, и N является общим числом разделяющих точек этой части; то для каждого из возможных распределений положений получается следующее число возможных комбинаций:
Таким образом, можно сделать вывод, что если кодированный номер состояния разделяющих точек кадра меньше, чем f(0,Na)·f(2,Nb), тогда положения разделяющих точек должны быть распределены как 0 и 2. В противном случае, f(0,Na)·f(2,Nb) вычитается из номера состояния разделяющих точек, и результат сравнивается с f(1,Na)·f(1,Nb). Если он меньше, тогда положения распределены как 1 и 1. В противном случае, у нас остается только распределение 2 и 0, и положения распределены как 2 и 0.
В нижеследующем, представлен псевдокод согласно варианту осуществления для декодирования положений разделяющих точек (тут: «sp»). В псевдокоде, «sp_a» является (предполагаемым) числом разделяющих точек в части A и «sp_b» является (предполагаемым) числом разделяющих точек в части B. В этом псевдокоде, (например, обновленный) номер состояния разделяющих точек именуется «state». Номера подсостояния разделяющих точек частей A и B однако совместно кодируются в переменной «state». Согласно совместной схеме кодирования варианта осуществления, номер подсостояния разделяющих точек А (здесь именуется «state_a») является целой частью деления state/f(sp_b, Nb), и номер подсостояния разделяющих точек В (здесь именуется «state_b») является остатком от этого деления. Поэтому, длина (общее число разделяющих точек части) и число кодированных положений (число разделяющих точек в части) обеих частей могут быть декодированы тем же подходом:
Функция х = decodestate(state, sp, N)
1. Деление вектора на две части длины Na и Nb.
2. Для sp_a от 0 до sp
a. sp_b = sp - sp_a
b. если state < f(sp_a,Na)*f(sp_b,Nb), тогда прервать цикл «для».
c. state := state - f(sp_a,Na)*f(sp_b,Nb)
3. Число возможных состояний для части В равно no_states_b = f(sp_b,Nb)
4. Состояния, state_a и state_b, частей А и В, соответственно, являются целой частью и остатком деления state/no_states_b.
5. Если Na > 1, тогда декодируемый вектор части А получается рекурсивно из xa = decodestate(state_a,sp_a,Na)
Иначе (Na==1), и вектор ха является скаляром, и можно задать xa=state_a.
6. Если Nb > 1, тогда декодируемый вектор части В получается рекурсивно из xb = decodestate(state_b,sp_b,Nb)
Иначе (Nb==1), и вектор хb является скаляром, и можно задать xb=state_b.
7. Окончательный вывод х получается слиянием ха и xb в x = [xa xb].
Выходным результатом этого алгоритма является вектор, который имеет единицу (1) в каждом кодированном положении (другими словами, в положении разделяющей точки) и нуль (0) в другом месте (другими словами, в возможных положениях разделяющей точки, которые не содержат разделяющих точек).
Далее представлен псевдокод согласно варианту осуществления для кодирования положений разделяющей точки, в котором используются аналогичные имена переменных с аналогичным значением, упомянутым выше:
Функция state = encodestate(x,N)
1. Деление вектора на две части xa и xb длины Na и Nb.
2. Подсчет разделяющих точек в частях A и B в sp_a и sp_b, и установка sp=sp_a+sp_b.
3. Установка state равной 0.
4. Для k от нуля до sp_a-1
а. state := state + f(k,Na)*f(sp-k,Nb)
5. Если Na > 1, кодирование части А с помощью state_a = encodestate(xa, Na);
Иначе (Na==1), установка state_a= xa.
6. Если Nb > 1, кодирование части B с помощью state_b = encodestate(xb, Nb);
Иначе (Nb==1), установка state_b= xb.
7. Совместное кодирование состояний
state := state + state_a*f(sp_b,Nb) + state_b
Здесь предполагается, что аналогично алгоритму декодера, каждое кодированное положение (другими словами, положение разделяющей точки) характеризуется единицей (1) в векторе x, а все остальные элементы - нули (0) (например, возможные положения разделяющей точки, которые не содержат разделяющую точку).
Вышеупомянутые рекурсивные способы, сформулированные в псевдокоде, могут быть легко реализованы в не рекурсивной манере, с использованием стандартных способов.
Согласно варианту осуществления, функция f(p,N) может быть реализована как таблица поиска. Когда положения не перекрываются, как в текущем контексте, тогда функция f(p,N) числа состояний просто является биноминальной функцией, которая может быть оперативно рассчитана. При этом
Согласно варианту осуществления настоящего изобретения, и кодер, и декодер имеют цикл «для», когда рассчитывается произведение f(p-k,Na)*f(k,Nb) для последовательных значений k. Для эффективного вычисления, это может быть записано как
Другими словами, последовательные члены для вычитания/сложения (на этапе 2b и 2c в декодере, и на этапе 4a в кодере) могут быть рассчитаны тремя умножениями и одним делением на итерацию.
Возвращаясь к Фиг.1, альтернативные варианты осуществления используют устройство с Фиг.1 для декодирования для получения восстановленной огибающей аудиосигнала другим образом. В таких вариантах осуществления, как уже разъяснялось ранее, устройство содержит восстановитель 110 огибающей сигнала для генерации восстановленной огибающей аудиосигнала в зависимости от одной или более разделяющих точек, и интерфейс 120 вывода для вывода восстановленной огибающей аудиосигнала.
К тому же, восстановитель 110 огибающей сигнала конфигурируется для генерации восстановленной огибающей аудиосигнала так, что одна или более разделяющих точек делит огибающую аудиосигнала на два или более сегмента огибающей аудиосигнала, причем предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала из двух или более сегментов огибающей сигнала в зависимости от указанного сегмента огибающей сигнала.
В таких альтернативных вариантах осуществления, тем не менее, предварительно определенное значение сегмента огибающей присваивается каждому из двух или более сегментов огибающей сигнала.
В таких вариантах осуществления, восстановитель 110 огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого сегмента огибающей аудиосигнала из двух или более сегментов огибающей сигнала абсолютное значение сегмента огибающей сигнала указанного сегмента огибающей сигнала больше чем 90% абсолютного значения предварительно определенного значения сегмента огибающей, присвоенного указанному сегменту огибающей сигнала, и так, что абсолютное значение сегмента огибающей сигнала указанного сегмента огибающей сигнала меньше чем 110% абсолютного значения предварительно определенного значения сегмента огибающей, присвоенного указанному сегменту огибающей сигнала. Это обеспечивает некоторое отклонение от предварительно определенного значения сегмента огибающей.
В частном варианте осуществления, тем не менее, восстановитель 110 огибающей сигнала сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что значение сегмента огибающей каждого из двух или более сегментов огибающей сигнала равен предварительно определенному значению сегмента огибающей, присвоенному указанному сегменту огибающей сигнала.
Например, могут быть приняты три разделяющие точки, которые делят огибающую аудиосигнала на четыре сегмента огибающей аудиосигнала. Правило присвоения может указывать, что предварительно определенное значение сегмента огибающей первого сегмента огибающей сигнала - 0.15, что предварительно определенное значение сегмента огибающей второго сегмента огибающей сигнала - 0.25, что предварительно определенное значение сегмента огибающей третьего сегмента огибающей сигнала - 0.25, и что предварительно определенное значение сегмента огибающей четвертого сегмента огибающей сигнала - 0.35. При приеме трех разделяющих точек, восстановитель 110 огибающей сигнала затем восстанавливает огибающую сигнала соответственно согласно вышеописанным принципам.
В другом варианте осуществления, может быть принята одна разделяющая точка, которая делит огибающую аудиосигнала на два сегмента огибающей аудиосигнала. Правило присвоения может указывать, что предварительно определенное значение сегмента огибающей первого сегмента огибающей сигнала - p, что предварительно определенное значение сегмента огибающей второго сегмента огибающей сигнала - (1-p). Например, если p=0.4, тогда 1-p = 0.6. Так же, при приеме трех разделяющих точек, восстановитель 110 огибающей сигнала затем восстанавливает огибающую сигнала соответственно согласно вышеописанным принципам.
Такие альтернативные варианты осуществления, которые используют предварительно определенные значения сегмента огибающей могут использовать любой из ранее описанных принципов.
В варианте осуществления, предварительно определенные значения сегмента огибающей по меньшей мере двух сегментов огибающей сигнала отличаются друг от друга.
В другом варианте осуществления, предварительно определенное значение сегмента огибающей каждого из сегментов огибающей сигнала отличается от предварительно определенного значения сегмента огибающей каждого из других сегментов огибающей сигнала.
Хотя некоторые аспекты были описаны в контексте устройства, следует понимать, что эти аспекты также представляют описание соответствующего способа, причем блок или прибор соответствуют этапу способа или признаку этапа способа. Аналогично, аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или признака соответствующего устройства.
Сигнал, разложенный согласно изобретению, может храниться на цифровом носителе информации или может быть передан в среду передачи, такую как беспроводная среда передачи или проводная среда передачи, такая как Интернет.
В зависимости от определенных требований реализации, варианты осуществления изобретения могут быть реализованы аппаратными средствами или программными средствами. Реализация может быть осуществлена с использованием цифрового носителя информации, например, дискеты, DVD, CD, ROM, PROM, EPROM, EEPROM или FLASH памяти, содержащего хранящиеся на нем электронно-читаемые управляющие сигналы, которые взаимодействуют (или способны взаимодействовать) с программируемой компьютерной системой так, чтобы осуществлялся соответствующий способ.
Некоторые варианты осуществления согласно изобретению содержат не-временный носитель данных, содержащий электронно-читаемые управляющие сигналы, которые способны взаимодействовать с программируемой компьютерной системой так, что выполняется один описанных тут способов.
В общем случае, варианты осуществления настоящего изобретения могут быть выполнены как компьютерный программный продукт с программным кодом, причем программный код функционирует для выполнения одного из способов, когда компьютерный программный продукт запущен на компьютере. Программный код может, например, храниться на машиночитаемом носителе.
Другие варианты осуществления включают в себя компьютерную программу для выполнения одного из способов, описанных тут, хранящуюся на машиночитаемом носителе.
Другими словами, вариант осуществления заявленного способа является, следовательно, компьютерной программой, содержащей программный код для выполнения одного из способов, описанных тут, когда компьютерная программа запущена на компьютере.
Дополнительным вариантом осуществления заявленных способов является, следовательно, носитель данных (или цифровой запоминающий носитель, или компьютерно-читаемый носитель), содержащий записанную на нем компьютерную программу для выполнения одного из описанных тут способов.
Дополнительным вариантом осуществления заявленного способа является, следовательно, поток данных или последовательность сигналов, представляющая компьютерную программу для выполнения одного из способов, описанных тут. Поток данных или последовательность сигналов может, например, быть сконфигурирована с возможностью передачи через соединение для передачи данных, например через Интернет.
Дополнительный вариант осуществления содержит средство обработки, например компьютер, или программируемое логическое устройство, сконфигурированное для или адаптированное для выполнения одного из описанных тут способов.
Еще один вариант осуществления содержит компьютер с установленной на нем компьютерной программой для выполнения одного из способов, описанных здесь.
В некоторых вариантах осуществления, программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может быть использовано для выполнения некоторых или всех функциональных возможностей способов, описанных здесь. В некоторых вариантах осуществления, программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором с целью выполнения одного из способов, описанных здесь. В общем случае, способы предпочтительно выполняются любым аппаратным устройством.
Вышеописанные варианты осуществления являются лишь иллюстративными для принципов настоящего изобретения. Следует понимать, что модификации и вариации механизмов и деталей, описанных здесь, будут ясны для специалистов в данной области. Следовательно, настоящее изобретение является ограниченным только рамками приложенной формулы изобретения, а не конкретными деталями, представленными посредством описания и объяснения вариантов осуществления в данном документе.
ССЫЛКИ
[1] Makhoul, John. "Linear prediction: A tutorial review." Proceedings of the IEEE 63.4 (1975): 561-580.
[2] Soong, Frank, and B. Juang. "Line spectrum pair (LSP) and speech data compression." Acoustics, Speech, and Signal Processing, IEEE International Conference on ICASSP'84.. Vol. 9. IEEE, 1984.
[3] Pan, Davis. "A tutorial on MPEG/Audio compression." Multimedia, IEEE 2.2 (1995): 60-74.
[4] M. Neuendorf, P. Gournay, M. Multrus, J. Lecomte, B. Bessette, R. Geiger, S. Bayer, G. Fuchs, J. Hilpert, N. Rettelbach, R. Salami, G. Schuller, R. Lefebvre, B. Grill. "Unified speech and audio coding scheme for high quality at low bitrates". In Acoustics, Speech and Signal Processing, 2009. ICASSP 2009. IEEE International Conference on (pp. 1-4). IEEE. April, 2009.
[5] Kuntz, A., Disch, S., Bäckström, T., & Robilliard, J. "The Transient Steering Decorrelator Tool in the Upcoming MPEG Unified Speech and Audio Coding Standard". In Audio Engineering Society Convention 131, October 2011.
[6] Herre, Jürgen, and James D. Johnston. "Enhancing the performance of perceptual audio coders by using temporal noise shaping (TNS)”. Audio Engineering Society Convention 101. 1996.
Изобретение относится к кодированию и декодированию огибающей аудиосигнала. Технический результат – улучшение кодирования и декодирования огибающей аудиосигналов. Устройство содержит интерфейс ввода для приема кодирующих значений и генератор огибающей для генерации огибающей аудиосигнала, сконфигурированный для генерации агрегирующей функции в зависимости от кодирующих значений, причем агрегирующая функция содержит множество точек агрегации, каждая из которых содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает и каждое из кодирующих значений указывает одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции, и для генерации огибающей аудиосигнала так, что огибающая аудиосигнала содержит множество точек огибающей, каждая из которых содержит значение аргумента и значение огибающей, при этом точка огибающей аудиосигнала присваивается каждой из точек агрегации агрегирующей функции так, что значение аргумента точки огибающей равно значению аргумента точки агрегации, и так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации одной точки агрегации агрегирующей функции. 6 н. и 12 з.п. ф-лы, 19 ил.
1. Устройство для генерации огибающей аудиосигнала из одного или более кодирующих значений, содержащее:
интерфейс (1610) ввода для приема упомянутого одного или более кодирующих значений и
генератор (1620) огибающей для генерации огибающей аудиосигнала в зависимости от упомянутого одного или более кодирующих значений,
причем генератор (1620) огибающей сконфигурирован для генерации агрегирующей функции в зависимости от упомянутого одного или более кодирующих значений, причем агрегирующая функция содержит множество точек агрегации, причем каждая из точек агрегации содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает и причем каждое из упомянутого одного или более кодирующих значений указывает по меньшей мере одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции,
причем генератор (1620) огибающей сконфигурирован для генерации огибающей аудиосигнала так, что огибающая аудиосигнала содержит множество точек огибающей, причем каждая из точек огибающей содержит значение аргумента и значение огибающей и причем для каждой из точек агрегации агрегирующей функции одна из точек огибающей аудиосигнала присвоена упомянутой точке агрегации так, что значение аргумента упомянутой точки огибающей равно значению аргумента упомянутой точки агрегации, и
причем генератор (1620) огибающей сконфигурирован для генерации огибающей аудиосигнала так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации по меньшей мере одной точки агрегации агрегирующей функции.
2. Устройство по п.1, в котором генератор (1620) огибающей сконфигурирован для определения агрегирующей функции путем определения одной из точек агрегации для каждого из упомянутого одного или более кодирующих значений в зависимости от упомянутого кодирующего значения и путем применения интерполяции для получения агрегирующей функции в зависимости от точки агрегации каждого из упомянутого одного или более кодирующих значений.
3. Устройство по п.1, в котором генератор (1620) огибающей сконфигурирован для определения первой производной агрегирующей функции на множестве точек агрегации агрегирующей функции.
4. Устройство по п.1, в котором генератор (1620) огибающей сконфигурирован для генерации агрегирующей функции в зависимости от кодирующих значений так, что агрегирующая функция имеет непрерывную первую производную.
5. Устройство по п.1, в котором генератор (1620) огибающей сконфигурирован для определения огибающей аудиосигнала путем определения отношения первой разности и второй разности, причем упомянутая первая разность является разностью между первым значением (c(k+1)) агрегации первой из точек агрегации агрегирующей функции и вторым значением (c(k-1); c(k)) агрегации второй из точек агрегации агрегирующей функции и упомянутая вторая разность является разностью между первым значением (f(k+1)) аргумента упомянутой первой из точек агрегации агрегирующей функции и вторым значением (f(k-1); f(k)) аргумента упомянутой второй из точек агрегации агрегирующей функции.
6. Устройство по п.5, в котором генератор (1620) огибающей сконфигурирован для определения огибающей аудиосигнала путем применения
где tilt(k) указывает производную агрегирующей функции при k-м кодирующем значении;
c(k+1) является упомянутым первым значением агрегации;
f(k+1) является упомянутым первым значением аргумента;
с(k-1) является упомянутым вторым значением агрегации;
f(k-1) является упомянутым вторым значением аргумента;
k является целым числом, указывающим индекс одного из упомянутого одного или более кодирующих значений;
7. Устройство по п.5, в котором генератор (1620) огибающей сконфигурирован для определения огибающей аудиосигнала путем применения
где tilt(k) указывает производную агрегирующей функции при k-м кодирующем значении;
c(k+1) является упомянутым первым значением агрегации;
f(k+1) является упомянутым первым значением аргумента;
c(k) является упомянутым вторым значением агрегации;
f(k) является упомянутым вторым значением аргумента;
с(k-1) является третьим значением агрегации третьей точки агрегации агрегирующей функции;
f(k-1) является третьим значением аргумента упомянутой третьей точки агрегации агрегирующей функции;
k является целым числом, указывающим индекс одного из упомянутого одного или более кодирующих значений;
8. Устройство по п.1, в котором интерфейс (1610) ввода сконфигурирован для приема одного или более разделяющих значений в качестве упомянутого одного или более кодирующих значений,
причем генератор (1620) огибающей сконфигурирован для генерации агрегирующей функции в зависимости от упомянутого одного или более разделяющих значений, причем каждое из упомянутого одного или более разделяющих значений указывает значение агрегации одной из точек агрегации агрегирующей функции,
причем генератор (1620) огибающей сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что упомянутая одна или более разделяющих точек делят восстановленную огибающую аудиосигнала на два или более сегментов огибающей аудиосигнала, причем предварительно определенное правило присвоения определяет значение сегмента огибающей сигнала для каждого сегмента огибающей сигнала из упомянутых двух или более сегментов огибающей в зависимости от упомянутого сегмента огибающей сигнала и
причем генератор (1620) огибающей сконфигурирован для генерации восстановленной огибающей аудиосигнала так, что для каждого из упомянутых двух или более сегментов огибающей сигнала абсолютное значение данного сегмента огибающей сигнала больше, чем половина абсолютного значения сегмента огибающей сигнала каждого из других сегментов огибающей сигнала.
9. Устройство для определения одного или более кодирующих значений для кодирования огибающей аудиосигнала, содержащее:
агрегатор (1710) для определения агрегированного значения для каждого из множества значений аргумента, причем множество значений аргумента упорядочено так, что первое значение аргумента из множества значений аргумента либо предшествует, либо следует за вторым значением аргумента из множества значений аргумента, когда упомянутое второе значение аргумента отличается от первого значения аргумента, причем значение огибающей присваивается каждому из значений аргумента, причем значение огибающей каждого из значений аргумента зависит от огибающей аудиосигнала и причем агрегатор (1710) сконфигурирован для определения агрегированного значения для каждого значения аргумента из множества значений аргумента в зависимости от значения огибающей упомянутого значения аргумента и в зависимости от значения огибающей каждого из множества значений аргумента, которые предшествуют упомянутому значению аргумента, и
кодирующий блок (1720) для определения одного или более кодирующих значений в зависимости от одного или более агрегированных значений из множества значений аргумента.
10. Устройство по п.9, в котором агрегатор (1710) сконфигурирован для определения агрегированного значения для каждого значения аргумента из множества значений аргумента путем суммирования значения огибающей упомянутого значения аргумента и значений огибающей значений аргумента, которые предшествуют упомянутому значению аргумента.
11. Устройство по п.9, в котором значение огибающей каждого из значений аргумента указывает n-ю мощность спектрального значения огибающей аудиосигнала, имеющей огибающую аудиосигнала в качестве огибающей сигнала, где n - четное целое число больше нуля.
12. Устройство по п.9, в котором значение огибающей каждого из значений аргумента указывает n-ю мощность амплитудного значения огибающей аудиосигнала, представленного во временной области, и имеющей огибающую аудиосигнала в качестве огибающей сигнала, где n - четное целое число больше нуля.
13. Устройство по п.9, в котором кодирующий блок (1720) сконфигурирован для определения упомянутого одного или более кодирующих значений в зависимости от одного или более агрегированных значений аргумента и в зависимости от числа кодирующих значений, которое указывает, как много значений должны быть определены кодирующим блоком (1720) как упомянутое одно или более кодирующих значений.
14. Устройство по п.13, в котором кодирующий блок сконфигурирован для определения упомянутого одного или более кодирующих значений в соответствии с
где c(k) указывает k-е кодирующее значение для определения кодирующим блоком;
j указывает j-е значение аргумента из множества значений аргумента;
a(j) указывает агрегированное значение, присвоенное j-му значению аргумента;
max(a) указывает максимальное значение, являющееся одним из агрегированных значений, которые присвоены одному из значений аргумента, причем ни одно из агрегированных значений, которые присвоены одному из значений аргумента, не превышает максимальное значение и
15. Способ генерации огибающей аудиосигнала из одного или более кодирующих значений, содержащий:
прием упомянутого одного или более кодирующих значений; и
генерацию огибающей аудиосигнала в зависимости от упомянутого одного или более кодирующих значений,
причем генерация огибающей аудиосигнала проводится путем генерации агрегирующей функции в зависимости от упомянутого одного или более кодирующих значений, причем агрегирующая функция содержит множество точек агрегации, причем каждая из точек агрегации содержит значение аргумента и значение агрегации, причем агрегирующая функция монотонно возрастает и причем каждое из упомянутого одного или более кодирующих значений указывает по меньшей мере одно из значения аргумента и значения агрегации одной из точек агрегации агрегирующей функции,
причем генерация огибающей аудиосигнала проводится так, что огибающая аудиосигнала содержит множество точек огибающей, причем каждая из точек огибающей содержит значение аргумента и значение огибающей и причем для каждой из точек агрегации агрегирующей функции одна из точек огибающей аудиосигнала присвоена упомянутой точке агрегации так, что значение аргумента упомянутой точки огибающей равно значению аргумента упомянутой точки агрегации, и
причем генерация огибающей аудиосигнала проводится так, что значение огибающей каждой из точек огибающей аудиосигнала зависит от значения агрегации по меньшей мере одной точки агрегации агрегирующей функции.
16. Способ определения одного или более кодирующих значений для кодирования огибающей аудиосигнала, содержащий:
определение агрегированного значения для каждого из множества значений аргумента, причем множество значений аргумента упорядочено так, что первое значение аргумента из множества значений аргумента либо предшествует, либо следует за вторым значением аргумента из множества значений аргумента, когда упомянутое второе значение аргумента отличается от первого значения аргумента, причем значение огибающей присваивается каждому из значений аргумента, причем значение огибающей каждого из значений аргумента зависит от огибающей аудиосигнала и причем агрегатор (1710) сконфигурирован для определения агрегированного значения для каждого значения аргумента из множества значений аргумента в зависимости от значения огибающей упомянутого значения аргумента и в зависимости от значения огибающей каждого из множества значений аргумента, которые предшествуют упомянутому значению аргумента, и
определение одного или более кодирующих значений в зависимости от одного или более агрегированных значений из множества значений аргумента.
17. Компьютерно-читаемый носитель, содержащий компьютерную программу для реализации способа по п. 15 при исполнении на компьютере или сигнальном процессоре.
18. Компьютерно-читаемый носитель, содержащий компьютерную программу для реализации способа по п. 16 при исполнении на компьютере или сигнальном процессоре.
US 5710863 A1, 20.01.1998 | |||
АУДИОКОДЕР ДЛЯ КОДИРОВАНИЯ АУДИОСИГНАЛА, ИМЕЮЩЕГО ИМПУЛЬСОПОДОБНУЮ И СТАЦИОНАРНУЮ СОСТАВЛЯЮЩИЕ, СПОСОБЫ КОДИРОВАНИЯ, ДЕКОДЕР, СПОСОБ ДЕКОДИРОВАНИЯ И КОДИРОВАННЫЙ АУДИОСИГНАЛ | 2008 |
|
RU2439721C2 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
US 6978236 B1, 20.12.2005 | |||
Способ шлифования фасонных поверхностей | 1977 |
|
SU764941A1 |
Авторы
Даты
2018-07-31—Публикация
2014-06-10—Подача