АДАПТАЦИЯ ВЗВЕШИВАЮЩИХ ОКОН АНАЛИЗА ИЛИ СИНТЕЗА ДЛЯ КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ ПУТЕМ ПРЕОБРАЗОВАНИЯ
ADAPTATION OF WEIGHING ANALYSIS OR SYNTHESIS WINDOWS FOR ENCODING OR DECODING BY CONVERSION

Настоящее изобретение относится к обработке сигнала, в частности звукового сигнала (такого как речевой сигнал) и/или видеосигнала в виде последовательности выборок. В частности, изобретение относится к кодированию и декодированию цифрового звукового сигнала посредством преобразования, а также к адаптации анализа или синтеза к размеру трансформанты.
Кодирование преобразованием состоит в кодировании временных сигналов в преобразуемой (частотной) области. В частности, это преобразование позволяет использовать частотные характеристики звуковых сигналов с целью оптимизации и повышения эффективности кодирования. Например, используют то, что гармонический звук характеризуется в частотной области небольшим числом спектральных полос, которые можно кодировать в сжатом виде. Предпочтительно, используют, например, эффекты частотного маскирования для придания формы шуму кодирования таким образом, чтобы он ощущался как можно меньше.
Классически кодирование и декодирование преобразованием осуществляют путем применения пяти этапов:
- кодируемый цифровой поток звуковых сигналов (дискретизируемый по данной частоте дискретизации Fs) разбивают на фреймы из определенного числа конечных выборок (например, 2N). Классически каждый фрейм на 50% перекрывается предыдущим фреймом;
a
- к сигналу применяют этап преобразования. В случае преобразования, называемого MDCT (от ʺModified Discrete Cosine Transformʺ) - модифицированное дискретное преобразование косинусов, для каждого фрейма применяют взвешивающее окно h (называемое окном анализа) размером L=2N;
2N
a
N
Взвешенный фрейм «свертывают» согласно преобразованию 2N в N. «Свертывание» фрейма T размером 2N, взвешенного при помощи окна h, в фрейм T размером N, можно, например, осуществить следующим образом:
N
при этом к свернутому фрейму T применяют преобразование DCT IV, чтобы получить фрейм размером N в преобразуемой области. Его выражают следующим образом:
- после этого фрейм в преобразуемой области квантуют, используя соответствующий квантователь. Квантование позволяет уменьшить размер передаваемых данных, но привносит шум (ощущаемый или не ощущаемый на слух) в оригинальный фрейм. Чем выше скорость кодека, тем меньше этот шум и тем ближе к оригинальному фрейму квантованный фрейм;
N
- при декодировании к квантованному фрейму применяют обратное преобразование MDCT. Оно включает в себя два этапа: квантованный фрейм размером N преобразуют в фрейм размером N во временной области T*, используя обратное преобразование DCT IV (которое выражается так же, как прямое преобразование).
N
2N
s
После этого к временному фрейму T* размером N применяют второй этап «развертывания» от N к 2N. К фреймам T* размером 2N применяют взвешивающие окна h, называемые окнами синтеза, согласно следующему уравнению:
k∈[0; N/2-1].
- декодированный поток звуковых сигналов синтезируют путем сложения перекрывающих друг друга частей двух последовательных фреймов.
Следует отметить, что эта схема распространяется на преобразования с более значительным перекрыванием, такие как ELT, при которых фильтры анализа и синтеза имеют длину L=2KN при перекрывании (2K-1)N. Таким образом, преобразование MDCT является частным случаем преобразования ELT при K=1.
Для данного преобразования и данного перекрывания определяют окна анализа и синтеза, которые позволяют получить так называемую «идеальную» реконструкцию кодируемого сигнала (в отсутствие квантования).
Реконструкция может быть также «квази-идеальной», когда разницу между первоначальным X и воссозданным  сигналами можно считать ничтожной. Например, при кодировании потока звуковых сигналов разницу со степенью погрешности 50 дБ, меньшей степени погрешности обработанного сигнала X, можно считать ничтожной.
Например, в случае, когда окна анализа и синтеза не меняются на двух последовательных фреймах, они должны соблюдать следующие условия идеальной реконструкции:
k∈[0; N-1].
Таким образом, понятно, что в большинстве кодеков окна анализа и синтеза хранятся в памяти, их либо вычисляют заранее и записывают в запоминающее устройство ROM, либо инициализируют при помощи формул и опять-таки сохраняют в памяти RAM.
s
a
s
a
В большинстве случаев окна анализа и синтеза являются идентичными (h(k)=h(k)), если не считать иногда инверсии индекса (h(k)=h(2N-1-k)), при этом они требуют только одной области памяти размером 2N для их записи в запоминающее устройство.
Новые кодеки работают с разными размерами фреймов N как для управления несколькими частотами дискретизации, так и для адаптации размера окна анализа (и, следовательно, синтеза) к контенту аудио (например, в случае переходов). В этих кодеках в памяти ROM или RAM записано столько окон анализа и/или синтеза, сколько разных размеров имеют фреймы.
Для осуществления преобразования анализа или синтеза в памяти необходимо иметь коэффициенты (называемые также выборками) окон анализа или синтеза. Разумеется, в конкретной системе, использующей трансформанты разного размера, в памяти должно быть представлено взвешивающее окно для каждого из применяемых размеров.
В благоприятном случае, когда окна являются симметричными, в памяти необходимо иметь только L/2 коэффициентов, поскольку остальные L/2 коэффициентов можно вывести из этих записанных в памяти коэффициентов без арифметической операции. Так, при преобразовании MDCT (K=1), если потребуется трансформанта размером M и 2.M, то в памяти необходимо иметь (M+2M)=3M коэффициентов, если окна являются симметричными, а если нет - (2M+4M)=6M коэффициентов. Типичным примером при кодировании звуковых сигналов является M=320 или M=1024. Таким образом, в случае асимметрии это предполагает хранение в памяти соответственно 1920 и 6144 коэффициентов.
В зависимости от требуемой точности при отображении коэффициентов для каждого коэффициента необходимо 16 бит и даже 24 бит. Это требует наличия существенного объема памяти для недорогих вычислительных устройств.
Существуют методы прореживания окон анализа или синтеза.
При простом прореживании окна, например, если требуется перейти от N выборок к M (где N является кратным M), берут одну выборку из N/M, при этом N/M является целым числом >1.
Такое вычисление не позволяет соблюдать уравнение идеальной реконструкции, выраженное уравнением (3).
Например, в случае, когда окно синтеза является временной инверсией окна анализа, получают
при k∈[0; 2N-1].
Условие идеальной реконструкции принимает вид
при k∈[0; 2N-1].
Окном, классически применяемым при кодировании для соблюдения этого условия, является синусоидальное окно Мальвара
при k∈[0; 2N-1].
Если прореживание окна h(k) произвели, взяв одну выборку из N/M, это окно принимает вид
при k∈[0; 2N-1].
Чтобы h*(k) размером M проверяло условие идеальной реконструкции (по уравнению (3))
при k∈[0; M-1],
N/M должно быть равно 1; или же N/M определяют как целое число >1, то есть при такой децимации условие идеальной реконструкции не может быть проверено.
Иллюстративный пример в данном случае можно легко обобщить. Так, невозможно обеспечить свойство идеальной реконструкции, применяя прямое прореживание базового окна для получения окна меньшего размера.
Существуют также методы интерполяции взвешивающих окон. Такой метод описан, например, в опубликованной патентной заявке ЕР 2319039. Этот метод позволяет уменьшать размер окон, записанных в памяти ROM, если потребовалось окно большего размера.
Так, вместо того, чтобы хранить в памяти окно размером 2N или окно размером 4N, в патентной заявке предложено связать выборки из окна 2N с одной выборкой из двух из окна 4N и сохранить в памяти ROM только 2N недостающих выборок. Таким образом, размер области записи в памяти ROM уменьшается с 4N+2N до 2N+2N.
Однако такой метод тоже требует предварительного вычисления окна анализа и синтеза перед применением собственно преобразования.
Таким образом, существует потребность в хранении в памяти лишь небольшого числа окон анализа и окон синтеза для применения трансформант разного размера с одновременным соблюдением условий идеальной реконструкции. Кроме того, существует также необходимость избегать этапов предварительного вычисления этих окон перед кодированием путем преобразования.
Настоящее изобретение призвано улучшить данную ситуацию.
a
s
Для этого изобретением предложен способ кодирования или декодирования путем преобразования цифрового звукового сигнала с использованием взвешивающих окон анализа (h) или синтеза (h), применяемых для фреймов выборок. Способ включает в себя неравномерную дискретизацию (E10) первоначального окна, предусмотренного для трансформанты заданного первоначального размера N, с целью применения вторичного преобразования размером M, отличным от N.
Таким образом, на основании записанного в памяти первоначального окна, предусмотренного для трансформанты размером N, можно применить преобразование другого размера без осуществления предварительных вычислений и без хранения в памяти окон других размеров.
Всего одного окна любого размера достаточно для его адаптации к трансформантам разных размеров.
Неравномерная дискретизация позволяет соблюдать условия так называемой «идеальной» или «квази-идеальной» реконструкции во время декодирования.
С этапами вышеуказанного способа кодирования или декодирования можно комбинировать различные частные варианты выполнения, которые будут описаны ниже.
Согласно предпочтительному варианту выполнения, этап дискретизации включает в себя выбор, - на основании первого коэффициента d первоначального окна (где 0≤d<N/M), - определенной совокупности коэффициентов N-d-1, N+d, 2N-d-1, соблюдающей заранее определенное условие идеальной реконструкции.
Таким образом, при помощи совокупности коэффициентов можно определять окна, адаптированные для вторичных трансформант разных размеров, одновременно соблюдая условия идеальной реконструкции.
Предпочтительно, если M больше N, осуществляют прореживание первоначального окна, сохраняя, по меньшей мере, коэффициенты определенной совокупности для получения децимированного окна.
Таким образом, на основании записанного в памяти окна анализа или синтеза большего размера можно получить окно меньшего размера, которое тоже соблюдает условия идеальной реконструкции при декодировании.
В частном примере выполнения способ включает в себя выбор второй совокупности коэффициентов, отделенных от коэффициентов определенной совокупности постоянным промежутком, при этом прореживание производят, сохраняя дополнительно коэффициенты второй совокупности для получения прореженного окна.
Таким образом, можно получить прореживание, адаптированное к требуемому размеру трансформанты. Это позволяет наилучшим образом сохранить частотный отклик для полученных окон.
Согласно частному варианту выполнения, прореживание окна размером 2N для получения окна размером 2M осуществляют согласно следующим уравнениям:
при k∈[0; M/2-1]
где h* является прореженным окном анализа или синтеза, h является первоначальным окном анализа или синтеза,  является наиболее близким целым числом ≤X,  является наиболее близком целым числом ≥X, и d является значением первого коэффициента определенной совокупности.
Таким образом, можно получать окна разных размеров на основании окна большего размера, даже если число коэффициентов между первоначальным окном и получаемым окном не является кратным.
Если N меньше M, производят интерполяцию, вставляя коэффициент между каждым из коэффициентов определенной совокупности коэффициентов и каждым из коэффициентов совокупности смежных коэффициентов для получения интерполированного окна.
Интерполированное окно тоже отвечает условию идеальной реконструкции и может быть вычислено по ходу на основании записанного в памяти окна меньшего размера.
В частном варианте выполнения способ включает в себя выбор второй совокупности коэффициентов, отделенных постоянным промежутком от коэффициентов определенной совокупности, при этом интерполяцию осуществляют, вставляя дополнительно коэффициент между каждым из коэффициентов второй совокупности и каждым из коэффициентов совокупности смежных коэффициентов для получения интерполированного окна.
Таким образом, можно получить интерполяцию, адаптированную к размеру требуемой трансформанты. Это позволяет наилучшим образом сохранить частотный отклик получаемых окон.
Чтобы оптимизировать частотный отклик интерполированного окна, в частном варианте выполнения способ включает в себя вычисление дополнительного окна, содержащего коэффициенты, вычисленные на основании коэффициентов определенной совокупности и смежных коэффициентов, для интерполяции указанного окна.
В предпочтительном варианте выполнения этап неравномерной дискретизации и прореживание или интерполяцию первоначального окна осуществляют во время этапа осуществления временного свертывания или развертывания, применяемого для вычисления вторичной трансформанты.
Таким образом, прореживание или интерполяцию окна анализа или синтеза осуществляют одновременно с этапом собственно преобразования, то есть по ходу дела. Следовательно, нет необходимости в этапах предварительного вычисления перед кодированием, поскольку окна, адаптированные к размеру трансформанты, получают во время кодирования.
В примере выполнения осуществляют одновременно прореживание и интерполяцию первоначального окна во время этапа временного свертывания или развертывания, используемого для вычисления вторичной трансформанты.
Это обеспечивает больше возможностей для получения окон разных размеров на основании всего одного записанного в памяти окна.
В частном случае выполнения децимацию во время временного свертывания осуществляют в соответствии со следующим уравнением:
k∈[0; M/2-1],
M
2M
где T является фреймом из M выборок, T является фреймом из 2M выборок, а прореживание во время временного развертывания осуществляют в соответствии со следующим уравнением:
k∈[0; N/2-1],
M
2M
где T* является фреймом из M выборок, T* является фреймом из 2M выборок.
В предпочтительном примере выполнения, если вторичная трансформанта имеет размер M=3/2N, прореживание первоначального окна, а затем интерполяцию осуществляют во время временного свертывания согласно следующему уравнению:
k/2∈[0; N/2-1],
M
2M
где T является фреймом из M выборок, T является фреймом из 2M выборок, hcomp является дополнительным окном, и, если вторичная трансформанта имеет размер M=3/2N, прореживание во время временного развертывания осуществляют в соответствии со следующим уравнением:
k/2∈[0; N/2-1],
M
2M
где T является фреймом из M выборок, T является фреймом из 2M выборок, hcomp является дополнительным окном.
Объектом настоящего изобретения является также устройство кодирования или декодирования путем преобразования цифрового звукового сигнала с использованием взвешивающих окон анализа или синтеза, применяемых к фреймам выборок. Устройство содержит модуль дискретизации, выполненный с возможностью осуществления неравномерной дискретизации первоначального окна, предусмотренного для трансформанты данного первоначального размера N, с целью применения вторичного преобразования размером M, отличным от N.
Это устройство имеет те же преимущества, что и описанный выше способ.
Объектом изобретения является также компьютерная программа, содержащая командные коды для осуществления этапов описанного выше способа кодирования или декодирования, когда эти команды исполняет процессор.
Наконец, объектом изобретения является носитель для записи информации, считываемый процессором, встроенный или не встроенный в устройство кодирования или декодирования, в случае необходимости, съемный, содержащий записанную в нем компьютерную программу для осуществления описанного выше способа кодирования или декодирования.
Другие отличительные признаки и преимущества изобретения будут более очевидны из нижеследующего описания, представленного исключительно в качестве не ограничительного примера, со ссылками на прилагаемые чертежи, на которых:
фиг.1 - пример системы кодирования и декодирования для осуществления изобретения в варианте выполнения;
фиг.2 - пример децимации окна анализа и синтеза в соответствии с изобретением;
фиг.3 - неравномерная дискретизация окна анализа или синтеза для получения окна согласно варианту выполнения изобретения;
фиг.4(a) и 4(b) - неравномерная дискретизация окна анализа или синтеза с соотношением (2/3) в варианте выполнения изобретения. На фиг.4(a) показан подэтап децимации, а на фиг.4(b) показан подэтап интерполяции;
фиг.5 - пример физического выполнения устройства кодирования или декодирования в соответствии с изобретением.
На фиг.1 представлена система кодирования и декодирования преобразованием, в которой в памяти записано единственное окно анализа и единственное окно синтеза размером 2N.
2M
Цифровой поток X(t) звуковых сигналов дискретизируют при помощи модуля дискретизации 101 на частоте дискретизации Fs, в результате чего получают фреймы T(t) из 2M выборок. Классически каждый фрейм на 50% перекрывается предыдущим фреймом.
a
Затем при помощи блоков 102 и 103 к сигналу применяют этап преобразования. Блок 102 осуществляет дискретизацию записанного в памяти первоначального окна, предусмотренного для трансформанты размером N, с целью применения вторичного преобразования размером M, отличным от N. При этом осуществляют дискретизацию окна анализа h из 2N коэффициентов для его адаптации к фреймам из 2M выборок сигнала.
В случае, когда N является кратным M, речь идет о децимации, и в случае, когда N является субкратным M, речь идет об интерполяции. Предусмотрен случай, когда N/M может быть любым.
Далее со ссылками на фиг.2 и 3 следует подробное описание этапов, осуществляемых блоком 102.
Блок 102 осуществляет также свертывание на взвешенном фрейме согласно преобразованию 2M в M. Предпочтительно этот этап свертывания осуществляют в комбинации с этапом неравномерной дискретизации и прореживания или интерполяции, что будет показано ниже.
M
M
Таким образом, после прохождения через блок 102 сигнал имеет вид фрейма T(t) из M выборок. Затем блок 103 применяет преобразование, например, типа DCT IV, для получения фреймов T размером M в преобразуемой области, то есть в данном случае в частотной области.
Q
После этого модуль квантования 104 производит квантование этих фреймов для их передачи в декодер в виде индекса квантования I.
Декодер производит обратное квантование при помощи модуля 114 для получения фреймов  в преобразуемой области. Модуль обратного квантования 113 осуществляет, например, обратное преобразование DCT IV для получения фреймов во временной области.
s
Затем блок 112 осуществляет на фрейме развертывание M в 2M выборок. Взвешивающее окно синтеза размером 2M получают при помощи блока 112 посредством децимации или интерполяции на основании окна h размером 2N.
В случае, когда N превышает M, речь идет о прореживании, и в случае, когда N меньше M, речь идет об интерполяции.
Далее со ссылками на фиг.2 и 3 следует более подробное описание этапов, осуществляемых блоком 112.
Как и при кодировании, предпочтительно этот этап развертывания осуществляют в комбинации с этапом неравномерной дискретизации и прореживания или интерполяции, и он будет описан ниже.
Декодированный поток синтезируют в блоке 111 путем сложения перекрывающих друг друга частей.
Далее следует более подробное описание блока 102, а также блока 112.
Эти блоки осуществляют этапы неравномерной дискретизации E10 для определения окна, адаптированного к размеру M вторичной трансформанты.
a
s
Так, на основании первого коэффициента d (при 0≤d<N/M) записанного в памяти окна (h или h) размером 2N выбирают определенную совокупность коэффициентов N-d-1, N+d, 2N-d-1, отвечающую заранее определенному условию идеальной реконструкции.
На основании этой совокупности на этапе E11 осуществляют прореживание или интерполяцию указанного окна в зависимости от того, является ли N больше или меньше M, чтобы перейти от окна из 2N выборок к окну из 2M выборок.
При этом стремятся определить заранее определенное условие идеальной реконструкции. Для этого дискретизацию необходимо производить таким образом, чтобы были соблюдены следующие уравнения (чтобы коэффициенты, выбираемые для синтеза и анализа, обеспечивали идеальную реконструкцию при преобразовании размером N)
k∈[0; N-1].
a
a
s
s
s
s
Таким образом, чтобы прореженное окно отвечало условиям идеальной реконструкции уравнения (3), на основании точки h(k) (при k∈[0; 2N-1]) в окне анализа идеальную реконструкцию обуславливает только дополнительный выбор точек h(N+k) в окне анализа и точек h(k), h(N+k), h(2N-1-k) и h(N-1-k) в окне синтеза.
Однако, сохраняя только эти 6 точек, отмечают наличие диспаратности, при этом окно анализа прорежено на N, а окно синтеза - на N/2.
a
a
s
s
s
s
Аналогично, отмечается, что, если прореживание предполагает выбор точки N-k-1 в окне анализа h(N-1-k), то только выбор точек h(N-1-k) в окне анализа и тех же 4 точек h(k), h(N+k), h(2N-1-k) и h(N-1-k) в окне синтеза позволяет соблюдать условие идеальной реконструкции.
Таким образом, во время прореживания, показанного на фиг.2, чтобы соблюдать условия идеальной реконструкции по (3), на основании коэффициента d, взятого при 0≤d<N/M, необходимо обязательно выбрать также следующие коэффициенты N-d-1, N+d, 2N-1-d в окне анализа и d, N+d, 2N-1-d и N-1-d в окне синтеза для получения прореживания такого же размера между окном анализа и окном синтеза.
Действительно, условие идеальной реконструкции применяется только к подгруппам из 8 точек независимо, как показано на фиг.2.
Таким образом, осуществляют выбор определенной совокупности коэффициентов d, N-d-1, N+d, 2N-1-d в окне анализа и в окне синтеза.
Прореживание осуществляют, сохраняя, по меньшей мере, коэффициенты определенной совокупности, для получения прореженного окна, при этом другие коэффициенты можно исключить. Таким образом, получают наименьшее прореженное окно, которое соблюдает условия идеальной реконструкции.
a
a
a
a
Таким образом, чтобы получить наименьшее прореженное окно, сохраняют только точки h(k), h(N+k), h(2N-1-k) и h(N-1-k), как показано в примере на фиг.2.
Для окна синтеза выбирают такую же совокупность коэффициентов, и прореживание производят, сохраняя, по меньшей мере, коэффициенты определенной совокупности, для получения прореженного окна.
s
s
s
s
Таким образом, чтобы получить наименьшее прореженное окно, сохраняют только точки h(k), h(N+k), h(2N-1-k) и h(N-1-k), как показано в примере на фиг.2.
Учитывая симметрию между точками, в случае, когда окно синтеза представляет собой временную инверсию окна анализа, для прореживания потребуется только подгруппа из 4 точек (h(k), h(N+k), h(2N-1-k) и h(N-1-k)).
Таким образом, выбирая вышеуказанную определенную совокупность, можно произвести прореживание окна анализа и/или синтеза, выбирая любые значения k в пределах от 0 до N-1, сохраняя при этом свойства идеальной реконструкции.
Адаптированное прореживание позволяет наилучшим образом сохранить реакцию по частоте подвергаемого децимации окна.
В случае прореживания, адаптируемого по размеру M трансформанты, берут один коэффициент из N/M на первой четверти окна анализа (или синтеза) и выбирают вторую совокупность коэффициентов, отделенных постоянным промежутком (N/M) от коэффициентов определенной совокупности. Таким образом, прореживание осуществляют, сохраняя, дополнительно к коэффициентам d, N-1-d, N+d, 2N-1-d, коэффициенты второй совокупности, для получения прореженного окна.
На фиг.3 представлен пример неравномерной дискретизации, адаптированной к размеру M трансформанты. Показанное окно разделено на четыре четверти.
С учетом условий идеальной реконструкции для получения прореженного окна размером 2M применяют следующие уравнения:
при k∈[0; M/2-1])
где h* является интерполированным или децимированным окном анализа или синтеза, h является первоначальным окном анализа или синтеза,  является наиболее близким целым числом ≤X,  является наиболее близким целым числом ≥X, d является смещением.
Смещение является функцией исходной выборки d на первой четверти окна.
Таким образом, этап E10 блока 102 включает в себя выбор второй совокупности коэффициентов, отделенных постоянным промежутком (в данном случае N/M) от коэффициентов определенной совокупности (d, N-d-1, N+d, 2N-d-1). Такой же постоянный промежуток можно применять для выбора третьей совокупности коэффициентов.
Действительно, например, если производить прореживание окна на 3, то есть N/M=3, промежуток будет составлять 3 в каждом участке она. Если первым коэффициентом определенной совокупности является d=0, то коэффициентами второй или третьей совокупностей, разделенными постоянным промежутком, будут 3 и 6, и т.д.
Точно так же, если d=1, то первыми коэффициентами второй или третьей совокупностей, разделенными постоянным промежутком, будут 1, 4, 7…, или при d=2 коэффициентами будут 2, 5, 8…
Таким образом, в уравнении 7 ʺdʺ может принимать значения 0, 1 или 2 (в пределах от 0 до N/M-1 включительно).
На фиг.3 представлен случай, кода первым коэффициентом, выбранным в первой четверти окна, является d=1.
При этом коэффициентами второй и третьей совокупностей, разделенными постоянным промежутком, являются 4 и 7.
В нижеследующей таблице 1 показаны точки, выбранные для перехода от трансформанты размером N=48 к трансформантам меньшего размера (M=24, 16, 12 и 8). Таким образом, видно, что для осуществления преобразования размером M=8 в окне анализа рассматривают выборки 0, 6, 12, 18, 29, 35, 41, 47, 48, 54, 60, 66, 7, 83, 89 и 95, что представляет собой неравномерную дискретизацию.
Таблица 2 ниже иллюстрирует вариант выполнения для перехода от первоначального окна, предусмотренного для трансформанты размером N=48, к окну, адаптированному для реализации трансформанты размером N=6. При этом производят децимацию на N/M=8 и имеют 7 возможностей для значения d:d=0…7. В таблице указаны индексы, соответствующие значениям, выбранным в первоначальном окне.
Таблица 2
Индекс
N/M=8, d=0
N/M=8, d=1
N/M=8, d=2
N/M=8, d=3
N/M=8, d=4
N/M=8, d=5
N/M=8, d=6
N/M=8, d=7
0
0
1
2
3
4
5
6
7
1
8
9
10
11
12
13
14
15
2
16
17
18
19
20
21
22
23
3
31
30
29
28
27
26
25
24
4
39
38
37
36
35
34
33
32
5
47
46
45
44
43
42
41
40
6
48
49
50
51
52
53
54
55
7
56
57
58
59
60
61
62
63
8
64
65
66
67
68
69
70
71
9
79
78
77
76
75
74
73
72
10
87
86
85
84
83
82
81
80
11
95
94
93
92
91
90
89
88
Чтобы получить реакцию по частоте ближе к исходному окну, изобретением предлагается зафиксировать значение . Это условие не является ограничительным.
Если считать, что начало находится в конце каждого сегмента, уравнение 7 принимает вид
при k∈[0; M/2-1])
k
k
k
k
k
Для осуществления преобразования размером M в каждом участке можно также произвольно выбрать точки в первоначальном окне размером 2N. На основании первого коэффициента (h(d)) можно произвольно отобрать M/2-1 коэффициентов в первой четверти окна с индексами d при условии выбора в трех других участках коэффициентов с индексами 2N-1-d, N-1-d и N+d. Это представляет особый интерес для улучшения непрерывности или частотной реакции построенного окна размером 2M: в частности, за счет правильного выбора индексов d можно ограничить прерывистость.
В таблице 3 ниже представлен частный вариант с 2N=48, 2M=16.
Таблица 3
k
индекс
0
1
1
5
2
11
3
19
4
28
5
36
6
42
7
46
8
49
9
53
10
59
11
67
12
76
13
84
14
90
15
94
В предпочтительном варианте выполнения блоки 102 и 112 осуществляют этапы дискретизации одновременно с этапом свертывания или развертывания фреймов сигнала.
a
В представленном случае взвешивающее окно анализа h размером 2N применяют для каждого фрейма размером 2M, попутно производя его прореживание или интерполяцию в блоке 102.
Этот этап осуществляют, группируя уравнения (1), описывающие этап свертывания, и уравнения (7), описывающие неравномерную дискретизацию.
2M
a
M
Взвешенный фрейм «свертывают» в соответствии с преобразованием 2M в M, при этом «свертывание» фрейма T размером 2M, взвешенного окном h (размером 2N), в фрейм T размером M можно, например, производить следующим образом:
Таким образом, этап прореживания окна размером 2N в окно размером 2M осуществляют одновременно со свертыванием фрейма размером 2M в фрейм размером M.
Осуществляемые вычисления имеют такую же степень сложности, что и применяемые для классического свертывания, при этом меняются только индексы. Таким образом, эта операция параллельного прореживания не требует дополнительной сложности.
s
Точно так же, при декодировании в блоке 112 попутно происходит прореживание взвешивающего окна синтеза h размером 2N до окна размером 2M для его применения к каждому фрейму размером 2M. Этот этап осуществляют, группируя уравнения (2) развертывания с уравнениями (7) или (8) децимации.
При этом получают следующее уравнение:
k∈[0; N/2-1].
В данном случае эти уравнения тоже не привносят дополнительной сложности по отношению к классическим уравнениям развертывания. Они позволяют получить прореживание окна по ходу, не прибегая к предварительным вычислениям и к сохранению в памяти дополнительных окон.
s
a
В случае, когда окно синтеза является временной инверсией окна анализа (h(k)=h(2N-1-k)) и когда соотношение N/M является целым числом (то есть только децимацией), уравнения 10 принимают вид
k∈[0; N/2-1].
Этот вариант выполнения позволяет хранить в памяти только одно окно, используемое одновременно для анализа и для синтеза.
Таким образом, было показано, что этапы свертывания/развертывания и прореживания можно комбинировать, чтобы осуществлять преобразование размером M, используя окно анализа/синтеза, предусмотренное для размера N. Благодаря изобретению, получают такую же сложность, как при применении преобразования размером M с окном анализа/синтеза, предусмотренным для размера M, причем без использования дополнительной памяти. Следует отметить, что этот эффект проявляется при эффективном осуществлении преобразования MDCT, основанного на преобразовании DCT IV (как предложено в публикации H.S. Malvar, Signal Processing with lapped Transforms, Artech House, 1992), причем этот эффект мог бы также проявиться с другими случаями эффективного применения, в частности, предложенного в статье Duhamel et al. ʺA fast algorithm for the implementation of filter banks based on TDACʺ, представленной на конференции ICASSP91.
Этот метод не является ограничительным, его можно применять, в частности, в случае, когда окно анализа имеет нули и его применяют для фрейма со смещением (самые последние звуковые выборки взвешивают при помощи участка окна непосредственно перед участком, содержащим нули) для сокращения времени кодирования. В этом случае индексы, присвоенные фреймам, и индексы, присвоенные окнам, смещены.
Далее в частном варианте выполнения следует описание метода интерполяции в случае, когда в наличии имеется окно h размером 2N и имеются фреймы размером M.
В случае, когда N меньше M, осуществляют такой же выбор совокупности коэффициентов, отвечающей условию идеальной реконструкции. Определяют также совокупность коэффициентов, смежных с коэффициентами определенной совокупности. При этом интерполяцию производят, вставляя коэффициент между каждым из коэффициентом определенной совокупности коэффициентов и каждым коэффициентом совокупности смежных коэффициентов для получения интерполированного окна.
a
a
a
a
a
a
a
a
s
s
s
s
s
s
s
s
Таким образом, чтобы соблюдать условия идеальной реконструкции, определенные уравнением (3), если необходимо вставить одну выборку между позициями k и k+1, предлагается вставлять точки между позициями h(k) и h(k+1), h(N-k-1) и h(N-k-2), h(N+k) и h(N+k+1), h(2N-1-k) и h(2N-k-2) в окне анализа и точки между позициями h(k) и h(k+1), h(N+k) и h(N+k+1), h(2N-1-k) и h(2N-k-2), h(N-k-1) и h(N-k-2) в окне синтеза. 8 новых вставленных точек тоже соответствуют условиям идеальной реконструкции уравнения (3).
В первом варианте выполнения интерполяцию осуществляют посредством повторения одного коэффициента определенной совокупности или совокупности смежных коэффициентов.
Во втором варианте выполнения интерполяцию осуществляют путем вычисления коэффициента (hcomp) с целью обеспечения наилучшей частотной реакции для получаемого окна.
init
Для этого осуществляют первый этап вычисления дополнительного окна h размером 2N. Это окно представляет собой интерполированную версию между коэффициентами h размером 2N, при которой
при k∈[0; 2N-1]).
На втором этапе вычисляют окно hcomp в соответствии с документом ЕР 2319039, чтобы оно соответствовало условию идеальной реконструкции. Для этого окно вычисляют по коэффициентам определенной совокупности согласно следующим уравнениям:
при k∈[0; N-1]).
Это окно либо вычисляют при инициализации, либо хранят в памяти ROM.
Этапы интерполяции и прореживания можно интегрировать для получения варианта выполнения, в котором эффективно применяют преобразование.
Этот вариант выполнения представлен на фиг.4(a) и 4(b).
Он включает в себя два этапа:
a
- на первом этапе, представленном на фиг.4(a), исходят из окна h размером 2N для получения второго окна h размером 2N' (в данном случае 2N=96 и 2N'=32, то есть производят децимацию на 3). Это прореживание является неравномерным и соответствует уравнению (7).
- на втором этапе, представленном на фиг.4(b), к 2N' коэффициентов h добавляют совокупность дополнительных коэффициентов hcomp, чтобы в сумме получить 2M коэффициентов (в данном случае число дополнительных коэффициентов равно 2N', то есть получают 2M=4N').
В частном примере на фиг.4(a) и 4(b) осуществили конверсию первоначального окна размером 2N=96, предусмотренного для преобразования MDCT размером N=48, в окно, предназначенное для преобразования MDCT размером M=32, путем построения окна размером 2M=64.
В момент преобразования в блоке 102 окно h и окно hcomp применяют поочередно с соблюдением следующих уравнений:
Точно так же, в момент преобразования в блоке 112 окно h и окно hcomp применяют поочередно согласно уравнениям
k/2∈[0; N/2-1].
Возможны различные версии изобретения. Так, на основании всего одного записанного в памяти окна можно получить окно другого размера либо посредством интерполяции, либо посредством прореживания, либо посредством интерполяции прореженного окна и наоборот.
Таким образом, повышается гибкость кодирования и декодирования без увеличения объема памяти или осуществляемых вычислений.
Применение прореживания или интерполяции во время свертывания или развертывания MDCT дает дополнительный выигрыш в сложности и в гибкости.
На фиг.5 представлено физическое выполнение устройства кодирования или декодирования в соответствии с изобретением. Это устройство содержит процессор PROC, взаимодействующий с блоком памяти BM, содержащим память для записи и/или рабочую память MEM.
Предпочтительно блок памяти может содержать компьютерную программу, имеющую командные коды для осуществления этапов заявленного способа кодирования или декодирования, когда эти команды исполняет процессор PROC, и, в частности, для неравномерной дискретизации первоначального окна, предусмотренного для трансформанты с данным первоначальным размером N, с целью применения вторичного преобразования размером M, отличным от N.
Описание со ссылками на фиг.1 воспроизводит этапы алгоритма такой компьютерной программы. Компьютерная программа может быть также записана на носителе, считываемом устройством, или может быть загружена дистанционно в его область памяти.
Q
Такая аппаратура включает в себя входной модуль, выполненный с возможностью приема потока звуковых сигналов X(t) в случае кодера или индексов квантования I в случае декодера.
Q
Устройство содержит выходной модуль, выполненный с возможностью передачи индексов квантования I в случае кодера или декодированного потока  в случае декодера.
В возможном варианте выполнения описанное устройство может одновременно иметь функции кодирования и декодирования.