ОСНОВАННОЕ НА ПРЕОБРАЗОВАНИИ КОДИРОВАНИЕ/ДЕКОДИРОВАНИЕ С АДАПТИВНЫМИ ОКНАМИ
CODING/DECODING BASED ON TRANSFORMATION WITH ADAPTIVE WINDOWS

Настоящее изобретение относится к кодированию и декодированию цифровых сигналов.
Для получения пониженной скорости передачи двоичных данных в схеме кодирования на основе преобразования обычно пытаются снизить точность, относящуюся к процессу кодирования отсчетов, обеспечивая при этом минимальное ухудшение восприятия. С этой целью снижением точности квантования управляют с использованием взвешенных по восприятию значений. Основываясь, например, на известных свойствах человеческого глаза (для кодирования видеоданных) или человеческого уха (для кодирования аудиоданных), этот подход позволяет поместить шум квантования в диапазоны частот, которые являются наименее воспринимаемыми.
Для использования информации из психо-визуальной или психо-акустической модели, главным образом, в частотной области, стандартной практикой является применение частотно-временного преобразования при квантовании, осуществляемом в частотной области.
Фиг.1 представляет собой схему, иллюстрирующую конструкцию кодера, основанного на преобразовании, имеющего
- набор (ВА) фильтров (с FA1 по FAn) для разложения сигнала, принимающих входной сигнал (X);
n
- блок (Q) квантования (включающий в себя полосовые модули (Q1,…, Qn) квантования), за которым следует кодирующий блок (COD), включающий в себя кодирующие модули (с COD1 по COD); и
- набор (BS) фильтров (FS1,…, FSn) синтеза сигнала, выдающих кодированный сигнал (X').
Для дополнительного снижения скорости передачи двоичных данных перед передачей квантованные отсчеты частотной области кодируются часто посредством процесса энтропийного кодирования (кодирования без потерь). Квантование осуществляется стандартным способом посредством скалярного квантователя с равномерным шагом или с неравномерным шагом или посредством векторного квантователя.
Шум, вносимый на этапе квантования, формируется набором синтезирующих фильтров (этот процесс известен как применение обратного преобразования). Следовательно, обратное преобразование, которое связано с преобразованием при разложении, должно быть выбрано таким образом, чтобы сконцентрировать шум квантования в частотной или временной области так, чтобы не дать этому шуму стать воспринимаемым.
Преобразование при разложении должно сконцентрировать энергию сигнала оптимальным образом для того, чтобы облегчить кодирование отсчетов в преобразованной области. Этот процесс называется уплотнением энергии. В частности, должна быть максимизирована эффективность кодирования для преобразования при разложении, которая зависит от входного сигнала. Для этого используется формула следующего вида, в которой К представляет собой константу, которая может предпочтительно иметь значение 6,02, a R представляет собой количество битов в каждом отобранном отсчете
<mrow><mi>S</mi><mi>N</mi><mi>R</mi><mo>=</mo><msub><mi>G</mi><mrow><mi>T</mi><mi>C</mi></mrow></msub><mo>+</mo><mi>K</mi><mo>⋅</mo><mi>R</mi><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>
TC
Таким образом, полученное отношение "сигнал/шум" пропорционально R плюс компонент G, который представляет эффективность кодирования при преобразовании.
Чем выше эффективность кодирования, тем лучше качество восстановления. Следовательно, понятна важность преобразования, используемого для процесса кодирования. Оно облегчает кодирование отсчетов благодаря своей способности концентрировать как энергию сигнала (посредством части, относящейся к разложению), так и шум квантования (посредством части, относящейся к синтезу).
Поскольку общеизвестно, что аудио- и видеосигналы являются непостоянными, частотно-временное преобразование должно адаптироваться во времени в зависимости от характера входного сигнала, подаваемого на набор фильтров.
Ниже описывается несколько вариантов применения обычных технологий кодирования.
При модулированных преобразованиях способы нормированного кодирования аудиоданных объединяют наборы косинусоидально модулированных фильтров, которые позволяют реализовать эти способы кодирования с использованием быстрых алгоритмов на основе косинусных преобразований или быстрых преобразований Фурье.
Преобразованием этого типа, используемым наиболее часто (в частности, при кодировании в форматах ААС (усовершенствованного кодирования аудиоданных): МР3, MPEG-2, и MPEG-4), является модифицированное дискретное косинусное преобразование (MDCT-преобразование), выражение для которого имеет следующий вид:
<mrow><msubsup><mi>X</mi><mi>k</mi><mi>t</mi></msubsup><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mi>t</mi><mi>M</mi></mrow></msub><msub><mi>p</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mstyle><mtext> </mtext><mtext> </mtext><mn>0</mn><mo>≤</mo><mi>k</mi><mo><</mo><mi>M</mi><mo>,</mo></mrow>
в котором
М представляет собой размер преобразования;
n+tM
<mrow><mfrac><mn>1</mn><mrow><msub><mi>F</mi><mi>e</mi></msub></mrow></mfrac></mrow>
x представляют собой отсчеты цифрового сигнала с периодом
(величиной, обратной частоте отсчетов) в момент времени n + tM;
t представляет собой индекс кадра;
<mrow><msubsup><mi>X</mi><mi>k</mi><mi>t</mi></msubsup></mrow>
представляют собой отсчеты в преобразованной области для кадра t;
<mrow><msub><mi>p</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>h</mi><mi>a</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><msub><mi>c</mi><mrow><mi>n</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>=</mo><msqrt><mrow><mfrac><mn>2</mn><mi>M</mi></mfrac></mrow></msqrt><msub><mi>h</mi><mi>a</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>cos</mi><mrow><mo>[</mo><mrow><mfrac><mi>π</mi><mrow><mn>4</mn><mi>M</mi></mrow></mfrac><mrow><mo>(</mo><mrow><mn>2</mn><mi>n</mi><mo>+</mo><mn>1</mn><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mrow><mo>(</mo><mrow><mn>2</mn><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow></mrow>
представляет собой базисную функцию преобразования, в которой
a
член h(n) называется фильтром-прототипом или взвешивающим окном анализа и охватывает 2М отсчетов; и
n,k
член C определяет модуляцию.
Это преобразование применяется к обработке аудиоданных. Оно также применяется к обработке видеоданных, в частности, при кодировании неподвижного изображения, где преобразование последовательно применяется к строкам и столбцам стандартным образом. Этот принцип, кроме того, распространяется на сигналы с более чем двумя измерениями.
<mrow><msubsup><mi>p</mi><mi>k</mi><mi>s</mi></msubsup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>h</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><msub><mi>C</mi><mrow><mi>n</mi><mo>,</mo><mi>k</mi></mrow></msub></mrow>
s
Для восстановления первоначальных временных отсчетов применяется следующее обратное преобразование при декодировании для того, чтобы восстановить 0≤n<М отсчетов, которые в таком случае располагаются в области перекрытия двух последовательных преобразований. Декодированные отсчеты в таком случае задаются следующей формулой, в которой
определяет преобразование синтеза, причем взвешивающее окно синтеза обозначено как h(n) и также охватывает 2М отсчетов:
<mrow><msub><mover accent="true"><mi>x</mi><mo>^</mo></mover><mrow><mi>n</mi><mo>+</mo><mi>t</mi><mi>M</mi><mo>+</mo><mi>M</mi></mrow></msub><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mrow><mo>[</mo><mrow><msubsup><mi>X</mi><mi>k</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msubsup><msubsup><mi>p</mi><mi>k</mi><mi>s</mi></msubsup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>+</mo><msubsup><mi>X</mi><mi>k</mi><mi>t</mi></msubsup><msubsup><mi>p</mi><mi>k</mi><mi>s</mi></msubsup><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow></mrow></mstyle></mrow>
Формула восстановления, выдающая декодированные отсчеты, также может быть записана в следующем виде:
<mtable columnalign="left"><mtr><mtd><msub><mover accent="true"><mi>x</mi><mo>^</mo></mover><mrow><mi>n</mi><mo>+</mo><mi>t</mi><mi>M</mi><mo>+</mo><mi>M</mi></mrow></msub><mo>=</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><mrow><mo>[</mo><mrow><msubsup><mi>X</mi><mi>k</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msubsup><msub><mi>h</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><msub><mi>C</mi><mrow><mi>k</mi><mo>,</mo><mi>n</mi></mrow></msub><mo>+</mo><msubsup><mi>X</mi><mi>k</mi><mi>t</mi></msubsup><msub><mi>h</mi><mi>s</mi></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><msub><mi>C</mi><mrow><mi>k</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>M</mi></mrow></msub></mrow><mo>]</mo></mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mo>=</mo><msub><mi>h</mi><mi>s</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><msubsup><mi>X</mi><mi>k</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msubsup></mrow></mstyle><msub><mi>C</mi><mrow><mi>k</mi><mo>,</mo><mi>n</mi></mrow></msub><mo>+</mo><msub><mi>h</mi><mi>s</mi></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><msubsup><mi>X</mi><mi>k</mi><mi>t</mi></msubsup></mrow></mstyle><msub><mi>C</mi><mrow><mi>k</mi><mo>,</mo><mi>n</mi><mo>+</mo><mi>M</mi></mrow></msub></mtd></mtr></mtable>
<mrow><msubsup><mi>X</mi><mi>k</mi><mi>t</mi></msubsup><mtext> </mtext><mtext> </mtext><mi>и</mi><mtext> </mtext><mtext> </mtext><msubsup><mi>X</mi><mi>k</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msub><mover accent="true"><mi>x</mi><mo>⌢</mo></mover><mi>n</mi></msub></mrow>
t,k
Это другое представление восстанавливающего уравнения эквивалентно учету того факта, что к отсчетам
в области преобразования могут быть последовательно применены два обратных косинусных преобразования, их результат затем объединяется посредством операции взвешивания и суммирования. Этот способ восстановления показан на фиг.2, где отсчеты в области преобразования обозначены как X, а восстановленные отсчеты во временной области обозначены как
.
a
s
Модифицированное дискретное косинусное преобразование обычно использует идентичные окна для разложения и синтеза и таким образом h(n)=h(n)=h(n).
<mrow><msub><mover accent="true"><mi>x</mi><mo>⌢</mo></mover><mrow><mi>n</mi><mo>+</mo><mi>t</mi><mi>M</mi></mrow></msub><mo>=</mo><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mi>t</mi><mi>M</mi></mrow></msub></mrow>
Чтобы обеспечить точное (именуемое полным) восстановление сигнала (подчиняющееся условию
, необходимо выбрать окно h(n) прототипа, удовлетворяющее нескольким ограничениям.
Для получения полного восстановления должны удовлетворяться нижеследующие формулы. Они обычно применяются для создания окон, подходящих для модифицированного дискретного косинусного преобразования:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><mi>h</mi><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>=</mo><mi>h</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>h</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>+</mo><msup><mi>h</mi><mn>2</mn></msup><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mtd></mtr></mtable></mrow><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>
Окна имеют четную симметрию по отношению к центральному отсчету, как это показано в примерах на фиг.3.
Удовлетворить этим простым ограничениям относительно просто и с этой целью стандартный фильтр-прототип может состоять из синусоидального окна (показанного на фиг.3 сплошной линией), которое записывается следующим образом:
<mrow><mi>h</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mi>sin</mi><mrow><mo>[</mo><mrow><mfrac><mi>π</mi><mrow><mn>2</mn><mi>M</mi></mrow></mfrac><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mn>0.5</mn></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow></mrow>
Конечно, существуют и другие формы фильтра-прототипа, такие как Кайзер-Бесселевы производные окна (KBD-окна), определенные в стандарте MPEG-4 (соответствующие кривым, показанным пунктирной линией на фиг.3) и окна малого перекрытия.
С учетом необходимости адаптировать преобразование к кодируемому сигналу существующие технические решения позволяют изменять во времени используемое преобразование, что именуется ниже переключением окон. При этом в данном случае считается, что при изменении преобразования размер используемых окон остается тем же, так что с течением времени изменяются только весовые коэффициенты окон.
1
2
1
a1
2
a2
a1
a2
a1
s1
Выражения, приведенные выше для постоянного окна, приспособлены ниже к ситуации изменения окна. Без потери общности при перекрытии, в котором участвуют только два следующих друг за другом кадра для модифицированного дискретного косинусного преобразования, переход для двух следующих друг за другом кадров T и T объясняется следующим образом. Первый кадр T использует окно (h) разложения, а второй кадр T, использует окно (h) разложения. Окна синтеза, используемые для восстановления, выбираются таким образом, чтобы быть идентичными окнам разложения в частях перекрытия этих двух окон h и h. Таким образом, для 0≤n<M: h(n+M)=h(n+M)
a2
s2
h(n)=h(n)
a1
a1
a2
a2
В отличие от предыдущей ситуации, в которой одно и то же окно используется для множества последовательных кадров, здесь нет больше непосредственной связи между первой и второй половинами окон разложения, что означает, что весовой коэффициент h(n+M) может быть независим от коэффициента h(n). Аналогичным образом, коэффициент h(n) может быть независим от коэффициента h(n+M). Таким образом, можно обеспечить изменение формы окна разложения с течением времени.
вид
Условия для полного восстановления принимает для 0≤n<М:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><msubsup><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow><mn>2</mn></msubsup><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>+</mo><msubsup><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow><mn>2</mn></msubsup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>.</mo><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>−</mo><msub><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>.</mo><msub><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mtd></mtr></mtable></mrow></mrow>
Очень простое стандартное решение для проверки вышеупомянутых условий состоит в выборе для 0≤n<M:
a1
a2
h(n+M)=h(M-1-n)
2
1
Соответственно, если обратиться к фиг.4, то окно разложения, используемое в первой половине кадра T (кривая, показанная на фиг.4 пунктирной линией), представляет собой зеркальный вариант окна разложения, используемого во второй половине кадра T (кривая, показанная на фиг.4 сплошной линией). Другими словами, для того, чтобы обеспечить полное восстановление, предшествующий уровень техники предлагает последовательные переходы через участки с совместным использованием тех же самых окон разложения, не говоря уж об эффекте зеркальности.
Этот эффект зеркальности также относится и к окнам синтеза по причине принятого равенства окон синтеза и разложения.
a1
a1
a2
a2
Вследствие эффекта зеркальности любое введение нолей (весовых коэффициентов со значением "0") после коэффициента h(n+M) в окне h имеет своим результатом введение того же самого количества нолей в начале окна h (в члене h(n)). Кроме того, это введение нолей подразумевает задание того же самого количества коэффициентов со значением "1" для обратного ранга М-n. Если быть более точным, то:
a1
a2
h(n+M)=h(M-1-n)
Вследствие этого, общий вид такого окна, включающего в себя много нолей, аналогичен виду прямоугольного окна, которое показано на фиг.5. Прямоугольное окно имеет плохое разрешение в частотной области и высокий уровень разрывности. В этом заключается первая проблема, присущая кодерам/декодерам предшествующего уровня техники.
В стандартизированных известных кодерах/декодерах кодер обычно выбирает преобразование, используемое в течение некоторого времени. Так, в стандарте ААС (формата усовершенствованного кодирования аудиоданных), как описано в документе "Информационная технология - Кодирование аудиовизуальных объектов - Часть 3: Аудиоданные", ISO/IEC 14496 - 3 (2001) (документ Международной организации по стандартизации/Международной электротехнической комиссии), кодер выбирает и посылает форму окна, соответствующую второй половине окна разложения, первая же половина индуцируется выбором, произведенным для предыдущего кадра. В стандарте ААС декодеру посылается бит, позволяющий использовать для синтеза окна того же типа.
Следовательно, декодер является зависимым по отношению к кодеру и послушно применяет типы окон, выбранные кодером.
a1
a2
Следовательно, ясно, что недостаток предшествующего уровня техники заключается в том, что для обеспечения перехода для типа окна, которое используется в течение времени, необходимо ввести промежуточное полуокно, чтобы обеспечить полное восстановление. Таким образом, окна (h) и (h) разложения, упомянутые выше, не могут быть переданы независимо друг от друга в их общей среде.
Настоящее изобретение направлено на улучшение этой ситуации.
С этой целью изобретение предлагает переход между окнами без ограничений в отношении следующих друг за другом окон.
С этой целью изобретение, во-первых, обеспечивает основанный на преобразовании способ кодирования цифрового сигнала с перекрытием с использованием взвешивающих окон, причем два последовательных блока отсчетов сигнала, которые имеют одинаковый размер 2М, взвешиваются, соответственно, первым окном разложения и вторым окном разложения. Эти окна содержат каждое спадающий фронт и падающий фронт, и нарастающий фронт второго окна отличается от спадающего фронта обращенного во времени первого окна.
Этот признак очевидным образом отличается от предшествующего уровня техники, описанного выше, и, следовательно, выявляет то, что первые и вторые окна могут быть выбраны полностью независимо друг от друга, например, в соответствии с критерием, соответствующим характеристикам сигнала, определенным по каждому из этих двух блоков.
Таким образом, предусматриваются, по меньшей мере, два типа взвешивающих окон, в частности, для разложения при кодировании, и можно изменять тип взвешивающего окна для кодирования текущего блока, в котором было, например, обнаружено некоторое конкретное событие. Это конкретное событие обычно представляет собой изменение статистической характеристики сигнала или возникновение некоторого конкретного явления, такого как большое увеличение энергии цифрового сигнала, который содержит текущий кадр.
Эти этапы повторяются для следующего блока так, что можно, используя изобретение, кодировать данный блок, применяя взвешивающее окно данного типа, и кодировать блок, который непосредственно следует за данным блоком, непосредственно применяя другой тип взвешивающего окна, без ограничений и, в частности, без ограничения предшествующего уровня техники, которое в обязательном порядке требовало наличия промежуточного окна.
Вышеупомянутые блоки могут, например, соответствовать кадрам сигнала, как было показано выше.
Предлагая возможность перехода непосредственно от одного типа окна к другому, без переходного участка, изобретение позволяет выполнять кодирование с окнами, адаптированными к каждому из сигналов, охватываемых этими окнами. Таким образом достигается повышенная эффективность кодирования на каждом из отрезков сигнала, охватываемых этими окнами.
По сравнению с предшествующим уровнем техники, благодаря точной адаптации окон к свойствам сигнала, достигается повышенное качество кодирования.
Аналогичным образом настоящее изобретение обеспечивает основанный на преобразовании способ декодирования цифрового сигнала с перекрытием с использованием взвешивающих окон, причем два последовательных блока отсчетов сигнала, имеющие одинаковый размер, взвешиваются соответственно первым окном синтеза и вторым окном синтеза, которые каждое включают в себя нарастающий фронт и спадающий фронт, и, в частности, нарастающий фронт второго окна отличается от спадающего фронта, обращенного во времени первого окна.
В одном варианте осуществления настоящего изобретения окна разложения, по меньшей мере, одного из вышеупомянутых двух типов окна разложения включают в себя по меньшей мере один концевой участок, содержащие коэффициенты, все из которых равны нолю. При декодировании окна синтеза в таком случае включают в себя нули в начале окна. Это позволяет снизить задержку на кодирование/декодирование, связанную с применяемыми преобразованиями.
Таким образом, изобретение находит предпочтительное применение в интерактивной связи, при которой важно минимизировать эту задержку.
Другие признаки и преимущества изобретения становятся очевидны при рассмотрении нижеследующего подробного описания и прилагаемых чертежей, на которых, в дополнение к фиг.1-5, относящимся к предшествующему уровню техники и описанным выше, приведено следующее:
- на фиг.6 показано изменение типа окна, причем первое и второе окна по изобретению имеют различные формы;
z
- на фиг.7 показаны в предпочтительном варианте осуществления настоящего изобретения окна разложения, включающие в себя M нулевых коэффициентов в конце окна;
- на фиг.8 показано уменьшение задержки кодирования/декодирования, которое достигается в этом предпочтительном варианте осуществления изобретения;
- на фиг.9 показана система кодирования/декодирования по изобретению;
- на фиг.10А показаны этапы способа кодирования по изобретению;
- на фиг.10В показаны этапы способа декодирования по изобретению; и
- на фиг.11 показана (пунктирной линией) предпочтительная форма окна синтеза.
Ниже описан вариант осуществления изобретения, который позволяет переходить от одного окна разложения к другому без особых предосторожностей и, в частности, без переходного окна. Таким образом, окна разложения, выбираемые при кодировании, независимы друг от друга, что способствует повышению качества кодирования.
2
1
2
2
a2
2
k
<mrow><msubsup><mi>σ</mi><mi>k</mi><mn>2</mn></msubsup></mrow>
Что касается текущего кадра T, то здесь предполагается, что конкретный выбор окна разложения для непосредственно предшествующего ему кадра T был уже сделан. Для кадра T выбирается другое окно разложения для того, чтобы облегчить кодирование отсчетов текущего кадра T в частотной области. Например, одним возможным критерием является то, что окно h, выбранное для кадра T, должно максимизировать эффективность кодирования в преобразованной области, задаваемую следующей формулой, в которой
представляет оценку дисперсии преобразованных отсчетов X:
<mrow><msub><mi>G</mi><mrow><mi>T</mi><mi>C</mi></mrow></msub><mo>=</mo><mfrac><mrow><mfrac><mn>1</mn><mi>M</mi></mfrac><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><msubsup><mi>σ</mi><mi>k</mi><mn>2</mn></msubsup></mrow></mstyle></mrow><mrow><msup><mrow><mrow><mo>[</mo><mrow><mstyle displaystyle="true"><munderover><mo>∏</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><msubsup><mi>σ</mi><mi>k</mi><mn>2</mn></msubsup></mrow></mstyle></mrow><mo>]</mo></mrow></mrow><mrow><mn>1</mn><mo>/</mo><mi>M</mi></mrow></msup></mrow></mfrac></mrow>
В качестве альтернативы, другой критерий мог бы быть основан на минимизации энтропии преобразованных отсчетов, как, например, это выражено в нижеследующей форме:
<mrow><msub><mi>J</mi><mi>H</mi></msub><mo>=</mo><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi>k</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>M</mi><mo>−</mo><mn>1</mn></mrow></munderover><mrow><msubsup><mi>X</mi><mi>k</mi><mn>2</mn></msubsup><mi>log</mi><mrow><mo>[</mo><mrow><msubsup><mi>X</mi><mi>k</mi><mn>2</mn></msubsup></mrow><mo>]</mo></mrow></mrow></mstyle></mrow>
k
Можно предусмотреть более сложный критерий, определяющий оптимальный компромисс между, во-первых, искажением после кодирования/декодирования и, во-вторых, скоростью передачи данных, требующейся для этого кодирования. Этот более сложный критерий, который подлежит минимизации, может быть записан, например, в нижеследующем виде, где D (X) представляет собой измеренное значение искажения отсчетов X для выбранной скорости передачи данных; a R (X) представляет собой эту выбранную скорость передачи данных:
RD
J=D(X)+λR(X)
a2
Предпочтительно, чтобы наилучшее окно (h) разложения в соответствии с принятым, в конечном счете, критерием определялось в ограниченном наборе комбинаций. При этом все-таки накладывается одно ограничение, заключающееся в том, что тип используемого фильтра разложения (особенно фильтра-прототипа разложения, соответствующего взвешивающему окну кодирования) должен быть известен декодеру и должен, следовательно, быть отправлен декодеру.
a2
0
1
2
Nb-1
2
Таким образом, окно h может быть выбрано из каталога окон {h, h, h,…,h} разложения, где Nb представляет количество возможных вариантов выбора. В таком случае можно предусмотреть для кодирования индекс формы окна, выбранного по целому числу битов, большему или равному log(Nb), и затем отправку этого закодированного индекса декодеру.
a1
a2
Все окна, определенные таким образом, могут быть применены для М отсчетов, причем используемые окна разложения h и/или h длиной 2М, созданы следующим образом для целых чисел i и j, находящихся между 0 и Nb-1 включительно:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>M</mi><mo>+</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>=</mo><msub><mi>h</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mtext> </mtext><mn>0</mn><mo>≤</mo><mi>n</mi><mo><</mo><mi>M</mi></mtd></mtr><mtr><mtd><msub><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>h</mi><mi>j</mi></msub><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mtext> </mtext><mn>0</mn><mo>≤</mo><mi>n</mi><mo><</mo><mi>M</mi></mtd></mtr></mtable></mrow></mrow>
i
j
Окна h, и h созданы с использованием, например:
- KBD-окон (показанных на фиг.3 пунктирными линиями) с параметрами, настроенными на различные значения коэффициента формы (часто обозначаемые как α);
- синусоидальных окон;
- окон с малым перекрытием (малой задержкой), которые описаны в стандарте ААС; или
- окна, оптимизированные в соответствии с различными критериями, например в соответствии с критерием эффективности кодирования, как это описано в "Banes de Filtres et quantification vectorielle sur reseau - Etude conjointe pour la compression d'images", P.Onno, Universite de Rennes 1 thesis (1996).
Можно ограничить выбор окон до семейства параметризуемых окон (таких, как KBD-окна). В этой ситуации все параметры могут быть посланы в закодированной форме (которая в ситуации KBD-окон ограничена квантованным и закодированным значением форм-фактора (α)).
a2
k
При декодировании после приема типа окна (h) разложения, используемого для кодирования, и после декодирования отсчетов X в частотной области и затем последующего обратного дискретного косинусного преобразования, должны быть применены окна синтеза для восстановления временных отсчетов. Для ограничения степени ухудшения восстановленного сигнала, предпочтительно выбирать окна синтеза, обеспечивающие полное восстановление на уровне преобразования. В отсутствие квантования обратное преобразование, следующее за прямым преобразованием, не приводит ни к какому искажению. Тем не менее, принятый здесь критерий заключается в том, что воспринимаемость погрешности восстановления преобразования по отношению к некоторому заданному пороговому значению восприятия должна оставаться незначительной.
1
2
s2
s1
a1
a2
Для восстановления общей части кадров T и T без искажения, вызванного преобразованиями, участки окна синтеза, влияющие на эту общую часть (h(n) и h(n+M), при 0≤n<M должны быть связаны с окнами разложения на той же самой общей части (h(n+M) и h(n)). Нижеследующее уравнение определяет условия, которые должны быть удовлетворены для того, чтобы обеспечить полное восстановление в этой общей части, для n=0…М-1:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>.</mo><msub><mi>h</mi><mrow><mi>s</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>+</mo><msub><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>.</mo><msub><mi>h</mi><mrow><mi>s</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>.</mo><msub><mi>h</mi><mrow><mi>s</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>−</mo><msub><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>.</mo><msub><mi>h</mi><mrow><mi>s</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mtd></mtr></mtable></mrow></mrow>
s2
s1
a1
a2
a2
a1
Решая эту систему уравнений для окон h(n) и h(n+M), находим что при соблюдении условия D(n)=h(n+M)·h(M-1-n)+h(n)·h(2М-1-n)≠0:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><msub><mi>h</mi><mrow><mi>s</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>h</mi><mrow><mi>a</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow><mrow><mi>D</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac></mtd></mtr><mtr><mtd><msub><mi>h</mi><mrow><mi>s</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow><mrow><mi>D</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac></mtd></mtr></mtable></mrow></mrow>
s1
s2
Таким образом, этот выбор окон h(n+M) и h(n) синтеза обеспечивает полное восстановление.
Соответственно, при синтезе:
s1
1
- окно h(n+M) применяется для обратного модифицированного дискретного косинусного преобразования, применяемого ко второму участку кадра T; и
s2
2
- окно h(n) применяется для обратного модифицированного дискретного косинусного преобразования, применяемого к первой половине кадра T.
Результат этих двух взвешиваний суммируется почленно для получения декодированных отсчетов.
s1
s2
s1
a2
a2
a1
Видно, что окна h(n+M) и h(n) созданы простым обращением во времени окон разложения, сопровождаемым применением поправочного множителя D'(n)=1/D(n). Соответственно, окно h(n+M) создается инвертированием временных индексов окна h(n) разложения и взаимным образом окно h(n) создается инвертированием временных индексов окна h(n+M) разложения. Поправочный множитель (соответствующий коэффициенту усиления, подлежащему применению к каждому из окон) определен как D'(n)=1/D(n). Обращение времени в выражении или инверсия временного индекса относится здесь к определению формы окна в зависимости от индекса (-n), равного и противоположного текущему временному индексу (n).
a2
1
a1
2
Окно типа h(M-1-n) может быть применено ко второму участку кадра T, a окно типа h(2М-1-n) - к первой половине кадра T. Результат этого взвешивания затем суммируется и, в конечном счете, взвешивается посредством весового множителя D'(n)=1/D(n).
a2
a1
Замечательное свойство заключается в том, что весовой множитель 1/D(n) является простым коэффициентом усиления, который исправляет амплитудное искажение. Таким образом, операция восстановления с использованием окон h(M-1-n) и h(2M-1-n) дает восстановленный сигнал, лишенный компонентов обращения времени. Коэффициент (D'(n)) усиления можно, таким образом, рассматривать просто как член, корректирующий амплитуду.
Выражение для коэффициента (D(n)) усиления также демонстрирует следующее замечательное свойство: D(n)=D(M-1-n), которое отражено в том факте, что необходимо рассчитывать и/или сохранять в памяти только M/2 коэффициентов (D(n)) усиления. Это свойство также применяется к коэффициенту (D'(n)) усиления при синтезе.
i,j
i
j
j
i
В первом варианте осуществления изобретения можно, следовательно, сохранять в памяти при кодировании все окна синтеза, объединяющие все возможности перехода между окнами разложения, то есть результат выражения (с учетом того, что D(n)=h(n+M)·h(M-1-n)+h(n)·h(2M-1-n)):
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><msub><mi>h</mi><mrow><mi>s</mi><mn>1,</mn><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>h</mi><mi>i</mi></msub><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow><mrow><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac></mtd></mtr><mtr><mtd><msub><mi>h</mi><mrow><mi>s</mi><mn>2,</mn><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>h</mi><mi>j</mi></msub><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow><mrow><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac></mtd></mtr></mtable></mrow></mrow>
В таком случае этот вариант осуществления изобретения требует большого объема памяти.
i,j
<mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mo>'</mo></msubsup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>/</mo><msub><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow>
Во втором варианте осуществления изобретения можно сохранять окна разложения в декодере, как они есть или с обращенным во времени индексом. Затем рассчитывается коэффициент (D(n),) усиления, 0≤n<M/2, после чего для восстановления используются обращенные во времени окна разложения. Наконец, результат, полученный после суммирования, взвешивается посредством коэффициента усиления
.
i,j
Для некоторых конкретных сочетаний пар (i, j) может случиться так, что для набора отсчетов n коэффициент усиления D(n)=1. В этой конкретной ситуации можно обойтись без конечного взвешивания.
i,j
i,j
Можно распространить это упрощение на ситуацию, в которой коэффициент (D(n)) усиления очень близок к единице, в частности, если подлежащее исправлению амплитудное искажение остается ниже, например, 0,1 дБ, что на практике может выразиться в разности абсолютных величин между коэффициентом (D(n)) усиления и единицей, находящейся ниже некоторого выбранного порогового значения, например 0,01.
i,j
<mrow><mrow><mo>(</mo><mrow><msubsup><mi>D</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mo>'</mo></msubsup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow>
В любом из вышеупомянутых вариантов осуществления изобретения функции (D(n)) усиления и обратные им функции
могут быть рассчитаны в момент использования или первоначально сохранены для использования так и тогда, как и когда это необходимо.
i,j
i,j
j,i
Следует, помимо этого, отметить, что функции (D(n)) усиления требуют только М/2 запоминающих элементов для каждой пары (i, j). Кроме того, не все сочетания должны быть сохранены, поскольку D(n)=D(n) для любой пары (i, j).
Ниже описан предпочтительный вариант осуществления изобретения, применяемый для уменьшения задержки.
a1
a1
z
z
z
В этом конкретном варианте осуществления изобретения в окно (h(n+M)) разложения вводятся целочисленные участки взвешивающих окон (непрерывные значения весовых коэффициентов), установленные в ноль. Если описать это более конкретно, то окно h(n+M) содержит участок, состоящий из M нолей в диапазоне 2M-M≤n<2М при M<M/2, как это показано на фиг.7, которая в этом варианте осуществления изобретения представляет два типичных окна.
a1
a2
a1
a2
a1
s2
z
В первом варианте осуществления изобретения и в противоположность предшествующему уровню техники окна h и h независимы друг от друга в диапазоне между M и 2M включительно. Единственное условие в отношении выбора окон h и h заключается в том, что значение D(n) не должно быть нолем для 0≤n<M. Эта конкретная структура окна h(n+M) обеспечивает то, что окно (h(n)) синтеза может содержать ноли между 0 и M - 1. Этот результат следует из нижеследующего уравнения:
<mrow><msub><mi>h</mi><mrow><mi>s</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>h</mi><mrow><mi>a</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow><mrow><mi>D</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac></mrow>
a1
z
z
Следовательно, понятно, что для того же самого асимметричного окна h, используемого для разложения, количество (M) нулевых коэффициентов должно удовлетворять условию M<M/2, чтобы выполнить условие для коэффициента (D(n)) усиления, заданное нижеследующим уравнением:
a1
a1
a1
a1
D(n)=h(n+M)·h(M-1-n)+h(n)·h(2М-1-n)≠0
a1
Эта установка участка окна (h(n+M)) разложения в ноль оказывает благотворное влияние на задержку восстановления отсчетов, как это описано ниже.
a1
a1
z
z
z
Обратимся к фиг.8, на которой кадр T1 (который имеет размер 2М отсчетов) обрабатывается с применением окна h. Результат этого взвешивания обрабатывается посредством дискретного косинусного преобразования. Поскольку окно h содержит ноли, кадр Т1 может просто быть закодирован и отправлен в конце 2M-M отсчетов. Нет необходимости ждать конца 2M отсчетов кадра T1 для того, чтобы отправить соответствующий закодированный кадр, но необходимо просто подождать обработки его первых 2M-M отсчетов. По сравнению с использованием стандартного окна предшествующего уровня техники это представляет опережение, соответствующее времени, требующемуся для обработки M отсчетов в конце кадра T1.
s1
z
z
z
s0
s1
z
z
При синтезе аналогичное окно (h) синтеза включает в себя M первых коэффициентов, установленных в ноль (уже не в конце, а в начале окна), что таким же образом позволяет восстанавливать декодированные отсчеты с опережением на M отсчетов. M отсчетов, соответствующих началу окна синтеза, воссоздаются в действительности предшествующим окном h с фиг.8, потому что начало окна h не оказывает никакого воздействия. Таким образом, для эффективного восстановления M декодируемых отсчетов вновь нет необходимости ждать последующих отсчетов после обратного дискретного косинусного преобразования, что при синтезе приводит в результате к дополнительному опережению на M отсчетов.
z
z
z
z
z
-1
Таким образом, введение M последовательных нулевых коэффициентов в конце окна разложения позволяет уменьшить задержку, вызванную обработкой 2M отсчетов при прямом модифицированном дискретном косинусном преобразовании (MDCT) и затем при обратном модифицированном дискретном косинусном преобразовании (MDCT). Полная задержка составляет, таким образом, 2M-2M отсчетов. Это уменьшение задержки достигнуто для окон, имеющих эффективную длину, составляющую 2M-M, тогда как решение предшествующего уровня техники предлагало бы стандартным образом окна разложения и синтеза, которые для того же самого уменьшения задержки были бы идентичными (кроме обращения времени) и имели эффективную длину, составляющую 2M-2M. Таким образом, посредством этого варианта осуществления изобретения могут быть использованы более длинные окна, и полученные частотные характеристики являются, следовательно, более предпочтительными, и качество кодирования улучшается.
Хотя в предшествующем уровне техники, если в конце или начале окна введены ноли, то центральным коэффициентам взвешивающих окон присваивается значение "1", что плохо сказывается на свойствах кодирования с этим типом окна (смотри фиг.5), изобретение свободно от этого недостатка. Кроме того, поскольку нет ограничения на выбор следующих друг за другом окон разложения, то могут быть получены удовлетворительные свойства кодирования.
z
Таким образом, из числа фильтров разложения, содержащих в конце нули (например, в каталоге фильтров-прототипов), можно выбрать преобразование разложения, которое лучше других подходит к сигналу, подлежащему кодированию, что приводит к оптимальному кодированию/декодированию сигнала и к уменьшению задержки на 2M по сравнению с предшествующим уровнем техники.
a1
a2
Ниже описан один конкретный вариант осуществления изобретения, в котором выбирается пара окон h и h для кодирования, которое позволяет избежать коррекции D'(n) при синтезе. Здесь вопрос заключается в том, чтобы значительно модифицировать начальное окно разложения, чтобы обеспечить при синтезе весовую функцию D'(n), которая является постоянной и равной единице.
С этой целью определены два участка окна разложения на основе окна h(n), определенного в диапазоне 0≤n<2M и удовлетворяющего для любого индекса n ненулевому нормировочному множителю Δ(n), при 0≤n<M:
<mrow><mi>Δ</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mrow><mi>h</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>h</mi><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>+</mo><mi>h</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mi>h</mi><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow></msqrt><mo>≠</mo><mn>0</mn></mrow>
Затем, для 0≤n<M создаются
a1
a2
h(n+M)=h(n+M)/Δ(n) и h(n)=h(n)/Δ(n)
a1
a2
Таким образом, коэффициент (D'(n)) усиления при декодировании составляет единицу для любого n, и восстановление при синтезе производится путем взвешивания посредством тех же самых, но обращенных во времени окон разложения h и h, причем за этим взвешиванием следует простое суммирование.
z
z
z
Одним примером окна h(n) для 0≤n<2M, содержащего M нолей и позволяющего ограничивать задержку 2M отсчетов для 0≤n<2M-M, является
<mrow><mi>h</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mi>sin</mi><mrow><mo>[</mo><mrow><mfrac><mi>π</mi><mrow><mn>2</mn><mi>M</mi><mo>−</mo><msub><mi>M</mi><mi>z</mi></msub></mrow></mfrac><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mfrac><mn>1</mn><mn>2</mn></mfrac></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow></mrow>
z
В иных случаях, то есть для 2M-M≤n<2M:h(n)=0
z
Другой возможный вариант, который обеспечивает избирательность по частоте, изменяющуюся в соответствии с форм-фактором (α), состоит в Кайзер-Бесселевом окне, определенном следующим образом для 0≤n<M-M/2:
<mrow><mi>h</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>,</mo><mi>α</mi></mrow><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>I</mi><mn>0</mn></msub><mrow><mo>[</mo><mrow><mi>π</mi><mi>α</mi><msqrt><mrow><mn>1</mn><mo>−</mo><msup><mrow><mrow><mo>(</mo><mrow><mfrac><mrow><mi>n</mi><mo>−</mo><msup><mi>M</mi><mo>'</mo></msup></mrow><mrow><msup><mi>M</mi><mo>'</mo></msup></mrow></mfrac></mrow><mo>)</mo></mrow></mrow><mn>2</mn></msup></mrow></msqrt></mrow><mo>]</mo></mrow></mrow><mrow><msub><mi>I</mi><mn>0</mn></msub><mrow><mo>[</mo><mrow><mi>π</mi><mi>α</mi></mrow><mo>]</mo></mrow></mrow></mfrac><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mi>п</mi><mi>р</mi><mi>и</mi><mtext> </mtext><mtext> </mtext><msup><mi>M</mi><mo>'</mo></msup><mtext> </mtext><mo>=</mo><mtext> </mtext><mtext> </mtext><mi>М</mi><mo>−</mo><msub><mi>М</mi><mi>z</mi></msub><mo>/</mo><mn>2,</mn></mrow>
z
z
где h(2M-M-1-n, α)=h(n, α) для 0≤n<M-M/2; и
z
h(n, α)=0 в иных случаях (для п, при котором 2M-M≤n<2M).
a1
a2
Видно, что, следовательно, имеется возможность определять окна (h) и (h) разложения исходя из выбранного окна (h(n)) инициализации и после этого определять окна синтеза путем простого обращения времени.
s1
s2
z
Для осуществления декодирования в соответствии с изобретением также имеется возможность определять два участка (h) и (h) окна синтеза непосредственно из окна (h(n)) инициализации, содержащего M нулевых коэффициентов в начале окна.
z
Основываясь на синусоидальном окне инициализации (кривая, показанная сплошной линией на фиг.11), так, что для 0≤n<M:
h(n)=0 и
z
для 0≤n<2M-M:
<mrow><mi>h</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><msub><mi>M</mi><mi>z</mi></msub></mrow><mo>)</mo></mrow><mo>=</mo><mi>sin</mi><mrow><mo>[</mo><mrow><mfrac><mi>π</mi><mrow><mn>2</mn><mi>M</mi><mo>−</mo><msub><mi>M</mi><mi>z</mi></msub></mrow></mfrac><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mfrac><mn>1</mn><mn>2</mn></mfrac></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow></mrow>
s1
s2
участки (h) и (h) окна синтеза выводятся в таком случае напрямую следующим образом:
s1
h(n+M)=h(n+M)/Δ(n)
s2
h(n)=h(n)/Δ(n)0≤n<M
Как и раньше, для 0≤n<M:
<mrow><mi>Δ</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mrow><mi>h</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>h</mi><mrow><mo>(</mo><mrow><mn>2</mn><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow><mo>+</mo><mi>h</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>+</mo><mi>M</mi></mrow><mo>)</mo></mrow><mi>h</mi><mrow><mo>(</mo><mrow><mi>M</mi><mo>−</mo><mn>1</mn><mo>−</mo><mi>n</mi></mrow><mo>)</mo></mrow></mrow></msqrt><mo>≠</mo><mn>0</mn></mrow>
si
s1
s2
На фиг.11 пунктирной линией показана форма полного окна (h) синтеза, получающегося в результате из двух участков (h) и (h) окна, полученных из окна (h(n)) инициализации, имеющего синусоидальное выражение и показанного в этом варианте осуществления изобретения сплошной линией.
n
i
i+j
i
i
i
i
Вариант осуществления настоящего изобретения, описанный здесь в порядке примера, также предусматривает систему кодирования/декодирования, которая показана на фиг.9. Кодер (COD) принимает цифровой сигнал (S), подлежащий кодированию, включающий в себя последовательность отсчетов (X). Эта последовательность отсчетов обрабатывается в последовательных блоках (B), (B) и т.д. каждый по 2M отсчетов (этап 101, фиг.10 А). Обрабатывающие средства (µP) кодера анализируют содержание блоков (B) один за другим (этап 102, фиг.10 А), например, в соответствии с заданным критерием (энтропия, эффективность кодирования, искажение/скорость передачи данных и т.д.) и выводят исходя из этого окно (ha) разложения, используя для этого каталог (DIC) кодера, каковое окно наилучшим образом подходит для этого блока (B) в соответствии с вышеупомянутым критерием. Выбранное таким образом взвешивающее окно (ha) разложения применяется к текущему блоку (Bi) (этап 103, фиг.10 А), который затем кодируется (этап 104).
<mrow><mrow><mo>(</mo><mrow><msubsup><mi>B</mi><mi>i</mi><mo>'</mo></msubsup></mrow><mo>)</mo></mrow></mrow>
<mrow><mrow><mo>(</mo><mrow><msubsup><mi>B</mi><mrow><mi>i</mi><mo>−</mo><mn>1</mn></mrow><mo>'</mo></msubsup></mrow><mo>)</mo></mrow></mrow>
<mrow><mrow><mo>(</mo><mrow><msubsup><mi>B</mi><mi>i</mi><mo>'</mo></msubsup></mrow><mo>)</mo></mrow><mo>,</mo></mrow>
<mrow><mrow><mo>(</mo><mrow><msubsup><mi>B</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow><mo>'</mo></msubsup></mrow><mo>)</mo></mrow><mo>,</mo></mrow>
i
i-1
i
i
i-1
i
Полученный в результате этого кодирования блок
затем отправляется декодеру (DECOD), показанному на фиг.9, в виде кодированного сигнала (S') с кодом в каталоге (DIC) для выбранного окна (ha) разложения (этап 105, фиг.10 А). Конечно, декодер (DECOD) получил с предшествующим блоком
код из каталога (DIC), обозначающий используемое перед этим окно (ha) разложения. При приеме кодированного сигнала (S'), включающего в себя последовательность закодированных блоков
и т.д. и коды (ha) окон, использованные для разложения при кодировании блоков (B) (этап 106, фиг.10 В), декодер (DECOD) определяет по своему собственному каталогу (DIC') (аналогичному каталогу (DIC) кодера) полуокна hS(n+M) и hS(n), подлежащие использованию для синтеза (этап 107).
i-1
i
n
<mrow><mrow><mo>(</mo><mrow><msubsup><mi>B</mi><mi>i</mi><mo>'</mo></msubsup></mrow><mo>)</mo></mrow></mrow>
<mrow><msub><mover accent="true"><mi>B</mi><mo>^</mo></mover><mi>i</mi></msub><mo>,</mo></mrow>
<mrow><msub><mover accent="true"><mi>B</mi><mo>^</mo></mover><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo></mrow>
<mrow><mover accent="true"><mi>S</mi><mo>^</mo></mover><mo>,</mo></mrow>
<mrow><mrow><mo>(</mo><mrow><msub><mover accent="true"><mi>X</mi><mo>^</mo></mover><mi>n</mi></msub></mrow><mo>)</mo></mrow></mrow>
В описанном здесь примере средства (µP) обработки декодера (DECOD) оценивают поправочный множитель D(n) для каждого временного индекса n, связанного с окном ha, используемым перед этим при разложении (этап 108). Если поправочный множитель близок к 1 (например, при абсолютном значении порога, составляющим 0,1 дБ), то на этапе 109 на фиг.10 В декодер не применяет никакого поправочного множителя (стрелка "да" на выходе с этапа 109). В ином случае (стрелка "нет") средства (µP) обработки применяют поправочный множитель D'(n)=1/D(n), описанный выше (этап 110). Обработка продолжается собственно декодирования на этапе 111 блоков
, взвешенных посредством окон (hS) (где нужно скорректированных посредством множителя D'), что дает декодированные блоки
и т.д. декодированного сигнала
у которого (не имеющие потерь) отсчеты
имеют значения первоначальных отсчетов (X), поскольку обеспечено полное восстановление.
Настоящее изобретение также предусматривает кодер (COD), относящийся к типу, представленному на фиг.9, а также компьютерную программу, предназначенную для хранения в памяти такого кодера, и алгоритм, который может быть таким, как представлен на блок-схеме алгоритма, показанной на фиг.10А. Оно, кроме того, предусматривает декодер (DECOD), относящийся к типу, представленному на фиг.9, а также компьютерную программу, предназначенную для хранения в памяти такого декодера, и алгоритм, который может быть таким, как представлен на блок-схеме алгоритма, показанной на фиг.10В.