ВЫЧИСЛИТЕЛЬ КОНТУРА ВРЕМЕННОЙ ДЕФОРМАЦИИ, КОДЕРА АУДИОСИГНАЛА, КОДИРОВАННОЕ ПРЕДСТАВЛЕНИЕ АУДИОСИГНАЛА, СПОСОБЫ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
TEMPORARY DEFORMATION LOOP COMPUTER, AUDIO SIGNAL ENCODER, ENCODED AUDIO SIGNAL PRESENTATION, METHODS AND SOFTWARE

Варианты технических решений настоящего изобретения относятся к вычислителю контура деформации [предыскажения] шкалы времени. Другие реализации данного изобретения связаны с кодером звукового сигнала. Еще ряд конструктивных решений предлагаемого изобретения имеют отношение к кодированному представлению звукового сигнала. Кроме того, версии осуществления изобретения относятся к способам декодированного представления аудиосигнала и кодированного представления аудиосигнала. Далее, реализации изобретения относятся к компьютерному программному обеспечению.
Некоторые конструктивные решения изобретения связаны со способами функционирования кодера-преобразователя для МДКП (MDCT) с временной деформацией [модифицированное дискретное косинусное преобразование с деформацией временной шкалы].
Ниже предлагается краткое введение в область кодирования звука с предыскажением временной шкалы, концепции которого могут найти приложение в некоторых реализациях изобретения.
В последние годы разработаны методы преобразования звукового сигнала в представление в частотной области и эффективного кодирования такого представления в частотной области, например, с учетом перцептивных порогов маскирования. Такой подход к кодированию акустического сигнала особенно продуктивен, когда фреймы, для которых передается набор кодированных коэффициентов спектрального разложения, имеют большую длину; и когда только сравнительно небольшое количество спектральных коэффициентов - намного выше глобального порога маскирования, в то время как большое количество спектральных коэффициентов находится вблизи или ниже глобального порога маскирования, и ими можно, таким образом, пренебречь (или закодировать с минимальной разрядностью кода).
Например, косинусные или синусные модуляции с наложением часто применяют для кодирования источника благодаря их свойствам уплотнения энергии. Так, для гармонических тонов с постоянными основными частотами (основной тон) они концентрируют энергию сигнала в ограниченном числе спектральных составляющих (подполосы), что позволяет эффективно представлять сигнал.
Главным образом, частоту основного тона (опорную) сигнала понимают как низшую доминантную частоту, различимую в спектре сигнала. Общепринято основным тоном речевой модели считать частоту возбуждающего сигнала, модулируемую человеческой гортанью. Наличие только одной основной частоты делает спектр сверхпростым, состоящим лишь из опорной частоты и обертонов. Кодирование такого спектра очень продуктивно. При этом в сигналах с переменной частотой основного тона энергия, соответствующая каждой гармонической составляющей, распределяется между несколькими коэффициентами преобразования, приводя, таким образом, к снижению эффективности кодирования.
Для преодоления снижения эффективности кодирования кодируемый звуковой сигнал повторно дискретизируют с получением нужного эффекта за счет неравномерности шкалы времени. В дальнейшем позиции отсчетов, полученные при неравномерной передискретизации, обрабатывают, как будто их значения расположены на равномерной шкале времени. Для названия этой процедуры обычно применяют словосочетание "деформация (или предыскажение) временной шкалы". Шаг дискретизации может быть эффективно выбран в зависимости от колебаний частоты основного тона во времени таким образом, что изменение основного тона аудиосигнала в деформированной временной области будет меньшим, чем изменение основного тона в оригинальной версии аудиосигнала (до деформации времени). После предыскажения аудиосигнала во временной области деформированную по времени версию аудиосигнала трансформируют в частотную область. Зависящая от высоты основного тона временная деформация обеспечивает эффект, при котором трансформанта предыскаженного по времени звукового сигнала, как правило, уплотняется до значительно меньшего количества компонент спектра, чем при частотном представлении оригинального звукового сигнала (без деформации шкалы времени).
На стороне декодера представление в частотной области аудиосигнала с предыскажением шкалы времени преобразуют обратно во временную область таким образом, чтобы временное представление аудиосигнала с предыскажением шкалы времени было совместимо со стороной декодера. Однако при представлении во временной области аудиосигнала с временной деформацией, реконструированного на стороне декодера, в нем отсутствуют первоначальные колебания основного тона входного сигнала со стороны кодера. В связи с этим используют еще одну деформацию временной шкалы путем передискретизации реконструированного на стороне декодера временного представления аудиосигнала с предыскажением шкалы времени. Чтобы добиться качественной реконструкции декодером входного сигнала со стороны кодера, необходимо, чтобы деформация шкалы времени на стороне декодера была, по меньшей мере, приблизительно обратной операцией предыскажения шкалы времени на стороне кодера. Чтобы достичь надлежащей деформации шкалы времени, соответствующие управляющие данные должны быть совместимы со стороной декодера, что позволяет управлять деформацией времени на стороне декодера.
Поскольку такие данные, как правило, передаются от кодера аудиосигнала к декодеру аудиосигнала, оптимально, чтобы необходимая для этого скорость передачи данных была низкой, но рассчитанной на адекватное восстановление заданных параметров деформации шкалы времени на стороне декодера.
Ввиду вышесказанного, существует необходимость в концепции, которая позволила бы эффективно восстанавливать данные предыскажения шкалы времени на базе эффективно кодируемого представления данных предыскажения шкалы времени.
Краткое описание изобретения
Конструктивные решения в соответствии с настоящим изобретением направлены на воплощение вычислителя контура предыскажения (деформации) шкалы времени для применения в декодере звукового сигнала с целью формирования декодированного представления аудиосигнала на базе кодированного представления аудиосигнала. Вычислитель контура деформации шкалы времени предназначен для приема кодированных данных о коэффициентах деформации, извлечения из данных о коэффициентах деформации последовательности значений коэффициентов деформации и получения значений узлов контура деформации, считая от начального значения деформации шкалы времени. Отношения значений узлов контура предыскажения шкалы времени (то есть - значений координатных точек контура деформации времени, отличных от начальной узловой точки) к начальному значению контура предыскажения шкалы времени, привязанному к начальной узловой точке этого контура, определяются величинами коэффициентов деформации. Вычислитель контура предыскажения шкалы времени предназначен для расчета значения данного узла контура предыскажения шкалы времени, который отделен от начального узла контура предыскажения шкалы времени промежуточной узловой точкой контура предыскажения шкалы времени, из произведения от умножения коэффициентов, которыми являются, с одной стороны, отношение значения промежуточного узла контура предыскажения шкалы времени к начальному значению контура предыскажения шкалы времени и, с другой стороны, отношение значения данного узла контура предыскажения шкалы времени к значению промежуточной узловой точки контура предыскажения шкалы времени. Ключевой идеей данного варианта реализации изобретения является то, что эффективное кодирование контура предыскажения шкалы времени может быть достигнуто, если отношения последовательных значений узлов контура предыскажения шкалы времени кодируются в форме данных о коэффициентах деформации. Установлено, что относительное изменение (то есть отношение) значений двух последовательных узлов контура предыскажения шкалы времени является величиной, которая может быть эффективно закодирована в битовой форме без серьезного снижения качества реконструкции контура предыскажения шкалы времени. Например, установлено, что отношения значений последовательных узлов контура предыскажения времени, как правило, входят в одну область значений независимо от абсолютного значения контура предыскажения времени, таким образом, кодирование коэффициентов деформации может быть выбрано в независимости от текущего абсолютного значения контура предыскажения временной шкалы. Значения узловых точек контура предыскажения временной шкалы вычисляют путем получения произведения таким образом, что значение новой узловой точки контура предыскажения выводится из значения предыдущей узловой точки контура предыскажения через произведение (то есть умножением). За счет этого задается диапазон относительных разностей величин последовательных узлов контура предыскажения шкалы времени, определяемый кодированными величинами коэффициентов деформации. Таким образом гарантируется отсутствие в контуре предыскажения шкалы времени нежелательных чрезмерных неравномерностей, которые ведут к акустической дисторсии. Кроме того, было установлено, что сложные действия по аппроксимации кривой можно исключить путем вычисления значений последовательных узлов контура деформации шкалы времени через получение произведения. Соответственно, сложность декодера можно сохранить на сравнительно невысоком уровне. В частности, можно значительно сократить объем трудоемких математических действий (допустим, операций деления).
Суммируя вышесказанное, можно сделать вывод, что описанная реализация изобретения дает возможность эффективного и точного восстановления контура деформации шкалы времени благодаря тому, что относительное изменение контура деформации времени между последовательно расположенными координатами, как правило, ограничено узким диапазоном значений, при этом контур может быть описан с достаточной точностью с помощью кодируемой информации о коэффициентах деформации шкалы времени (здесь также кратко обозначенной как данные о коэффициентах деформации), даже если для кодирования величин коэффициентов деформации используется небольшое количество битов (например, 3 бита или 4 бита). Расчет значений узлов контура предыскажения (деформации) шкалы времени в вычислительном отношении эффективен и обеспечивает в психоакустическом плане оптимальную связность контура предыскажения шкалы времени.
В предпочтительной версии исполнения вычислитель контура деформации шкалы времени предусматривает периодический рестарт от начального значения контура деформации шкалы времени. Периодический рестарт от начального значения контура деформации шкалы времени позволяет добиться ограничения диапазона значений контура деформации шкалы времени величинами в области начального значения контура деформации шкалы времени. Следовательно, трудоемкость, задаваемая вычислителю контура деформации шкалы времени, может удерживаться на низком уровне и полностью подконтрольна, поскольку уход значений узловых точек контура деформации времени от начального значения контура деформации времени ограничен областью величин коэффициентов деформации и количеством узловых точек контура деформации шкалы времени между двумя последовательными рестартами. Таким образом, числовое антипереполнение или переполнение могут быть надежно предотвращены, даже если вычислитель контура предыскажения шкалы времени имеет относительно небольшую числовую разрешающую способность или числовой диапазон значений (что предусматривает упрощение технического исполнения).
В предпочтительном варианте осуществления вычислитель контура предыскажения шкалы времени выполняет функцию отображения кодируемых данных о коэффициентах деформации в последовательности величин коэффициентов деформации с использованием правила картирования, которое описывает порядок преобразования множества индексов таблицы кодов коэффициентов деформации в соответствующие величины коэффициентов деформации и которое выбирают таким образом, чтобы это правило картирования содержало множество пар обратных величин коэффициентов деформации, причем так, чтобы произведение двух коэффициентов деформации пары обратных величин коэффициентов деформации лежало в пределах от 0,9997 до 1,0003. Подобный алгоритм кодирования величин коэффициентов деформации позволяет точно представлять контуры предыскажения шкалы времени, которые возвращаются к предыдущему значению. Было установлено, что в некоторых случаях желательно, чтобы контур предыскажения шкалы времени отклонялся на некоторое время от первоначального значения (например, для некоторого множества узлов контура предыскажения шкалы времени), а затем возвращался к первоначальному значению. Было также определено, что, если итоговое значение контура предыскажения времени отклоняется от первоначального значения, могут произойти акустические искажения. Тем не менее, введение пар обратных величин коэффициентов деформации может обеспечить возврат контура предыскажения шкалы времени к его первоначальному значению с очень высокой точностью. Таким образом, предотвращается возникновение потенциальных акустических артефактов, которые могут явиться результатом рассогласования между исходным значением узла контура предыскажения шкалы времени и тем значением его узла, к которому этот контур предыскажения времени возвращается через некоторое время.
В предпочтительном варианте осуществления вычислитель контура предыскажения шкалы времени выполняет функцию отображения кодируемой информации о коэффициентах деформации в последовательности значений коэффициентов деформации с использованием правила картирования, где описывается порядок преобразования множества индексов таблицы кодов коэффициентов деформации в соответствующие величины коэффициентов деформации, где это правило картирования выбирают таким образом, чтобы оно содержало множество пар обратных величин коэффициентов деформации, причем так, чтобы произведение двух коэффициентов деформации пары обратных величин коэффициентов деформации лежало в диапазоне между 0,97 и 1,03. Было сделано заключение, что такой выбор дает возможность достаточно точно описывать контур предыскажения шкалы времени при сохранении битрейта, необходимого для кодирования коэффициента деформации, на достаточно низком уровне.
В предпочтительном варианте осуществления вычислитель контура предыскажения шкалы времени выполняет функцию отображения кодируемой информации о коэффициентах деформации в последовательности значений коэффициентов деформации с использованием правила картирования, где описывается порядок преобразования множества индексов таблицы кодов коэффициентов деформации в соответствующие величины коэффициентов деформации, и где правило картирования выбирают асимметрично, чтобы диапазон восходящих значений коэффициентов деформации был шире, чем диапазон нисходящих значений коэффициентов деформации. Было установлено, что такой вариант правила картирования хорошо адаптирован к характеристикам речи человека и типичных образцов музыки. Следовательно, асимметричный вариант правила картирования обеспечивает оптимальное использование доступного битрейта, что является очень важным критерием в сфере кодирования и декодирования звука.
В предпочтительной версии конструктивного исполнения вычислитель контура предыскажения шкалы времени предназначен для получения протокольных данных, дифференцирующих непеременный (скажем, сглаженный) или переменный (к примеру, несглаженный) контур предыскажения шкалы времени для данного фрейма кодированного представления аудиосигнала, и, в зависимости от протокольных данных, указывающих на переменный или непеременный тип контура предыскажения шкалы времени, для выведения значений узловых точек контура предыскажения шкалы времени для данного фрейма на основании кодированных данных о коэффициентах деформации, или для задания значений узловых точек контура предыскажения шкалы времени для данного фрейма относительно начального значения контура деформации шкалы времени. В данной конструктивной версии передача любых кодированных данных о коэффициентах деформации времени на вычислитель контура деформации шкалы времени может быть отменена для фреймов, где служебная информация указывает на наличие непеременного контура предыскажения шкалы времени. В силу этого, аудиофреймы, заключающие в себе непеременный контур предыскажения шкалы времени (или в которых не может быть распознан переменный контур предыскажения шкалы времени), содержат только соответствующий флажок, обозначающий этот непеременный контур предыскажения шкалы времени (или отсутствие переменного контура предыскажения шкалы времени). И наоборот, аудиофреймы, заключающие в себе переменный контур предыскажения шкалы времени, содержат флажок, указывающий, что контур предыскажения шкалы времени - не непеременный и, в дополнение к этому, кодированную информацию о коэффициентах деформации шкалы времени. Таким образом, в то время как аудиофреймы, включающие в себя переменный контур предыскажения шкалы времени, содержат кроме закодированных данных о коэффициентах деформации времени дополнительный флажок (например, один бит), аудиофреймы, в которых контур предыскажения шкалы времени является непеременным, содержат только флажок (например, один бит), но не включают в себя закодированные данные о коэффициентах деформации. В силу того, что чаще всего значительная доля фреймов содержит непеременный контур предыскажения времени (или переменный контур предыскажения времени в них не может быть идентифицирован), количество битов, необходимых для описания контура предыскажения шкалы времени, как правило, сокращается, если сравнивать со случаями, когда закодированные данные о коэффициентах деформации шкалы времени содержатся в каждом аудиофрейме, даже если во фреймах, которые содержат варьируемый контур предыскажения времени, что число единиц информации увеличивается (например, на один бит).
В предпочтительном конструктивном варианте вычислитель контура предыскажения шкалы времени предназначается для линейной интерполяции между значениями узлов контура предыскажения времени, вырабатывать значения новых интервалов контура предыскажения временной шкалы. Благодаря такой интерполяции достигают повышенной прецизионности при реконструкции контура предыскажения шкалы времени.
В предпочтительной версии исполнения вычислитель контура предыскажения предусматривает итеративное вычисление последовательности значений узлов контура предыскажения шкалы времени, при котором вычислитель контура предыскажения шкалы времени рассчитывает последующее значение узла контура предыскажения шкалы времени от текущего значения узла контура предыскажения шкалы времени путем умножения текущего значения узла контура предыскажения шкалы времени на соответствующий коэффициент деформации шкалы времени. За счет этого достигается эффективное использование значений коэффициентов деформации шкалы времени. В частности, значение узловой точки контура деформации шкалы времени может быть выведено из предыдущего значения узла контура деформации шкалы времени в пошаговом режиме.
Другим техническим решением в соответствии с настоящим изобретением является кодер аудиосигнала, предназначенный для кодированного представления звукового сигнала. Кодер аудиосигнала включает в себя кодер контура предыскажения шкалы времени, характеризующийся тем, что он получает данные контура предыскажения шкалы времени, относящиеся к аудиосигналу, вычисляет отношение последовательных значений узлов контура предыскажения шкалы времени и кодирует отношение последовательных значений узлов контура предыскажения шкалы времени. Кодер аудиосигнала, далее, включает в себя кодер сигнала предыскажения шкалы времени, характеризующийся тем, что он принимает кодированное представление спектра аудиосигнала, учитывая предыскажение временной шкалы, описанное данными контура предыскажения временной шкалы. Кодированное аудиопредставление звукового сигнала содержит кодированное отношение (последовательных значений узлов контура предыскажения шкалы времени) и кодированное представление спектра аудиосигнала. Кодер аудиосигнала согласно данному конструктивному решению формирует кодированное представление звукового сигнала, которое хорошо соответствует требованиям вычислений на стороне кодера контура предыскажения шкалы времени, который был описан выше. В частоности, как правило, обеспечивается возможность кодирования отношения последовательных значений узлов контура предыскажения шкалы времени с большой точностью при использовании небольшого числа битов. Как было рассмотрено выше, отношение последовательных значений узлов контура предыскажения шкалы времени находится чаще всего в одной области значений как для абсолютных величин контура предыскажения шкалы времени, так и для больших абсолютных величин контура предыскажения шкалы времени. Кроме того, расчет отношения последовательных значений узловых точек контура предыскажения шкалы времени может быть выполнен с очень низкой вычислительной трудоемкостью, что упрощает конструкцию кодера аудиосигнала.
В предпочтительном варианте реализации изобретения кодер контура предыскажения шкалы времени выполняет проверку совместимости варьируемого контура предыскажения шкалы времени с данным фреймом аудиосигнала и устанавливает в кодируемом представлении аудиосигнала флажок отсутствия переменного контура предыскажения шкалы времени, если переменный контур предыскажения шкалы времени не совместим с данным фреймом аудиосигнала. В частности, в данном случае флажок, индицирующий наличие варьируемого контура предыскажения шкалы времени, может быть деактивирован (или вновь установлен). Кодер контура предыскажения шкалы времени предусматривает также пропуск ввода кодированных значений коэффициентов в кодируемое представление аудиосигнала, если переменный контур предыскажения времени не совместим с данным фреймом аудиосигнала. В силу этого происходит минимизация битрейта для звуковых сигналов, содержащих значительное количество фреймов, с которыми переменный контур предыскажения шкалы времени не совместим. Здесь необходимо отметить, что переменный контур предыскажения шкалы времени, как правило, не совместим с аудиосигналами, содержащими непеременный контур предыскажения времени, а также с аудиосигналами, из которых извлечение контура предыскажения времени невозможно (или не дает значащий результат). Как уже рассматривалось выше, использование флажка, сигнализирующего наличие или отсутствие переменного контура предыскажения шкалы времени, способствует снижению битрейта, необходимого для кодирования контура предыскажения шкалы времени типичных акустических сигналов.
При осуществлении изобретения формируется кодированное представление аудиосигнала, отображающее звуковой сигнал. Кодированное представление аудиосигнала включает в себя кодированное представление в частотной области, отображающее один или более звуковых каналов, вторично дискретизированных в соответствии с предыскажением временной шкалы. Кодированное представление аудиосигнала также включает в себя кодированное представление контура предыскажения шкалы времени, представляющего деформацию шкалы времени, где кодированное представление контура предыскажения шкалы времени содержит множество кодированных значений коэффициентов временной деформации. Значения коэффициентов временной деформации выражают отношения последовательных значений узловых точек контура предыскажения шкалы времени. Такое кодированное представление аудиосигнала несет информацию о предыскажении шкалы времени в высокоэффективной форме и предполагает использование вышеописанного эффективного вычислителя контура предыскажения шкалы времени.
В предпочтительной версии исполнения изобретения кодированное представление аудиосигнала включает в себя флажок, устанавливаемый в каждом фрейме, для индикации наличия кодированного представления контура предыскажения шкалы времени в соответствующем фрейме.
Еще одной формой осуществления изобретения является способ декодированного представления аудиосигнала на основе кодированного представления аудиосигнала. Способ заключается в приеме кодированных данных о коэффициентах деформации, в вычислении последовательности величин коэффициентов деформации из закодированных данных о коэффициентах деформации и в определении множества значений узловых точек контура деформации с опорой на значение начальной координаты контура деформации. Отношения значений узловых точек контура деформации шкалы времени (координат контура временной деформации, отличных от опорной координаты контура временной деформации) и значение начальной узловой точки контура деформации шкалы времени определяются значениями коэффициентов деформации шкалы времени. Значение конкретной узловой точки контура деформации шкалы времени, которая отделена от начальной узловой точки контура деформации шкалы времени промежуточной узловой точкой контура деформации шкалы времени, вычисляется из произведения от умножения коэффициентов, которыми служат, с одной стороны, отношение значения промежуточной узловой точки контура деформации шкалы времени к начальному значению контура деформации шкалы времени и, с другой стороны, отношение значения данной узловой точки контура деформации шкалы времени к значению промежуточной узловой точки контура деформации шкалы времени. Этот способ имеет такие же преимущества, как и рассмотренный выше вычислитель контура предыскажения шкалы времени, и может быть дополнен такими же свойствами и функциональными возможностями, что и вычислитель контура предыскажения шкалы времени, описанный здесь.
Одной из реализаций настоящего изобретения является способ формирования кодированного представления акустического сигнала. Способ состоит в получении данных контура предыскажения шкалы времени для звукового сигнала, в вычислении отношения последовательных значений узловых точек контура предыскажения шкалы времени и в кодировании отношения последовательных значений узловых точек контура предыскажения шкалы времени. Кроме того, способ состоит в получении кодированного представления спектра звукового сигнала с учетом предыскажения временной шкалы, описанного данными предыскажения шкалы времени. Кодированное представление звукового сигнала включает в себя кодированное отношение и кодированное представление спектра. Этот способ имеет такие же преимущества, как и декодер аудиосигнала, упомянутый выше, и может быть дополнен любыми характеристиками и функциональными возможностями, описанными здесь относительно кодера аудиосигнала.
Другой частью реализации настоящего изобретения является компьютерная программа, предназначенная для осуществления рассматриваемых здесь способов.
Еще одним элементом конструктивного решения данного изобретения является декодер аудиосигнала, включающий в себя вышеупомянутый вычислитель контура деформации шкалы времени. Декодер аудиосигнала может быть дополнен любыми описанными здесь характеристиками и функциональными возможностями.
Краткое описание фигур.
Далее, варианты технических решений в соответствии с предлагаемым изобретением будут описаны со ссылкой на прилагаемые фигуры, где:
на фиг.1 представлена принципиальная блочная схема аудиокодера предыскажения (деформации) шкалы времени;
на фиг.2 представлена принципиальная блочная схема аудиодекодера деформации (предыскажения) шкалы времени;
на фиг.3 представлена принципиальная блочная схема реализации декодера аудиосигнала в соответствии с данным изобретением;
на фиг.4 дана блок-схема осуществления способа формирования декодированного представления аудиосигнала в соответствии с данным изобретением;
на фиг.5 представлен детализированный фрагмент принципиальной блочной схемы реализации декодера аудиосигнала в соответствии с данным изобретением;
на фиг.6 дан детализированный фрагмент блок-схемы осуществления способа формирования декодированного представления аудиосигнала в соответствии с данным изобретением;
на фиг.7а, 7b графически отображен процесс реконструкции контура деформации (предыскажения) шкалы времени при реализации данного изобретения;
на фиг.8 графически отображен другой пример реконструкции контура деформации (предыскажения) шкалы времени в соответствии с данным изобретением;
на фиг.9а и 9b представлены алгоритмы вычисления контура предыскажения (деформации) шкалы времени;
на фиг.9с приведена таблица перевода индексов отношений деформации времени в значения коэффициентов деформации времени;
на фиг.10а и 10b представлены алгоритмы расчета изохроны, шага дискретизации, длины перехода, "первой позиции" и "последней позиции";
на фиг.10с представлены алгоритмы расчета конфигурации окна;
на фиг.10d и 10е представлены алгоритмы приложения окна;
на фиг.10f представлены алгоритмы варьируемой во времени передискретизации;
на фиг.10g графически представлены алгоритмы обработки фреймов после временной деформации и алгоритмы наложения и сложения;
на фиг.11a и 11b даны условные обозначения;
на фиг.12 представлена изохрона, которая может быть извлечена из контура предыскажения (деформации) шкалы времени;
на фиг.13 представлена подробная принципиальная блочная схема устройства формирования контура предыскажения (деформации) в соответствии с данным изобретением;
на фиг.14 представлена принципиальная блочная схема другого варианта решения декодера аудиосигнала в соответствии с данным изобретением;
на фиг.15 представлена принципиальная блочная схема другого варианта решения вычислителя контура предыскажения (деформации) шкалы времени в соответствии с данным изобретением;
на фиг.16а, 16b приведены графики, отображающие процесс вычисления значений узлов деформации шкалы времени в соответствии с данным изобретением;
на фиг.17 представлена принципиальная блочная схема варианта решения кодера аудиосигнала в соответствии с данным изобретением;
на фиг.18 представлена принципиальная блочная схема варианта исполнения декодера аудиосигнала в соответствии с данным изобретением; и
на фиг.19a-19f представлены элементы синтаксиса звукового потока в рамках осуществления настоящего изобретения.
Подробное техническое описание
1. Аудиокодер предыскажения шкалы времени в соответствии с фиг.1
Поскольку предлагаемое изобретение относится к кодированию и декодированию звуковых сигналов с предыскажением временной шкалы, следует кратко проанализировать прототип аудиокодера и аудиодекодера деформации временной шкалы, где может быть применено изобретение.
На фиг.1 представлена принципиальная блочная схема аудиокодера предыскажения шкалы времени, в котором могут быть применены некоторые подходы и конструктивные решения изобретения. Кодер аудиосигнала 100 на фиг.1 предназначен для приема входного аудиосигнала 110 и формирования кодированного представления входного аудиосигнала 110 в виде последовательности фреймов. Аудиокодер 100 включает в себя дискретизатор 104, предназначенный для дискретизации (входного) аудиосигнала 110 с образованием блоков сигнала (отсчетов) 105, используемых как материал для преобразования в частотную область. Далее, аудиокодер 100 включает в себя вычислитель окон преобразования 106, предназначенный для формирования окон масштабирования для отсчетов дискретного представления 105, передаваемого с выхода дискретизатора 104. Эти отсчеты вводятся в оконный преобразователь 108, предназначенный для приложения окон масштабирования к отсчетам дискретного представления 105, генерируемым дискретизатором 104. В некоторых версиях исполнения аудиокодер 100 может дополнительно содержать преобразователь в частотную область 108а, предназначенный для формирования частотного представления (например, в виде коэффициентов преобразования) масштабированных дискретов 105. Составляющие частотного представления могут быть обработаны или переданы дальше в виде кодированного представления аудиосигнала 110.
Кроме того, аудиокодер 100 задействует контур основного тона 112 аудиосигнала 110, который может быть введен в аудиокодер 100 или который может быть сгенерирован аудиокодером 100. Соответственно, аудиокодер 100 может быть произвольно оснащен оценивателем частоты основного тона, предусматривающим вычисление контура основного тона 112. Дискретизатор 104 может обрабатывать непрерывный входной аудиосигнал 110. И наоборот, дискретизатор 104 может обрабатывать уже дискретизированный входной аудиосигнал 110. В последнем случае, дискретизатор 104 может передискретизировать звуковой сигнал 110. Дискретизатор 104, например, может быть рассчитан на предыскажение временной шкалы смежных перекрывающихся аудиоблоков с получением на участке наложения постоянной частоты основного тона или снижения колебаний частоты основного тога внутри каждого входного блока после дискретизации.
Вычислитель окон преобразования 106 рассчитывает окна масштабирования для аудиоблоков в зависимости от предыскажения шкалы времени, выполненного дискретизатором 104. Для этого как опция может быть введен блок установки шага дискретизации 114, задающий дискретизатору правило предыскажения временной шкалы, которое затем также передается на вычислитель окон преобразования 106. Возможен вариант реализации, при котором блок настройки шага дискретизации 114 исключен, а контур основного тона 112 напрямую пересылается на вычислитель окон преобразования 106, который самостоятельно выполняет соответствующие вычисления. Более того, дискретизатор 104 может передавать примененные параметры дискретизации на вычислитель окон преобразования 106 для обеспечения вычисления соответствующих окон масштабирования.
Предыскажение шкалы времени осуществляется таким образом, что контур основного тона дискретизированных аудиоблоков, деформированный по времени и разбитый на отсчеты дискретизатором 104, более устойчив, чем контур основного тона исходного звукового сигнала 110 на входном терминале.
2. Аудиодекодер деформации шкалы времени в соответствии с фиг.2
На фиг.2 представлена принципиальная блочная схема декодера деформированного по шкале времени аудиосигнала 200, предназначенного для обработки первого деформированного по времени и дискретизированного или просто деформированного по времени представления первого и второго фрейма аудиосигнала, состоящего из последовательности фреймов, в которой второй фрейм следует за первым фреймом, и для последующей обработки второго деформированного по времени представления второго фрейма и третьего фрейма, следующего за вторым фреймом в последовательности фреймов. Аудиодекодер 200 включает в себя вычислитель окон преобразования 210, предназначенный для формирования первого окна масштабирования для первого деформированного по времени представления 211a с использованием данных контура основного тона 212 первого и второго фрейма и для формирования второго окна масштабирования для второго деформированного по времени представления 211b с использованием данных контура основного тона второго и третьего фрейма, где окна масштабирования могут иметь одинаковый по количеству набор отсчетов, и где первый набор отсчетов, используемый для затухания первого окна масштабирования, может отличаться от второго набора отсчетов, используемого для наплыва второго окна масштабирования. Далее, аудиодекодер 200 включает в себя оконный преобразователь 216, предназначенный для приложения первого окна масштабирования к первому представлению деформации временной шкалы и для приложения второго окна масштабирования ко второму деформированному по времени представлению. Кроме того, аудиодекодер 200 включает в себя передискретизатор 218, предназначенный для выполнения обратной деформации временной шкалы первого масштабированного деформированного по времени представления с целью формирования первого дискретного представления с использованием данных контура основного тона первого и второго фрейма и для обратной деформации временной шкалы второго масштабированного представления с целью формирования второго дискретного представления с использованием данных контура основного тона второго и третьего фрейма таким образом, что фрагмент первого дискретного представления, соответствующий второму фрейму, включает в себя контур основного тона, в пределах заданной области допустимых значений равный контуру основного тона фрагмента второго дискретного представления, соответствующего второму фрейму. Для генерации окна масштабирования вычислитель окон преобразования 210 получает или непосредственно контур основного тона 212, или данные деформации временной шкалы, от вспомогательного блока установки шага дискретизации 220, который принимает контур основного тона 212 и который рассчитывает стратегию обратной деформации шкалы времени таким образом, чтобы позиции на линейной временной шкале отсчетов, относящихся к участкам наложения, были идентичны или почти идентичны и равноудалены, выравнивая основной тон на участках перекрывания; при этом факультативно длины участков затухания в перекрываемых зонах окон, разновеликие до выполнения обратной деформации временной шкалы, после обратной деформации шкалы времени становятся равными.
Дополнительно аудиодекодер 200 имеет в своем составе вспомогательный сумматор 230, предназначенный для сложения фрагмента первого дискретного представления, соответствующего второму фрейму, и фрагмента второго дискретного представления, соответствующего второму фрейму, с получением реконструированного представления второго фрейма аудиосигнала в качестве выходного сигнала 242. Первое представление с деформацией временной шкалы и второе представление с деформацией временной шкалы в одной из аппаратных версий могут быть переданы как входной сигнал на аудиодекодер 200. В другом конструктивном исполнении аудиодекодер 200 может, по усмотрению, включать в себя обратный частотный преобразователь 240, который рассчитывает первое и второе деформированные по времени представления на основе частотных представлений первого и второго деформированных по времени представлений, поступающих на вход обратного частотного преобразователя 240.
3. Декодер деформированного по времени аудиосигнала в соответствии с фиг.3
Ниже рассматривается упрощенная конструкция декодера аудиосигнала. На фиг.3 представлена принципиальная блочная схема такого упрощенного декодера звукового сигнала 300. Декодер аудиосигнала 300 получает кодированное представление аудиосигнала 310 и на его основе формирует декодированное представление аудиосигнала 312, причем кодированное представление аудиосигнала 310 содержит данные эволюции контура предыскажения шкалы времени. Декодер аудиосигнала 300 включает в себя вычислитель контура деформации шкалы времени 320, генерирующий данные контура деформации шкалы времени 322 на основе данных эволюции контура предыскажения шкалы времени, описывающих прохождение во времени траектории контура предыскажения временной шкалы и входящих в кодированное представление аудиосигнала 310. При извлечении параметров контура деформации шкалы времени 322 из данных эволюции предыскажения времени 312 вычислитель контура деформации шкалы времени 320 многократно выполняет рестарт от заданного начального значения контура деформации шкалы времени, что будет подробно описано далее. Вследствие таких перезапусков в контуре деформации шкалы времени могут возникнуть скачки (ступенчатые изменения, превышающие шаг кодированных данных эволюции предыскажения времени 312). Далее, декодер аудиосигнала 300 включает в себя блок перемасштабирования данных контура деформации шкалы времени 330 (рескейлер), предназначенный для перемасштабирования, по меньшей мере, части данных контура деформации шкалы времени 322 для предотвращения, сокращения или устранения скачков рестартов, возникших при вычислении контура деформации временной шкалы, в перемасштабированной версии 332 контура деформации шкалы времени.
Декодер аудиосигнала 300 также включает в себя декодер деформации 340, предназначенный для формирования декодированного представления аудиосигнала 312 на основе кодированного представления аудиосигнала 310 с использованием перемасштабированной версии 332 контура деформации шкалы времени.
Рассматривая декодер аудиосигнала 300 в контексте декодирования аудиосигнала с деформированной шкалой времени, следует отметить, что кодированное представление аудиосигнала 310 может содержать кодированное представление коэффициентов преобразования 211, а также кодированное представление контура основного тона 212 (называемого также контуром деформации (предыскажения) шкалы времени). Вычислитель контура деформации шкалы времени 320 и блок перемасштабирования данных контура деформации шкалы времени 330 предусматривают возможность реконструкции представления контура основного тона 212 в форме перемасштабированной версии 332 контура деформации шкалы времени. Декодер деформации 340 может, например, принять на себя выполнение функций оконного преобразования 216, передискретизации 218, установки частоты дискретизации 220 и задания формы окна 210. Кроме того, декодер деформации 340 может, в частности, в качестве опции включать в свои функции обратное преобразование 240 и наложение/сложение 230, формируя декодированное представление аудиосигнала 312, эквивалентное выходному аудиосигналу 232 декодера аудиосигнала, деформированного по шкале времени 200.
С помощью перемасштабирования данных контура деформации шкалы времени 322 может быть получена непрерывная (или, по меньшей мере, приблизительно непрерывная) ремасштабированная версия 332 контура деформации шкалы времени, благодаря чему предотвращается числовое переполнение или антипереполнение даже при использовании данных эволюции предыскажения времени относительного изменения с эффективным для кодирования относительным изменением.
4. Способ формирования декодированного представления аудиосигнала в соответствии с фиг.4.
На фиг.4 дана блок-схема алгоритма формирования декодированного представления аудиосигнала на базе кодированного представления аудиосигнала, содержащего параметры эволюции деформации временной шкалы, при этом такое декодированное представление может быть генерировано устройством 300 в соответствии с фиг.3.
На первом шаге 410 способа 400 генерируются данные контура деформации шкалы времени путем многократного рестарта от заданного начального значения контура деформации шкалы времени на основании данных эволюции деформации времени, описывающих формирование во времени контура деформации шкалы времени.
На следующем шаге 420 способа 400 выполняется перемасштабирование, по меньшей мере, части управляющих данных деформации временной шкалы, в результате которого в ремасштабированной версии контура временной деформации предотвращается, сокращается или устраняется неравномерность на одном из рестартов.
На следующем шаге 430 способа 400 формируется декодированное представление аудиосигнала на основе кодированного представления аудиосигнала с использованием ремасштабированной версии контура предыскажения шкалы времени.
5. Подробное описание реализации изобретения в контексте фиг.5-9.
Далее дается детализация конструктивного решения изобретения с опорой на фиг. с 5 по 9.
На фиг.5 отображена принципиальная блочная схема устройства 500, формирующего параметры управления деформацией временной шкалы 512 на основе данных эволюции предыскажения времени 510. В устройство 500 входят модуль 520 реконструкции данных контура деформации шкалы времени 522 на основе данных эволюции предыскажения времени 510 и вычислитель управляющих параметров деформации временной шкалы 530, формирующий параметры управления деформацией шкалы времени 512 на основе реконструированных данных контура деформации временной шкалы 522.
Модуль 520 реконструкции данных контура деформации шкалы времени
Ниже описаны структура и функциональные возможности модуля 520. Модуль 520 включает в себя вычислитель контура деформации шкалы времени 540, который принимает данные эволюции предыскажения времени 510 и на их основе генерирует новые данные в отношении фрагмента контура деформации 542. Например, на устройство 500 может быть передан набор данных эволюции предыскажения времени по каждому фрейму реконструируемого аудиосигнала. Вместе с тем, набор данных эволюции предыскажения времени 510, ассоциированный с фреймом восстанавливаемого аудиосигнала, может быть использован для воссоздания множества фреймов аудиосигнала. Аналогично, множество наборов данных эволюции предыскажения времени может быть использовано для реконструкции звукового материала одиночного фрейма аудиосигнала, что будет подробно рассмотрено ниже. Можно заключить, что в некоторых реализациях данные эволюции предыскажения временной шкалы 510 могут обновляться с той же частотой, что и наборы коэффициентов области преобразования реконструируемого или корректируемого аудиосигнала (один участок контура деформации времени за один фрейм аудиосигнала).
Вычислитель контура деформации времени 540 имеет в своем составе вычислитель значений узлов контура деформации 544, предназначенный для расчета множества (или временной последовательности) значений узлов контура деформации на основе множества (или временной последовательности) показателей отношения отсчетов контура деформации времени (или индексов относительных показателей деформации времени), при этом значения (или индексы) коэффициентов деформации шкалы времени входят в состав данных эволюции предыскажения времени 510. Для этого вычислитель значений узлов контура деформации 544 начинает расчет значений узлов контура деформации временной шкалы с заданного опорного значения (скажем, 1) и высчитывает последующие значения узлов контура деформации времени, используя относительные значения отсчетов контура деформации времени, что будет рассмотрено дальше.
Вычислитель контура деформации шкалы времени 540 может включать в себя в качестве опции интерполятор 548, предназначенный для интерполяции между последовательными значениями узлов контура деформации шкалы времени. Соответственно, для контура деформации временной шкалы формируется описание 542 нового фрагмента, который, как правило, начинается с заданного опорного значения, используемого вычислителем значений узлов контура деформации 544. Кроме того, модуль 520 рассчитывает дополнительные фрагменты контура деформации шкалы времени, а именно так называемый „последний фрагмент контура деформации времени" и так называемый „текущий фрагмент контура деформации времени", для формирования полного сегмента контура деформации шкалы времени. С этой целью модуль 520 вводит так называемый „последний фрагмент контура деформации времени" и так называемый „текущий фрагмент контура деформации времени" в память, которая не показана на фиг.5.
При этом модуль 520 также включает в себя блок перемасштабирования 550, который вторично масштабирует „последний фрагмент контура деформации времени" и „текущий фрагмент контура деформации времени" для предотвращения (или сокращения, или устранения) любых нарушений непрерывности в полном сегменте контура деформации шкалы времени, который составляется из „последнего фрагмента контура деформации времени", „текущего фрагмента контура деформации времени" и „нового фрагмента контура деформации времени". С этой целью блок перемасштабирования 550 извлекает из памяти характеристики „последнего фрагмента контура деформации времени" и „текущего фрагмента контура деформации времени" и совокупно ремасштабирует „последний фрагмент контура деформации времени" и „текущий фрагмент контура деформации времени" с формированием перемасштабированных версий „последнего фрагмента контура деформации времени" и „текущего фрагмента контура деформации времени". Детали процедуры вторичного масштабирования, выполняемой блоком перемасштабирования 550, будут рассмотрены ниже, со ссылкой на фиг.7а, 7b и 8.
Кроме того, рескейлер 550 может получать, например, из памяти, не отображенной на фиг.5, некую суммарную величину, соотносящуюся с „последним фрагментом контура деформации времени", и другую суммарную величину, соотносящуюся с „текущим фрагментом контура деформации времени". Эти суммарные величины иногда обозначены здесь как „last_warp_sum" и „cur_warp_sum", соответственно. Блок перемасштабирования 550 ремасштабирует суммарные значения, соотнесенные с участками контура деформации временной шкалы, с использованием того же коэффициента ремасштабирования, с помощью которого вторично масштабируются соответствующие фрагменты контура деформации шкалы времени. Таким образом выводят перемасштабированные суммарные величины.
В некоторых случаях модуль 520 может иметь в своем составе блок актуализации 560, предназначенный для непрерывного обновления фрагментов контура деформации временной шкалы, вводимых в рескейлер 550, а также вводимых в блок перемасштабирования 550 суммарных величин. Например, блок актуализации 560 может обновлять названные данные с частотой смены фреймов. Например, „новый фрагмент контура деформации времени" текущего цикла обработки фрейма может служить „текущим фрагментом контура деформации времени" в следующем цикле обработки фрейма. Аналогично, ремасштабируемый „текущий фрагмент контура деформации времени" текущего цикла обработки фрейма может служить „последним фрагментом контура деформации времени" в следующем цикле обработки фрейма. Таким образом создается эффективный вариант реализации с рациональным пользованием ресурсом памяти, поскольку „последний фрагмент контура деформации времени" текущего цикла обработки фрейма по завершении этого цикла может быть удален.
На основе вышесказанного можно заключить, что модуль 520 предусматривает обеспечение каждого цикла обработки фрейма (за исключением некоторых специальных циклов, например, в начале последовательности фреймов, или в конце последовательности фреймов, или во фрейме с неактивной деформацией времени) описанием сегмента контура деформации временной шкалы, содержащим характеристики „нового фрагмента контура деформации времени", „ремасштабируемого текущего фрагмента контура деформации времени" и „ремасштабируемого последнего фрагмента контура деформации времени". В дополнение к этому модуль 520 предусматривает обеспечение каждого цикла обработки фрейма (за исключением вышеупомянутых специальных циклов обработки фреймов) представлением суммарных величин контура деформации, например, содержащих „значение суммы нового фрагмента контура деформации времени", „значение суммы ремасштабируемого текущего фрагмента контура деформации шкалы времени" и „значение суммы ремасштабируемого последнего фрагмента контура деформации шкалы времени".
Вычислитель управляющих данных деформации шкалы времени 530 предназначен для расчета параметров управления деформацией шкалы времени 512 на базе восстановленных данных контура деформации шкалы времени, полученных от модуля 520. В частности, вычислитель управляющих данных деформации временной шкалы имеет в своем составе вычислитель контура времени 570, который рассчитывает изохрону 572 на основе восстановленной управляющих данных деформации шкалы времени. Далее, вычислитель управляющих данных деформации шкалы времени 530 имеет в своем составе вычислитель шага дискретизации 574, который, опираясь на принятую изохрону 572, делает расчет параметров положения отсчетов, например, в форме вектора положения отсчета 576. Вектор положения отсчета 576 описывает деформацию временной шкалы, выполненную, например, передискретизатором 218.
Кроме того, вычислитель управляющих данных деформации шкалы времени 530 включает в себя вычислитель длины перехода 580, который извлекает из восстанавливаемых управляющих данных деформации временной шкалы характеристики продолжительности перехода. Параметры длины перехода 582 могут, в частности, содержать данные, описывающие длину левого перехода, и данные, описывающие длину правого перехода. Длина перехода может зависеть, например, от интервалов времени, описываемых „последним фрагментом контура деформации времени", „текущим фрагментом контура деформации времени" и „новым фрагментом контура деформации времени". Например, длина перехода может быть сокращена (по сравнению с длиной перехода по умолчанию), если продолжительность интервала времени, описанная „последним фрагментом контура деформации времени", короче продолжительности интервала времени, описанной „текущим фрагментом контура деформации времени", или если продолжительность временного интервала, описанная „новым фрагментом контура деформации времени", короче продолжительности временного интервала, описанной „текущим фрагментом контура деформации времени".
Дополнительно вычислитель управляющих данных деформации шкалы времени 530 может включать в себя вычислитель первой и последней позиции 584, который рассчитывает так называемую "первую позицию" и так называемую "последнюю позицию", исходя из длины левого и правого переходов. „Первая позиция" и „последняя позиция" повышают производительность передискретизатора, так как области вне этих позиций после оконного преобразования тождественны нулю и в силу этого могут не приниматься в расчет для деформации временной шкалы. Здесь следует отметить, что вектор положения отсчета 576 содержит, например, информацию, необходимую для выполнения передискретизатором 280 деформации шкалы времени. Кроме того, длина левого и правого переходов 582 и „первая позиция" и „последняя позиция" 586 составляют информацию, которая требуется, например, оконному преобразователю 216.
Следовательно, можно сказать, что модуль 520 и вычислитель управляющих данных деформации временной шкалы 530 совокупно могут принять на себя выполнение функций настройки частоты отсчетов 220, задания геометрии окна 210 и расчета шага дискретизации 219.
В дальнейшем в функциональные возможности аудиодекодера будут включены функции модуля 520, при этом описание вычислителя управляющих данных деформации времени 530 будет представлено в контексте фиг.6, 7а, 7b, 8, 9а-9с, 10а-10g, 11a, 11b и 12.
На фиг.6 дана блок-схема алгоритма декодирования кодированного представления аудиосигнала, реализованного в соответствии с настоящим изобретением. Способ 600 заключается в выполнении процедуры восстановления данных контура деформации времени, которая включает в себя вычисление 610 значений узловых точек деформации, интерполяцию 620 между значениями узлов деформации и перемасштабирование 630 одного или более предварительно рассчитанных фрагментов контура деформации и одной или более предварительно рассчитанных суммарных величин контура деформации. Далее, способ 600 состоит в вычислении 640 управляющих данных деформации временной шкалы с использованием „нового фрагмента контура деформации времени", сгенерированного на шагах 610 и 620, ремасштабированных предварительно рассчитанных фрагментов контура деформации шкалы времени („текущего фрагмент контура деформации времени" и „последнего фрагмента контура деформации времени"), а также, произвольно, ремасштабированных предварительно рассчитанных суммарных значений контура деформации. В результате на шаге 640 могут быть интегрированы данные изохроны, и/или шага дискретизации, и/или длины перехода, и/или первого и последнего фрагментов.
Далее, способ 600 состоит в выполнении реконструкции 650 деформированного во времени сигнала с использованием управляющих данных деформации временной шкалы, рассчитанным на шаге 640. Подробно реконструкция сигнала с предыскажением шкалы времени будет рассмотрена далее.
Способ 600, кроме того, включает в себя шаг 660 актуализации памяти, что описано ниже.
Вычисление фрагментов контура деформации шкалы времени
Ниже дается подробное описание процесса вычисления фрагментов контура деформации шкалы времени со ссылкой на фиг.7а, 7b, 8, 9а, 9b, 9с.
Предположим, система находится в исходном состоянии, отображенном на графике 710 фиг.7а. Как видно из графика, в наличии имеются первый фрагмент контура деформации 716 (фрагмент контура деформации 1) и второй фрагмент контура деформации 718 (фрагмент контура деформации 2). Каждый фрагмент контура деформации стандартно состоит из множества дискретных значений данных деформации контура, хранящихся в памяти. Значения данных контура деформации соотнесены со значениями времени, отмеченными по оси абсцисс 712. Амплитуда значений данных контура деформации отмечена по оси ординат 714. Как видно на графике, первый фрагмент контура деформации имеет конечное значение 1, а второй фрагмент контура деформации имеет начальное значение 1, где показатель 1 можно рассматривать как „заданное значение". При этом первый фрагмент контура деформации 716 можно принять за „последний фрагмент контура деформации времени" ("last_warp_contour"), а второй фрагмент контура деформации 718 можно принять за „текущий фрагмент контура деформации времени" ("cur_warp_contour").
Начиная с исходного состояния, например, на шагах 610, 620 способа 600, рассчитывают новый фрагмент контура деформации. Соответственно, вычисляют значения данных третьего фрагмента контура деформации (обозначенного также как „фрагмент контура деформации 3", или „новый фрагмент контура деформации времени", или "new_warp_contour"). Вычисление может быть, например, разделено на расчет значений узлов деформации в соответствии с алгоритмом 910 на фиг.9а, и интерполяцию 620 между значениями узлов деформации в соответствии с алгоритмом 920 на фиг.9а. Таким образом образуют новый фрагмент контура деформации 722, который начинается с заданного значения (допустим, 1), как показано на графике 720 фиг.7а. Можно видеть, что первый фрагмент контура деформации шкалы времени 716, второй фрагмент контура деформации шкалы времени 718 и третий, новый, фрагмент контура деформации шкалы времени соотносятся с последовательными и непрерывными интервалами времени. Кроме того, между конечной точкой 718b второго фрагмента контура деформации времени 718 и начальной точкой 722а третьего фрагмента контура деформации времени заметен разрыв 724.
Здесь следует учитывать, что разрыв 724 обычно возникает при амплитуде, превышающей отклонение между любыми двумя смежными по времени значениями контура деформации временной шкалы в пределах одного сегмента контура деформации шкалы времени. Это происходит вследствие того, что начальная координата 722а третьего фрагмента контура деформации времени 722 привязана к заданному значению (например 1) независимо от конечного значения 718b второго фрагмента контура деформации шкалы времени 718. Следует обратить внимание на то, что вследствие этого разрыв 724 превышает неизбежное отклонение между двумя соседними дискретными значениями данных деформации контура.
Вместе с тем, такое нарушение непрерывности между вторым 718 и третьим 722 фрагментами контура деформации шкалы времени недопустим для дальнейшего использования значений данных контура деформации времени.
В силу этого первый и второй фрагменты контура деформации времени совокупно ремасштабируют на шаге 630 способа 600. К примеру, значения данных контура деформации времени первого фрагмента контура деформации шкалы времени 716 и значения данных контура деформации шкалы времени второго фрагмента контура деформации шкалы времени 718 ремасштабируют путем умножения на коэффициент ремасштабиирования (обозначенный также "norm_fac"). Подобным образом формируется перемасштабированная версия 716' первого фрагмента контура деформации шкалы времени 716, а также перемасштабированная версия 718' второго фрагмента контура деформации шкалы времени 718. И напротив, третий фрагмент контура деформации времени на этом шаге ремасштабирования, как правило, остается незатронутым, что видно по графику 730 на фиг.7а. Вторичное масштабирование может быть выполнено таким образом, что ремасштабированная конечная точка 718b' будет содержать такое же, по меньшей мере, приближенно, значение данных, что и начальная точка 722а третьего фрагмента контура деформации времени 722. Таким образом, ремасштабированные версии 716' первого фрагмента, 718' второго фрагмента и 722 третьего фрагмента контура деформации шкалы времени совокупно образуют (приближенно) непрерывный сегмент контура деформации шкалы времени. В частности, масштабирование может быть выполнено так, что расхождение между значением данных перемасштабированной конечной точки 718b' и начальной точки 722а не превышает максимальную разность любых двух пограничных значений фрагментов контура деформации шкалы времени 716', 718', 722.
Итак, приближающийся к непрерывному сегмент контура деформации временной шкалы, включающий в себя вторично масштабированные фрагменты контура деформации времени 716', 718' и новый фрагмент контура деформации времени 722, используют для расчета управляющих данных деформации временной шкалы, который выполняется на шаге 640. Например, управляющие данные деформации шкалы времени могут быть вычислены для аудиофрейма, соотнесенного по времени со вторым фрагментом контура деформации шкалы времени 718.
Однако после расчета на шаге 640 управляющих данных деформации временной шкалы может быть осуществлено восстановление деформированного по времени сигнала на шаге 650, что далее будет рассмотрено более подробно.
Затем, извлекаются управляющие данные деформации шкалы времени для очередного аудиофрейма. При этом перемасштабированный вариант 716' первого фрагмента контура деформации времени может быть удален для экономии памяти, поскольку в нем больше нет необходимости. Тем не менее, в случае необходимости ремасштабированная версия 716' может также быть сохранена. Одновременно ремасштабированная версия 718' второго фрагмента контура деформации шкалы времени занимает место „последнего фрагмента контура деформации времени" для выполнения нового вычисления, как видно из графика 740 на фиг.7b. Затем, третий фрагмент контура деформации времени 722, который при предшествующем расчете находился в положении „нового фрагмента контура деформации", при следующем вычислении исполняет роль „текущего фрагмента контура деформации времени". Соотношение показано на графике 740.
Вслед за этим обновлением памяти (шаг 660 способа 600) рассчитывают новый фрагмент контура деформации времени 752, что можно рассмотреть на графике 750. Для этого могут быть повторно выполнены шаги 610 и 620 алгоритма 600 с новыми входными данными. Теперь роль „нового фрагмента контура деформации времени" играет четвертый фрагмент контура деформации шкалы времени 752. На графике виден характерный разрыв между конечной точкой 722b третьего фрагмента контура деформации и начальной точкой 752а четвертого фрагмента контура деформации шкалы времени 752. Этот разрыв 754 уменьшают или устраняют последующим перемасштабированием (шаг 630 алгоритма 600) ремасштабированной версии 718' второго фрагмента контура деформации шкалы времени и новой версии третьего фрагмента контура деформации шкалы времени 722. Таким образом выстраивают дважды ремасштабированную версию 718" второго фрагмента контура деформации времени и однократно ремасштабированную версию 722' третьего фрагмента контура деформации времени, что отображено на графике 760 фиг.7b. Очевидно, что фрагменты контура деформации времени 718", 722', 752 образуют, по меньшей мере, приближенно, непрерывный участок контура деформации шкалы времени, который может быть использован для вычисления управляющих параметров деформации временной шкалы при повторном выполнении шага 640. Скажем, управляющие данные предыскажения шкалы времени могут быть рассчитаны на базе фрагментов контура деформации шкалы времени 718", 722', 752, которые соотнесены с временным фреймом аудиосигнала, имеющим центр во втором фрагменте контура деформации шкалы времени.
Следует отметить, что в некоторых случаях желательно иметь соотнесенное суммарное значение контура деформации для каждого из фрагментов контура деформации шкалы времени. Допустим, первая суммарная величина контура деформации может быть соотнесена с первым фрагментом контура деформации шкалы времени, вторая суммарная величина контура деформации может быть соотнесена со вторым фрагментом контура деформации шкалы времени, и так далее. Суммарные значения контура деформации могут быть использованы, в частности, для вычисления управляющих параметров деформации временной шкалы на шаге 640.
Например, суммарное значение контура деформации может представлять сумму значений данных контура деформации отдельного фрагмента контура деформации шкалы времени. Однако, поскольку фрагменты контура деформации времени масштабируются, иногда желательно масштабировать также суммарное значение контура деформации времени таким образом, чтобы суммарное значение контура деформации шкалы времени следовало за характеристикой соотнесенного с ним фрагмента контура деформации шкалы времени. Соответственно, величина суммы контура деформации, соотнесенная со вторым фрагментом контура деформации времени 718, может быть масштабирована (например, с использованием того же масштабного коэффициент) при масштабировании второго фрагмента контура деформации времени 718 с выведением масштабированной версии 718' этого фрагмента. Аналогично значение суммы контура деформации, соотнесенное с первым фрагментом контура деформации шкалы времени 716, может быть масштабировано (например, с использованием того же коэффициента масштабирования) при масштабировании первого фрагмента контура деформации шкалы времени 716 с выведением масштабированной версии 716' этого фрагмента, если это необходимо.
Затем, при переходе к новому фрагменту контура деформации времени, может быть выполнено пересоотнесение (или перераспределение памяти). Допустим, суммарное значение контура деформации соотнесенное с масштабированной версией 718' второго фрагмента контура деформации, выполняет при вычислении управляющих данных деформации временной шкалы, относящихся к фрагментам контура деформации времени 716', 718', 722, роль „текущего суммарного значения контура деформации шкалы времени"; тогда при вычислении управляющих данных деформации временной шкалы, относящихся к фрагментам контура деформации шкалы времени 718", 722', 752, это суммарное значение будет рассматриваться как "последнее суммарное значение деформации временной шкалы". Аналогичным образом суммарное значение контура деформации, связанное с третьим фрагментом контура деформации времени 722, можно рассматривать как „новое суммарное значение контура деформации" при вычислении управляющих данных деформации временной шкалы, относящихся к фрагментам контура деформации шкалы времени 716', 718', 722, но можно рассматривать и как „текущее суммарное значение контура деформации" при вычислении управляющих данных деформации временной шкалы, относящихся к фрагментам контура деформации шкалы времени 718", 722', 752. Позднее, вновь рассчитанная суммарная величина контура деформации для четвертого фрагмента контура деформации шкалы времени 752 может принять на себя функцию „новой суммарной величины контура деформации" при извлечении управляющих данных деформации временной шкалы, сотнесенных с фрагментами контура деформации шкалы времени 718", 722', 752.
Пример на фиг.8
На фиг.8 графически отображен пример задачи, поставленной и решенной в соответствии с представленным изобретением. Первый график 810 описывает изменения во времени относительной высоты основного тона, воспроизводимые с использованием стандартных технических решений. Абсцисса 812 отображает время, ордината 814 служит показателем относительной высоты основного тона. Кривая 816 фиксирует изменения во времени относительной высоты основного тона, которые могут быть реконструированы, исходя из данных относительной высоты основного тона. Рассматривая реконструкцию контура относительной высоты основного тона, следует иметь в виду, что для применения модифицированного дискретного косинусного преобразования (МДКП) с деформацией временной шкалы требуются только показатели относительного изменения основного тона в рамках конкретного фрейма. Для лучшего понимания этого аспекта можно обратиться к операции вычисления временного контура на основе контура относительной высоты основного тона, где выполняемые шаги дают в результате идентичный временной контур масштабированных версий такого же контура относительной высоты основного тона. Следовательно, достаточно закодировать лишь относительное, а не абсолютное значение основного тона, что повышает эффективность кодирования. Чтобы еще более повысить эффективность процесса, величиной, подлежащей квантованию, должна стать не относительная высота основного тона, а относительное изменение основного тона, то есть - отношение текущей относительной высоты основного тона к предшествующей относительной высоте основного тона (что подробно рассматривается дальше). В некоторых фреймах, где, например, в сигнале вообще не проявляется структура гармоники, деформация временной шкалы может быть нежелательна. В подобных случаях произвольно можно применять вспомогательный флажок для маркировки плоского контура основного тона вместо кодирования этого плоского контура указанным выше способом. В силу того, что реальные сигналы содержат подобные фреймы, как правило, в достаточно большом количестве, компромисс между постоянно вводимым дополнительным битом и битами, сэкономленными благодаря недеформированным фреймам, разрешается в пользу экономии битов.
Стартовое значение для вычисления колебаний основного тона (контура относительной высоты основного тона или контура предыскажения шкалы времени) может быть выбрано произвольно и даже может быть разным для кодера и декодера. В силу сущности МДКП с деформацией времени (TW-MDCT) разные координаты начала отклонения основного тона дают, тем не менее, одни и те же положения отсчетов и конфигурации окон, адаптированные для выполнения МДКП с деформацией времени.
Например, (аудио-) кодер определяет для каждой узловой точки контур основного тона в виде фрагмента реального основного тона, выраженного в дискретах с введением вспомогательной характеристики озвучения/неозвучения, полученной, например, оцениванием основного тона и выбором состояния „озвучено/не озвучено", определяемого при кодировании речи. Если текущий узел классифицирован как озвученный, или его состояние „озвучен/не озвучен" не идентифицируется, кодер вычисляет относительное значение данного участка основного тона и квантует его, или в случае неозвучения просто задает коэффициент 1. Другим примером может служить вариант, когда изменения основного тона оценивают непосредственно, применяя соответствующий метод (например, оценку колебаний сигнала).
На декодере стартовое значение для первой относительной высоты основного тона в начале закодированного аудиосигнала устанавливают произвольно, допустим, на 1. В силу этого декодированный контур относительной высоты основного тона находится уже не в том же абсолютном диапазоне контура основного тона, где и кодер, а в его масштабированном варианте. Тем не менее, как рассматривалось выше, с помощью алгоритма МДКП с деформацией времени (TW-MDCT) получают те же самые позиции отсчетов и геометрию окон. Более того, в случае, если кодируемые относительные показатели высоты тона образуют плоский контур основного тона, кодер может принять решение не пересылать полностью закодированный контур, а вместо этого установить флажок activePitchData [= "активные данные основного тона"] на 0, экономя в этом фрейме биты (например, экономя в этом фрейме биты numPitchbits * numPitches).
Ниже рассматриваются ситуации, возникающие при отсутствии ренормализации контура основного тона, входящей в способ настоящего изобретения. Как говорилось выше в отношении преобразования TW-MDCT, для вычисления деформации времени и правильного подбора формы окна требуется только относительное изменение высоты тона в определенном ограниченном интервале времени в пределах текущего блока (см. пояснения выше). Шкала времени деформируется после декодирования контура сегментов, где было распознано изменение высоты тона, но остается неизменной во всех других случаях (см. графическое отображение 810 на фиг.8). Для расчета окна и шагов дискретизации одного блока необходимы три последовательных сегмента контура относительной высоты основного тона (например, три фрагмента контура деформации временной шкалы), где третий сегмент является вновь введенным во фрейм (с обозначением „новый фрагмент контура деформации времени"), а два других, последних по времени, буферизуются (например, с обозначениями „последний фрагмент контура деформации времени" и „текущий фрагмент контура деформации времени").
Примерами могут служить пояснения в контексте фиг.7а и 7b, а также графики 810, 860 на фиг.8. Допустим, чтобы вычислить частоту выборки отсчетов внутри окна для (или в зависимости от) фрейма 1, лежащего от фрейма 0 до фрейма 2, нужны контуры основного тона фреймов (или зависящие от фреймов) 0,1 и 2. В двоичном потоке текущий фрейм несет только характеристики основного тона фрейма 2, а данные двух других взяты из прошлого. Согласно приведенным здесь пояснениям контур основного тона может быть продлен с использованием отношения первого декодированного показателя относительной высоты основного тона к последнему показателю высоты основного тона фрейма 1 с получением значения высоты основного тона первой узловой точки фрейма 2, и так далее. В силу природы сигнала, если контур основного тона будет просто продолжен (то есть, если вновь переданный отрезок контура будет присоединен к существующим двум частям без какого-либо преобразования), через некоторое время возникнет вероятность переполнения диапазона во внутреннем числовом формате кодирующего устройства. Например, сигнал может начинаться с сегмента сильных гармонических характеристик и высокого начального значения высоты тона, убывающего в продолжение сегмента, приводя к снижению относительной высоты основного тона. Затем может последовать сегмент, не содержащий характеристики основного тона, с постоянным уровнем относительной высоты основного тона. Следом вновь может начаться гармонический участок, причем с абсолютной высоты тона, превышающей последнюю абсолютную высоту тона предыдущего участка, и вновь с последующим понижением. Несмотря на это, простое продолжение относительной высоты основного тона оставит ее на таком же уровне, как в конце последнего гармонического сегмента, с последующим понижением, и так далее. Если сигнал достаточно сильный и имеет в составляющих его гармонических сегментах общую направленность к повышению или к понижению (как показано на графике 810 на фиг.8), рано или поздно относительная высота основного тона достигнет границы диапазона внутреннего числового формата. Из практики кодирования речи хорошо известно, что голосовые сигналы обладают именно такими характеристиками. Поэтому не удивительно, что при применении традиционного метода, описанного выше, кодирование последовательной совокупности естественных звуковых сигналов, содержащих речь, на практике через сравнительно короткий промежуток времени выходит за пределы диапазона плавающих значений, используемых для вычисления относительной высоты основного тона.
Таким образом, в сегменте (или фрейме) звукового сигнала, где может быть определен основной тон, может быть определен процесс формирования контура относительной высоты основного тона (или контура деформации шкалы времени). В сегментах звукового сигнала (или фреймах аудиосигнала), где основной тон не может быть определен (предположим, из-за содержащегося в нем шума), контур относительной высоты основного тона (или контур деформации шкалы времени) может сохраняться постоянным. В силу этого при несбалансированности между звуковыми сегментами с возрастающей частотой основного тона и звуковыми сегментами с убывающей частотой основного тона контур относительной высоты основного тона (или контур деформации шкалы времени) формируется или с числовым отрицательным переполнением, или с числовым переполнением.
Например, на графике 810 схематично представлен вариант контура относительной высоты основного тона, где в большинстве сегментов контура относительной высоты основного тона 820а, 820b, 820с, 820d наблюдается понижение частоты тона, а в нескольких аудиосегментах 822а, 822b основной тон не наблюдается, при том, что сегменты звукового сигнала с восходящим основным тоном отсутствуют. Поэтому видно, что контур относительной высоты основного тона 816 испытывает числовое антипереполнение (по крайней мере, при неблагоприятных условиях).
Далее предлагается решение подобной проблемы. Для предотвращения описанной выше ситуации, в особенности - числового антипереполнения или переполнения, в соответствии с настоящим изобретением вводится периодическая ренормализация контура относительной высоты основного тона. Поскольку, как здесь пояснялось, расчет деформированного временного контура и формы окон зависит только от относительного изменения в пределах трех указанных выше сегментов контура относительной высоты основного тона (называемых также „фрагментами контура деформации шкалы времени"), этот контур (допустим, контур деформации шкалы времени, состоящий из трех „фрагментов контура деформации шкалы времени") может быть заново нормализован для каждого фрейма (например, аудиосигнала) с получением того же результата.
Для этого, к примеру, выбирают опорный последний отсчет второго сегмента контура (называемого также „фрагмент контура деформации шкалы времени"), после чего контур нормализуют (например, умножением в линейной области) таким образом, чтобы этот отсчет имел значение 1,0 (см. графы 860 на фиг.8).
Графами 860 на фиг.8 схематично представлена процедура нормализации контура относительной высоты основного тона. Абсцисса 862 отображает время, разделенное на фреймы (0, 1, 2). Ордината 864 указывает значение контура относительной высоты основного тона.
Контур относительной высоты основного тона до нормализации 870 охватывает два фрейма (допустим, фрейм номер 0 и фрейм номер 1). Новый сегмент контура относительной высоты основного тона (называемый также „фрагмент контура деформации шкалы времени"), начиная с заданного опорного значения контура относительной высоты основного тона (или стартового значения контура деформации шкалы времени), обозначен как 874. Как видно на графике, начало нового сегмента контура относительной высоты основного тона 874 с заданного опорного значения контура относительной высоты основного тона (скажем, 1) образует разрыв 878 между сегментом контура относительной высоты основного тона 870, предшествующего моменту рестарта, и новым сегментом контура относительной высоты основного тона 874. Этот разрыв значительно осложняет извлечение управляющей информации предыскажения шкалы времени из контура и способен привести к искажениям звука. Поэтому предварительно сформированный сегмент контура относительной высоты основного тона 870, предшествующий рестарту в заданный момент времени, ремасштабируют (или нормализуют) с образованием ремасштабированного сегмента контура относительной высоты основного тона 870'. Нормализация выполняется таким образом, что последний отсчет сегмента контура относительной высоты основного тона 870 перемасштабируется по заданному начальному значению контура относительной высоты основного тона (например 1,0).
Детализация алгоритма
Далее подробно описан ряд алгоритмов, осуществляемых аудиодекодером в соответствии с конструктивными решениями по предлагаемому изобретению. Для этого сделаны ссылки на фиг.5, 6, 9а, 9b, 9с и 10а-10g. Кроме того, даны ссылки на условные обозначения элементов данных, подсказки и константы фиг. 11а и 11b.
Говоря в целом, описываемый здесь способ можно применять для декодирования аудиопотока, кодируемого путем модифицированного дискретного косинусного преобразования с предыскажением шкалы времени (TW-MDCT). Поэтому при применении для аудиопотка метода TW-MDCT (что может быть обозначено флажком с маркировкой, например, „twMdct", входящим в специальные данные конфигурации) банк фильтров с межблочным переходом, деформированный по шкале времени, может заместить стандартный банк фильтров с межблочным переходом. В дополнение к обратному модифицированному дискретному косинусному преобразованию (ОМДКП) в деформированном по шкале времени банке фильтров с межблочным переходом предусмотрена временная область для представления шкалы времени с неравномерной разметкой в нормализованную шкалу времени с равномерным шагом и соответствующей настройкой формы окон.
Ниже будет рассмотрен процесс декодирования. На первом шаге декодируют контур деформации. Контур деформации может быть закодирован, например, с использованием индексов кодового словаря для узлов контура деформации. Индексы словаря кодов для узлов контура деформации декодируют, применяя, в частности, алгоритм 910, графически представленный на фиг.9а. В соответствии с приведенным алгоритмом относительные показатели деформации (warp_value_tbl [= „ таблица значений деформации"]} определяют по индексам кодовой таблицы коэффициентов деформации (tw_ratio [= „относительные показатели деформации времени"]), используя, например, переводную таблицу 990 на фиг.9с. Как следует из алгоритма 910, узлам деформации может быть задано постоянное значение, если флажок (tw_data_present [= „данные деформации времени есть"]) сигнализирует, что данные деформации шкалы времени отсутствуют. И наоборот, если флажок указывает, что в наличии есть параметры деформации шкалы времени, первому узлу деформации может быть задано предустановленное начальное значение контура деформации временной шкалы (например, 1). Последующие значения узловых точек деформации (фрагмента контура деформации времени) могут быть определены, исходя из получаемого произведения множества значений коэффициентов деформации временной шкалы. Например, узел деформации, следующий непосредственно за первым узлом деформации (i=0), может иметь значение, равное значению первого коэффициента деформации (если начальное значение = 1), или равное произведению первого значения коэффициента деформации и начального значения. Следующие далее значения узлов деформации шкалы времени (i=2, 3,…, num_tw_nodes [= №№ узлов деформации]) рассчитывают, вычисляя произведение множества относительных показателей деформации временной шкалы (произвольно принимая во внимание начальное значение, если начальное значение отлично от 1). Естественно, порядок получения произведений - произвольный. Тем не менее, предпочтительнее извлекать значение (i+1) узла деформации из значения i узла деформации, умножая значение i узла деформации на один коэффициент деформации, характеризующий отношение двух значений последовательных узлов контура деформации шкалы времени.
Как видно из алгоритма 910, допускается наличие в таблице кодов множества индексов коэффициентов деформации для одного участка контура деформации времени одного аудиофрейма (при этом возможно полное соответствие между фрагментами контура деформации шкалы времени и аудиофреймами).
Итак, на шаге 610 с использованием, например, вычислителя значений узлов контура деформации 544 может быть образована совокупность множества значений узлов деформации для данного фрагмента контура деформации шкалы времени (или данного аудиофрейма). Позже может быть выполнена линейная интерполяция между значениями узловых координат деформации временной шкалы (warp_node_values [i]). Например, для извлечения значений данных контура предыскажения шкалы времени „нового фрагмента контура деформации времени" (new_warp_contour) может быть использован алгоритм 920 на фиг.9а. Допустим, число дискретов нового фрагмента контура деформации времени равно половине количества отсчетов временной области обратного модифицированного дискретного косинусного преобразования. Принимая во внимание это обстоятельство, следует отметить, что смежные фреймы аудиосигнала, как правило, смещаются (по меньшей мере, приблизительно) на половину количества отсчетов временной области МДКП или ОМДКП. Говоря иначе, для образования разделенного на отсчеты (длиной N_long) нового контура деформации new_warp_contour[] необходимо выполнить линейную интерполяцию значений узлов деформации warp_node_values[] между равноотстоящими (с интервалом interp_dist) узловыми точками, используя алгоритм 920.
Для выполнения интерполяция, в частности, предусмотрен интерполятор 548, входящий в устройство на фиг.5, или произвольно используемый на шаге 620 алгоритма 600.
Перед формированием полного контура деформации для данного фрейма (то есть для фрейма, обрабатываемого в текущий момент) необходимо ремасштабировать буферизованные предыдущие значения так, чтобы последнее значение деформации past_warp_contour [] было равным 1 (или имело любое другое заданное значение, которое предпочтительно соответствует начальному значению нового фрагмента контура деформации времени).
Здесь необходимо уточнить, что определение „предыдущий контур деформации" преимущественно относится к описанным выше „последнему фрагменту контура деформации времени" и „текущему фрагменту контура деформации времени". Также следует обратить внимание на то, что „предыдущий контур деформации", как правило, имеет длину, равную числу дискретов во временной области ОМДКП, причем значения „предыдущего контура деформации" обозначены индексами между 0 и 2*n_long-l. Следовательно, „past_warp_contour [2*n_long-l]" определяет последнее значение деформации „предыдущего контура деформации". В силу этого нормирующий множитель "norm_fac" может быть рассчитан согласно уравнению, приведенному в ссылке 930 на фиг.9а. Таким образом, предшествовавший контур деформации (включающий в себя „последний фрагмент контура деформации времени" и „текущий фрагмент контура деформации времени") может быть перемасштабирован путем умножения по уравнению из ссылки 932 на фиг.9а. Кроме того, могут быть перемасштабированы „последнее суммарное значение контура деформации" (last_warp_sum) и „текущее суммарное значение контура деформации" (cur_warp_sum) путем умножения, как показано в ссылках 934 и 936 на фиг.9а. Операции вторичного масштабирования могут выполняться блоком перемасштабирования 550 на фиг.5, или на шаге 630 алгоритма 600 на фиг.6.
Следует отметить, что процедура нормализации, описанная, например, в ссылке 930, в дальнейшем может быть скорректирована, допустим, путем замены начального значения „1" любым другим расчетным значением.
Путем нормализации формируют полный контур деформации „warp_contour []", называемый также „сегментом контура деформации шкалы времени", последовательно соединяя последний „past_warp_contour" и новый "new_warp_contour" фрагменты контура деформации. Таким образом, три фрагмента контура деформации шкалы времени („последний фрагмент контура деформации времени", „текущий фрагмент контура деформации времени" и „новый фрагмент контура деформации времени") образуют „полный контур деформации", который может найти применение при последующих вычислениях.
Дополнительно рассчитывают суммарное значение [нового] контура деформации (new_warp_sum), например, как сумму всех [новых значений контура деформации] „new_warp_contour []". В частности, новое суммарное значение контура деформации может быть рассчитано в соответствии с алгоритмом в ссылке 940 на фиг.9а.
В ходе описанных выше расчетов открывается доступ к входным данным, необходимым для ввода в вычислитель управляющих данных деформации времени 330, или для выполнения шага 640 алгоритма 600. Следовательно, расчет 640 управляющих данных деформации временной шкалы может быть выполнен вычислителем управляющих данных деформации времени 530. Кроме того, деформированный в масштабе времени сигнал может быть восстановлен 650 с помощью аудиодекодера. Вычисление 640 и восстановление деформированного во времени сигнала 650 более подробно описаны ниже.
Важной особенностью здесь является то, что данный алгоритм выполняется итеративно. Следовательно, в вычислительном отношении он эффективен для актуализации памяти. В частности, информация о последнем фрагменте контура деформации времени может быть удалена. Кроме того, рекомендуется использовать данный „текущий фрагмент контура деформации времени" как „последний фрагмент контура деформации времени" в очередном вычислительном цикле. Далее, в следующем вычислительном цикле, данный „новый фрагмент контура деформации времени" предпочтительно должен использоваться как „текущий фрагмент контура деформации времени". Такое переназначение может быть сделано с использованием уравнения, данного в ссылке 950 на фиг.9b (где warp_contour[n] описывает данный „новый фрагмент контура деформации времени" для 2*n_long≤n<3·n_long).
Соответствующие перераспределения можно видеть в ссылках 952 и 954 на фиг. 9b.
Другими словами, буфера памяти, используемые для декодирования следующего фрейма, могут обновляться в соответствии с уравнениями, представленными в ссылках 950, 952 и 954.
Необходимо обратить внимание на то, что обновление в соответствии с уравнениями 950, 952 и 954 не обеспечивает надлежащий результат, если не генерируется соответствующая информация для предшествующего фрейма. Поэтому перед декодированием первого фрейма, или если последний фрейм был закодирован кодером другого типа (предположим, LPC-кодером с линейным предсказанием) при применении коммутируемого кодирующего устройства, режимы памяти могут быть установлены в соответствии с уравнениями, представленными в ссылках 960, 962 и 964 на фиг.9b.
Расчет управляющих данных деформации шкалы времени
Ниже кратко описано, как управляющая информация деформации временной шкалы может быть вычислена на базе контура предыскажения шкалы времени (включающего в себя, например, три фрагмента контура деформации шкалы времени) и на базе суммарных значений контура деформации.
Допустим, требуется реконструировать изохрону, используя контур предыскажения шкалы времени. Для этого можно применить алгоритм, приведенный в ссылках 1010, 1012 на фиг.10а. Как видно, контур времени задает коэффициент i (0≤i≤3·n_long) для соответствующих значениий изохроны. Пример такого преобразования приведен на фиг.12.
На основании вычисления временного контура обычно рассчитывают положение отсчета (sample_pos []), которое необходимо для отображения позиций отсчетов, деформированных в масштабе времени, на линейной шкале времени. Такой расчет может быть выполнен с использованием алгоритма 1030 на фиг.10b. В алгоритме 1030 могут быть использованы вспомогательные функции, показанные в ссылках 1020 и 1022 на фиг.10а. Таким методом может быть получена информация о шаге дискретизации по времени.
При этом рассчитывают продолжительность левого и правого переходов деформации времени (warped_trans_len_left; warped_trans_len_right), применяя, например, алгоритм 1032, данный на фиг.10b. По выбору предусмотрена возможность регулирования длины переходов деформации времени в зависимости от типа окна или длительности трансформации с применением, например, алгоритма 1034 на фиг.10b. В дополнение к этому на основании параметров длины переходов могут быть вычислены так называемая „первая координата" и так называемая „последняя координата" с помощью, например, алгоритма 1036 на фиг.10b. Если обобщить сказанное, с использованием устройства 530 или шага 640 способа 600 может быть выполнена коррекция положений отсчетов и длины окон. Исходя из контура деформации „warp_contour []", предусмотрена возможность вычисления вектора положений отсчетов ("sample_pos []"), деформированных в масштабе времени, на линейной шкале времени. С этой целью сначала генерируют временной контур, используя алгоритм, представленный в ссылках 1010, 1012. Используя, например, в структуре алгоритмов 1030, 1032, 1034 и 1036, вспомогательные функции „warp_in_vec()" и „warp_time_inv()", приведенные в ссылках 1020 и 1022, могут быть рассчитаны вектор положений отсчетов („sample_pos[]") и длина левого и правого переходов („warped_trans_len_left" и „warped_trans_len_right"). Таким образом становится доступной управляющая информация предыскажения шкалы времени 512.
Реконструкция сигнала, деформированного в масштабе времени
Для того чтобы процесс расчета контура деформации шкалы времени был представлен в надлежащем контексте, далее будет кратко рассмотрена процедура реконструкции деформированного во времени сигнала, выполняемая на основе управляющей информации предыскажения шкалы времени.
Процесс воссоздания акустического сигнала включает в себя обратное модифицированное дискретное косинусное преобразование, подробное описание которого здесь не представлено, так как оно известно каждому специалисту в данной сфере. Обратное модифицированное дискретное косинусное преобразование позволяет реконструировать деформированные во временной области дискреты с опорой на набор коэффициентов трансформанты. ОМДКП может быть осуществлено, например, на основе фрейма, когда фрейм, допустим, состоящий из 2048 отсчетов, деформированных во временной области, реконструируют, опираясь на набор из 1024 коэффициентов частотной области. Для корректного восстановления необходимо, чтобы взаимно перекрывались не более двух последовательных окон. В силу природы TW-MDCT (МДКП с деформацией времени) какой-либо обратно деформированный по временной шкале фрагмент одного из фреймов может наложиться на несмежный фрейм, нарушая таким образом оговоренное выше необходимое предварительное условие. Поэтому длина участка затухания в весовом окне должна быть уменьшена согласно соответственно рассчитанным значениям warped_trans_len_left и warped_trans_len_right, как пояснялось выше.
Затем временные отсчеты, полученные при ОМДКП, проходят оконное взвешивание и обработку с помощью средства коммутации блоков 650b. Оконное взвешивание и коммутация блоков могут быть применены к дискретам деформированной временной области, образованным при ОМДКП 650а на основании параметров управления деформацией в масштабе времени для получения взвешенных отсчетов деформированной временной области. Например, в зависимости от параметров конфигурации окна „window_shape" или элемента могут быть использованы другие передискретизированные модели окна преобразования, где протяженность передискретизированных окон может быть представлена в виде уравнения 1040 на фиг.10с. Например, для оконной конфигурации первого типа (допустим, window_shape=1) оконные коэффициенты выводят из „производного окна Кайзера-Бесселя" (KBD-окна) согласно уравнению 1042 на фиг.10с, где W - „базовую оконную функцию Кайзера-Бесселя" - определяют, как указано в ссылке 1044 на фиг.10с.
В другом случае, при приложении окна иной геометрии (скажем, window_shape=0), может быть использовано синусное окно, как определено уравнением 1046. Для всех видов оконных последовательностей („window_sequences") шаблон, примененный для левой части окна, определяется конфигурацией предыдущего блока. Формула, размещенная по ссылке 1048 на фиг.10с, иллюстрирует это. Аналогично шаблон формы правого окна выражен формулой 1050 на фиг.10с.
Далее рассматривается приложение вышеописанных окон к отсчетам деформированной временной области, полученным выборкой ОМДКП. В некоторых реализациях информация для фрейма может быть получена из множества коротких последовательностей (допустим, из восьми коротких последовательностей). Другие конструктивные решения предусматривают извлечение информации для фрейма из блоков разной длины, при этом раздельных способов обработки могут потребовать начальные последовательности, остановочные последовательности и/или последовательности нестандартной длины. Однако, если длина перехода определяется описанным выше путем, достаточно дифференцировать фреймы, кодируемые с помощью восьми коротких последовательностей (сопровождаемые соответствующей маркировкой типа фрейма „eight_short_sequence"), и все другие фреймы.
Например, для оконного взвешивания фрейма, описываемого восьмисоставной короткой последовательностью, может быть использован алгоритм 1060 на фиг.10d. В отличие от этого, для фреймов, кодируемых с помощью другой информации, может быть использован алгоритм 1064 на фиг.10е. Другими словами, фрагмент, подобный коду С, указанный по ссылке 1060 на фиг.10d, описывает оконное взвешивание и внутреннее сложение наложением так называемой „восьмисоставной короткой последовательности". Напротив, фрагмент, подобный коду С, указанный в ссылке 1064 на фиг.10d, описывает другие случаи оконного взвешивания.
Передискретизация
Далее описывается обратная временная деформация 650 с дискретов предыскаженной временной области, прошедших оконное взвешивание, на основании управляющей информации предыскажения шкалы времени, в ходе которой выполняют адаптивную ко времени равномерную выборку или простую выборку отсчетов во временной области. При адаптивной ко времени передискретизации взвешенный блок z[] вторично дискретизируют в зависимости от величины шага первичной дискретизации, например, используя импульсную характеристику, как показано в ссылке 1070 на фиг.10f. Перед передискретизацией взвешенный блок может быть заполнен нулями с обоих концов, как показано в ссылке 1072 на фиг.10f. Сама повторная выборка отсчетов описывается псевдокодом, как показано в ссылке 1074 на фиг.10f.
Обработка фрейма после передискретизации
Ниже описано последующее дополнительное преобразование 650d отсчетов временной области. Некоторые технические решения предусматривают обработку фрейма после передискретизации в зависимость от типа последовательности окон. В зависимости от параметра „window_sequence" („ последовательность окон ") могут быть предприняты некоторые дальнейшие шаги преобразования.
Допустим, если последовательность окон представляет собой так называемую „EIGHT_SHORT_SEQUENCE" („восьмисоставную короткую последовательность"), так называемую „LONG_START_SEQUENCE" („последовательность с продолжительным началом"), так называемую „STOP_START_SEQUENCE" („ последовательность начал и концов"), так называемую „STOP_START_1152_SEQUENCE", сопровождаемую так называемой „LPD_SEQUENCE", то в последующем может быть выполнена доработка, как показано в ссылках 1080а, 1080b, 1082.
corr
corr
Предположим, очередная оконная последовательность представляет собой так называемую „LPD_SEQUENCE", тогда коррекционное окно W(n) может быть рассчитано по ссылке 1080а с учетом определений, данных в ссылке 1080b. Кроме того, окно коррекции W(n) может быть применено, как показано в ссылке 1082 на фиг.10g.
Для всех других случаев никакие действия не требуются, как следует из ссылки 1084 на фиг.10g.
Наложение и сложение с предшествующими оконными последовательностями
В дополнение к этому может быть выполнено сложение наложением 650е текущих отсчетов во временной области с одним или более предшествующих временных отсчетов. Наложение и сложение может быть идентичным для всех последовательностей и может быть математически описано, как показано в ссылке 1086 на фиг.10g.
Условные обозначения
Пояснения даются со ссылкой на условные обозначения на фиг.11а и 11d. В частности, длина окна синтеза N для обратного преобразования, как правило, представляет собой переменную синтаксического элемента „window_sequence" („оконная последовательность"), зависимую от контекста алгоритма. Этот показатель, например, может быть определен в соответствии со ссылкой 1190 на фиг.11b-2.
Конструктивное решение в соответствии с фиг.13
На фиг.13 представлена принципиальная блочная схема устройства 1300, предназначенного для восстановления информации контура деформации шкалы времени, которое принимает на себя функции средства 520, описанного в контексте фиг.5. Здесь тракт данных и буфера показаны более подробно. Устройство 1300 включает в себя вычислитель значений узлов контура деформации 1344, который выполняет функцию вычислителя значений узлов контура деформации 544. Вычислитель значений узлов контура деформации 1344 принимает индекс коэффициента деформации,,tw_ratio[]" из кодовой таблицы в качестве закодированной информации об относительных показателях деформации. В данные вычислителя значений узлов контура деформации включена таблица, в которой сопоставлены, например, индексы относительных показателей деформации времени с численными значениями относительных показателей деформации временной шкалы, как показано на фиг.9с. Кроме этого, вычислитель значений узлов контура деформации 1344 может включать в свою конструкцию умножитель для реализации алгоритма, представленного ссылке 910 на фиг.9а. Таким образом, вычислитель значений узлов контура деформации рассчитывает значения узловых точек деформации „warp_node_values[i]". Далее, устройство 1300 включает в себя интерполятор контура деформации 1348, который предусматривает выполнение функций интерполятора 540а и реализацию алгоритма, представленного по ссылке 920 на фиг.9а, в результате чего выводят значения нового контура деформации („new_warp_contour"). Кроме того, в устройстве 1300 предусмотрен буфер нового контура деформации 1350, в котором сохраняются значения нового контура деформации (то есть warp_contour[i], при 2·n_long≤i<3·n_long). В схему устройства 1300 включен также буфер/блок актуализации предшествующего контура деформации 1360, который хранит в памяти „последний фрагмент контура деформации времени" и „текущий фрагмент контура деформации времени", и который обновляет содержимое памяти, реагируя на операции ремасштабирования и завершения обработки текущего фрейма. Таким образом, буфер/блок актуализации предшествующего контура деформации 1360, работая одновременно с блоком ремасштабирования предшествующего контура деформации 1370, может реализовывать алгоритмы 930, 932, 934, 936, 950, 960. Дополнительно буфер/блок актуализации предшествующего контура деформации 1360 может выполнять функции по реализации алгоритмов 932, 936, 952, 954, 962, 964.
Так, устройство 1300 формирует контур деформации („warp_contour"), а также - в оптимальном варианте - выводит суммарные величины контура деформации.
Реализация кодера звукового сигнала в контексте фиг.14
Далее рассматривается кодер аудиосигнала в аспекте предлагаемого изобретения. Кодер аудиосигнала на фиг.14 интегрирован в схему 1400. Кодер аудиосигнала 1400 получает звуковой сигнал 1410 и, возможно, извне - параметры контура предыскажения 1412 звукового сигнала 1410. Затем, кодер аудиосигнала 1400 формирует кодированное представление 1440 звукового сигнала 1410.
Кодер аудиосигнала 1400 включает в себя кодер контура предыскажения шкалы времени 1420, предназначенный для приема информации контура предыскажения шкалы времени 1422 звукового сигнала 1410 и представления этой информации контура предыскажения шкалы времени в кодированной форме 1424.
Далее, кодер аудиосигнала 1400 включает в себя процессор с предыскажением шкалы времени [звукового] сигнала (или /аудио/кодер с предыскажением шкалы времени сигнала) 1430, предназначенный для приема звукового сигнала 1410 и формирования его кодированного представления с предыскажением шкалы времени 1432 на основании информации контура предыскажения времени 1422. Кодированное представление 1414 звукового сигнала 1410 содержит закодированную информацию контура предыскажения шкалы времени 1424 и кодированное представление спектра 1432 звукового сигнала 1410.
Кодер звукового сигнала 1400 может включать в свою конструкцию вычислитель данных контура предыскажения 1440 как дополнительное средство формирования информации контура предыскажения времени 1422 звукового сигнала 1410. При этом, однако, информация контура предыскажения времени 1422 может быть сформирована на основе параметров контура предыскажения, полученных извне 1412.
Кодер контура предыскажения времени 1420 предусматривает расчет отношения значений последовательных узлов контура предыскажения времени, описанного с помощью данных контура предыскажения шкалы времени 1422. Например, значения узловых точек могут являться значениями отсчетов предыскаженного контура времени, содержащимися в информации контура предыскажения шкалы времени. Допустим, если информация контура предыскажения времени содержит множество значений для каждого фрейма звукового сигнала 1410, значения узлов предыскажения временной шкалы могут быть реальным подмножеством в составе этой информации контура предыскажения времени. Например, значения узловых координат предыскажения шкалы времени могут совпадать с реальным подмножеством периодических значений контура предыскажения времени. Значение узла контура предыскажения шкалы времени может присутствовать среди N отсчетов аудиосигнала, где N может быть равным или больше 2.
Вычислитель относительных показателей узловых точек временного контура рассчитывает отношение значений последовательных узлов контура предыскажения времени, компонуя информацию о коэффициентах деформации по значениям последовательных узлов контура деформации шкалы времени. Кодер коэффициентов в составе кодера контура предыскажения шкалы времени предусматривает функцию кодирования отношения значений последовательных узлов контура деформированной шкалы времени. Так, кодер коэффициентов может присваивать различным коэффициентам различные индексы кодовой таблицы. Например, соответствие может быть задано так, что коэффициенты, рассчитанные вычислителем относительных показателей деформации временного контура, будут находиться в диапазоне значений от 0,9 до 1,1, или даже от 0,95 до 1,05. Таким образом, кодер коэффициентов может задать этому диапазону различные индексы таблицы кодов. Предположим, соответствия, представленные в таблице фиг.9с, являются опорными точками при кодировании, тогда, скажем, коэффициент 1 будет соответствовать индексу 3 кодовой таблицы, а коэффициент 1,0057 - индексу 4 кодовой таблицы, и так далее (ср. фиг.9с). Значения коэффициентов, находящиеся между показателями таблицы на фиг.9с, могут быть соотнесены с соответствующими индексами кодовой таблицы, допустим, с индексом ближайшего значения коэффициента, данного в таблице фиг.9с.
Естественно, могут применяться другие средства кодирования, например, большее или меньшее количество выбранных индексов, чем показано здесь. Кроме того, может быть установлена необходимая зависимость между значениями узлов контура деформации и индексами значений в кодовом словаре. Также можно индексы кодового словаря кодировать, например, с помощью двоичного кодирования, применяя в качестве опции энтропийное кодирование.
Таким образом образуют кодированное представление относительных показателей 1424.
В конструкцию процессора с предыскажением времени сигнала 1430 входит преобразователь временной области в частотную область с предыскажением времени 1434, предназначенный для приема звукового сигнала 1410 и получения информации контура предыскажения времени 1422а, связанной с этим звуковьм сигналом (или получения закодированной версии такой информации), и для формирования на этой основе представления в спектральной области (в частотной области) 1436.
Информацию контура предыскажения шкалы времени 1422а преимущественно извлекают из закодированной информации 1424, подготовленной кодером контура предыскажения шкалы времени 1420 с использованием декодера деформации 1425. В результате кодер (в особенности, процессор с предыскажением времени сигнала 1430, входящий в его состав) и декодер (принимающий кодированное представление 1414 аудиосигнала) обрабатывают одни и те же контуры деформации, а именно декодированный контур деформации (времени). Однако в упрощенном конструктивном варианте информация контура предыскажения времени 1422а, используемая процессором с предыскажением времени сигнала 1430, может быть идентичной информации контура предыскажения времени 1422, вводимой в кодер контура предыскажения времени 1420.
Преобразователь временной области в частотную область с предыскажением времени 1434 может, в частности, учитывать деформацию временной шкалы при формировании представления спектральной области 1436 с использованием, например, времязависимой передискретизации звукового сигнала 1410. Как вариант возможно объединение в одну операцию времязависимой передискретизации и преобразования временной области в частотную область. Процессор с временным предыскажением сигнала имеет в своем составе также кодер спектральных характеристик 1438, предназначенный для кодирования спектрального представления 1346. В кодере спектральных характеристик 1438 предусмотрена, например, функция учета перцепционной маскировки звука. Также, кодер спектральных характеристик 1438 рассчитан на точную перцептивную адаптацию по частотному диапазону при кодировании и на применение энтропийного кодирования. В результате формируется кодированное представление 1432 исходного звукового сигнала 1410. 43
Реализация вычислителя контура деформации шкалы времени в контексте фиг.15
На фиг.15 представлена принципиальная блочная схема вычислителя контура деформации шкалы времени в соответствии с другой аппаратной версией изобретения. Вычислитель контура деформации шкалы времени 1500 предназначен для приема закодированных относительных показателей деформации 1510 с целью расчета на их основе множества значений узловых точек деформации 1512. В конструкцию вычислителя контура деформации шкалы времени 1500, в частности, включен декодер относительных показателей деформации 1520, предназначенный для выведения последовательности значений коэффициентов деформации 1522 на основе закодированных данных об относительных показателях деформации 1510. Наряду с этим вычислитель контура деформации шкалы времени 1500 включает в себя вычислитель контура деформации 1530 для расчета последовательности значений узловых точек деформации 1512, исходя из последовательности значений коэффициентов (относительных значений) деформации 1522. Например, вычислитель контура деформации может рассчитывать значения узлов контура деформации от начального значения контура деформации, когда показатели отношения начального значения контура деформации, связанного с опорной узловой точкой контура деформации, к значениям узлов контура деформации определяются значениями коэффициентов деформации 1522. В дополнение к этому вычислитель значений узлов контура деформации рассчитывает значение данной узловой точки контура деформации 1512, которая отделена от начального узла контура деформации промежуточным узлом контура деформации, исходя из произведения от умножения коэффициентов, которыми являются, с одной стороны, отношение значения начальной точки контура деформации (допустим, 1) к значению промежуточной узловой точки контура деформации и, с другой стороны, отношение значения промежуточной узловой точки контура деформации к значению данного узла контура деформации.
Ниже со ссылкой на фиг.16а и 16b кратко рассмотрена работа вычислителя контура деформации шкалы времени 1500.
На фиг.16а графически отображена последовательность вычисления контура деформации шкалы времени. На первом графике 1610 представлена последовательность индексов кодовой таблицы для коэффициентов деформации временной шкалы 1510 (index=0, index=1, index=2, index=3, index=7). Кроме того, на графике 1610 дан ряд относительных показателей (коэффициентов) деформации (0.983, 0.988, 0.994, 1.000, 1.023), соотнесенных с индексами таблицы кодов. Далее видно, что первое значение узла деформации 1621 (i=0) выбрано как 1 (где 1 - начальное значение). Очевидно, что значение второго узла деформации 1622 (1=1) получено умножением начального значения 1 на первый относительный показатель 0.983 (с первым индексом, 0). Далее видно, что третье значение узла деформации 1623 получено перемножением значения 0.983 второго узла деформации 1622 со вторым относительным показателем деформации 0.988 (со вторым индексом, 1). Аналогичным способом получено значение четвертого узла деформации 1624 - умножением третьего значения узла деформации 1623 на третий коэффициент деформации 0.994 (соотнесенный с третьим индексом, 2).
Таким образом формируется последовательность значений узлов деформации 1621, 1622, 1623, 1624, 1625, 1626.
Нужную узловую точку деформации можно рассчитать как произведение начального значения (предположим, 1) и всех промежуточных относительных показателей деформации, лежащих между начальной узловой точкой деформации 1621 и соответствующим значением узловой точки деформации от 1622 до 1626.
На графике 1640 проиллюстрирована линейная интерполяция узлов деформации. Например, с помощью декодера аудиосигнала, применив линейную интерполяцию, можно интерполировать значения 1621а, 1621b, 1621с между двумя соседними значениями узлов деформации шкалы времени 1621, 1622.
На фиг.16b представлен график реконструкции контура деформации шкалы времени с использованием периодического рестарта от заданного опорного значения, что может быть реализовано в качестве опции в рамках вычислителя контура предыскажения шкалы времени 1500. Говоря иначе, повторение или периодическое возобновление [итеративность] вычислений не является здесь необходимым условием, если числовое переполнение может быть предотвращено каким-либо иным приемлемым способом на стороне кодера или декодера. Как видно на графике, на участке контура деформации, начинающемся с исходной узловой точки 1660, могут быть определены узлы контура деформации 1661, 1662, 1663, 1664. Интервалы между смежными узлами с 1661 по 1664 первого фрагмента контура деформации шкалы времени будут равны относительным показателям деформации (0.983, 0.988, 0.965, 1.000). При этом следующий, второй, фрагмент контура временной деформации будет начинаться после конечного узла 1664 первого фрагмента контура временной деформации (построенного по узлам 1660-1664). Второй фрагмент контура деформации времени начинается с нового исходного узла 1665, который может иметь заданное начальное значение, не зависящее от других относительных показателей деформации. Начиная со следующего исходного узла 1665, опираясь на относительные показатели деформации второго фрагмента контура предыскажения времени, можно вычислить значения узловых точек деформации второго фрагмента контура деформации времени. Позже, от исходной узловой точки 1670, которая, возможно, также будет иметь независимое от других коэффициентов значение, может начаться третий фрагмент контура деформации шкалы времени. Таким образом осуществляется итеративное обновление фрагментов контура деформации шкалы времени. По усмотрению пользователя возможна итеративная нормализация, подробно описанная выше.
Реализация кодера звукового сигнала в контексте фиг.17
Ниже приведено краткое описание другого конструктивного решения кодера звукового сигнала в соответствии с предлагаемым изобретением со ссылкой на фиг.17. Кодер аудиосигнала 1700 предназначен для приема многоканального акустического сигнала 1710 и формирования кодированного представления 1712 этого многоканального акустического сигнала 1710. Кодер аудиосигнала 1700 имеет в своем составе генератор кодированного представления аудиосигнала 1720, предназначенный для работы в выбираемых режимах
компоновки общих данных контура деформации аудиосигнала, совокупно характеризующих множество звуковых каналов многоканального акустического сигнала; или компоновки закодированных индивидуальных данных контуров деформации, раздельно характеризующих любой аудиоканал из множества аудиоканалов; при этом выбор режима зависит от информации с описанием сходства или различия контуров деформации множества аудиоканалов.
Так, кодер звукового сигнала 1700 включает в свою конструкцию определитель сходства контуров деформации или определитель различия контуров деформации 1730, предназначенный для расчета данных 1732, описывающих признаки сходства или различия между контурами деформации, связанными с аудиоканалами. Помимо этого, генератор кодированного представления аудиосигнала может включать в себя селективный кодер контура предыскажения шкалы времени 1722, предусмотренный для приема информации о контуре предыскажения шкалы времени 1724 (которая может или вводиться извне, или генерироваться вспомогательным вычислителем данных контура предыскажения шкалы времени 1734) и информации 1732. Если из информации 1732 следует, что контуры предыскажения шкалы времени двух или более звуковых каналов имеют достаточное сходство, селективный кодер контура предыскажения времени 1722 формирует сводную кодированную информации о контуре предыскажения времени.
Сводная информация о контуре предыскажения может базироваться, в частности, на усредненных данных контура предыскажения двух или более каналов. Кроме того, информация о контуре предыскажения может основываться на данных отдельного контура деформации одного аудиоканала, но должна быть совокупно соотнесена с остальным множеством каналов.
Однако, если информация 1732 указывает на то, что между контурами деформации множества звуковых каналов нет достаточного сходства, то селективный кодер контура предыскажения времени 1722, может предоставить отдельную закодированную информацию других контуров предыскажения шкалы времени.
Генератор кодированного представления аудиосигнала 1720, кроме того, имеет в своем составе процессор с предыскажением времени сигнала 1726, который также предназначен для получения информации о контуре предыскажения шкалы времени 1724 и приема многоканального акустического сигнала 1710. Процессор с временным предыскажением сигнала 1726 выполняет функцию кодирования множества каналов аудиосигнала 1710. Процессор с предыскажением времени сигнала 1726 предусматривает различные режимы работы. Процессор с предыскажением времени сигнала 1726 может, например, кодировать аудиоканалы выборочно по-отдельности или совокупно, используя сходные параметры каналов. В некоторых случаях предпочтительным может быть совокупное кодирование процессором с временным предыскажением сигнала 1726 множества аудиоканалов, содержащих общую информацию о контуре предыскажения времени. В других случаях левый акустический канал и правый акустический канал показывают одинаковую эволюцию относительной высоты основного тона, но различаются характеристиками сигнала, предположим, имеют разные абсолютные основные частоты или непохожие огибающие спектра. В подобном случае в силу существенных различий между левым звуковым каналом и правым звуковым каналом их совместное кодирование не желательно. Вместе с тем, эволюция относительной высоты основного тона в левом и правом звуковых каналах может проходить параллельно, и приложение общего предыскажения шкалы времени дась очень эффективный результат. Примером такого акустического сигнала может служить полифоническая музыка, когда компоненты множества аудиоканалов проявляют существенные различия между собой (например, передают звучание разных голосов или музыкальных инструментов), однако имеют одинаковые вариации основного тона. Поэтому эффективность кодирования может быть значительно повышена при условии обеспечения совокупного кодирования контуров предыскажения времени для множества аудиоканалов при сохранении возможности раздельного кодирования частотных спектров множества аудиоканалов, для которых вводятся общие параметры контура основного тона.
Генератор кодированного представления аудиосигнала 1720 может включать в свой состав как опцию кодер служебной информации 1728, предусмотренный для получения информации 1732 и выдачи служебной информации, отражающей, какой вариант кодирования контура деформации был выбран для множества аудиоканалов -один общий закодированный контур деформации или множество индивидуальных закодированных контуров деформации. Такая сопутствующая информация может быть представлена, например, в виде 1-битового флажка „common_tw" („общий контур деформации времени").
Итак, селективный кодер контура предыскажения времени 1722 предусматривает выбор режима кодированного представления контуров деформации шкалы времени множества аудиосигналов - индивидуального кодирования контуров деформации каждого из множества аудиосигналов, или совокупного кодирования единого контура деформации шкалы времени всего множества аудиоканалов. Кодер служебной информации 1728 как вспомогательное устройство обеспечивает протокольные данные, указывая индивидуальную или обобщенную форму представления контуров предыскажения шкалы времени. Процессор с предыскажением времени сигнала 1726 генерирует кодированные представления множества звуковых каналов. По усмотрению пользователя множество звуковых каналов может быть представлено в виде совокупной закодированной информации. При этом часто даже предусмотрена возможность генерации индивидуальных кодированных представлений множества аудиоканалов, для которых может быть сформировано совокупное представление контура предыскажения времени, благодаря чему разные аудиоканалы с различным звуковым контентом, но с одинаковым временным предыскажением, могут быть представлены адекватно. Таки образом, кодированное представление 1712 содержит закодированную информацию, сгенерированную селективным кодером контура предыскажения времени 1722 и процессором с временным предыскажением сигнала 1726, а также, дополнительно, кодером служебной информации 1728.
Реализация декодера аудиосигнала в контексте фиг.18
На фиг.18 представлена принципиальная блочная схема аппаратной версии декодера аудиосигнала в соответствии с предлагаемым изобретения. Декодер аудиосигнала 1800 принимает кодированное представление аудиосигнала 1810 (предположим, кодированное представление 1712) и на его базе формирует декодированное представление 1812 многоканального звукового сигнала. В конструкцию декодера аудиосигнала 1800 входят экстрактор служебной информации 1820 и декодер деформации временной шкалы 1830. Экстрактор служебной информации 1820 выполняет функцию выборки инструкций по приложению контура деформации шкалы времени 1822 и данных контура деформации 1824 из кодированного представления аудиосигнала 1810. В частности, экстрактор служебной информации 1820 может распознавать, в какой из форм доступна для множества каналов информация о контуре предыскажения: в совокупной единой, или в индивидуальной. Соответственно, экстрактор служебной информации предусматривает, с одной стороны, предоставление информации с инструкциями по применению контура деформации времени 1822 (указывающей форму - общую или индивидуальную - доступной информации о контуре деформации времени) и, с другой стороны, предоставление информации о контуре деформации шкалы времени 1824 (описывающей эволюцию во времени общего (совокупного) контура деформации или частных (обособленных) контуров деформации шкалы времени. Декодер деформации временной шкалы 1830 предназначен для выполнения реконструкции декодированного представления многоканального аудиосигнала на базе кодированного представления аудиосигнала 1810 с учетом деформации времени, описанной в информации 1822, 1824. Например, декодер деформации временной шкалы 1830 может быть рассчитан на приложение общего контура деформации времени к декодированию разных аудиоканалов, для чего в доступе имеется индивидуальная закодированная информация частотной области. Соответственно, декодер деформации временной шкалы 1830 способен, например, реконструировать разные каналы многоканального аудиосигнала, которые имеют похожую или одинаковую деформацию шкалы времени, но различную высоту основного тона.
Аудиопоток в контексте фиг.19а-19е
Дальше дано описание аудиопотока, который состоит из кодированного представления одного или большего числа звуковых каналов и одного или большего числа контуров деформации шкалы времени.
На фиг.19а графически отображен компонент потока данных, так называемый „USAC_raw_data_block", в который может входить одиночный элемент канала (SCE), парный элемент канала (СРЕ) или комбинация из одного или более одиночных элементов канала и/или одного или более парных элементов канала.
Компонент „USAC_raw_data_block", в основном, может состоять из блока закодированных аудиоданных, в то время как вспомогательная информация контура деформации шкалы времени может быть представлена отдельным элементом потока данных. Тем не менее, как правило, некоторые данные контура деформации времени могут быть закодированы в „USAC_raw_data_block".
Как видно на фиг.19b, одиночный элемент канала стандартно заключает в себе один поток частотного канала („fd_channel_stream"), что подробно объяснено в описании фиг.9d.
Как следует из фиг.19с, для парного элемента канала („channel_pair_element") типично содержание множества потоков частотного канала. Дополнительно парный элемент канала может включать в себя параметры деформации шкалы времени. Например, флажок активации деформации времени („tw_MDCT"), который может быть передан с элементом потока данных конфигурации или в составе блока „USAC_raw_data_block", определяет, включены ли данные деформации времени в парный элемент канала. Допустим, если флажок „tw_MDCT" индицирует, что деформация времени задействована, то парный элемент канала может содержать флажок („common_tw"), который указывает на наличие общей деформации времени для аудиоканалов парного элемента канала. Если флажок (common_tw) сигнализирует о наличии общей деформации временной шкалы для множества аудиоканалов, то общие данные деформации времени (tw_data) включаются в парный элемент канала, предположим, обособленный от потоков частотного канала.
Теперь, обращаясь к фиг.19d, перейдем к описанию потока частотного канала. Как следует из фиг.19d, поток частотного канала может содержать информацию глобального усиления. Кроме того, поток частотного канала содержит данные деформации времени при условии, что активирована деформация времени (установлен флажок „tw_MDCT") и отсутствует общая информация о деформации времени для множества аудиоканалов (флажок „common_tw" снят).
Далее, поток частотного канала содержит данные по коэффициентам масштабирования („scale_factor_data") и закодированные спектральные характеристики (например, арифметически закодированные спектральные данные „ac_spectral_data").
Теперь, со ссылкой на фиг.19е, кратко рассмотрим синтаксис данных деформации шкалы времени. Наличие данных деформации временной шкалы может быть обозначено, например, флажком (допустим, „tw_data_present" или „active Pitch Data"). При наличии данных деформации времени (то есть, если контур деформации времени имеет не плоскую конфигурацию) они могут содержать последовательность из множества кодированных значений относительных показателей деформации времени (например, „tw_ratio[i]" или „pitchIdx[i]"), закодированных, скажем, по кодовой таблице на фиг.9с.
Соответственно, данные деформации шкалы времени могут включать в себя флажок, сигнализирующий об отсутствии доступных данных деформации времени, который может быть установлен кодером звукового сигнала, если контур деформации времени характеризуется константой (коэффициенты деформации временной шкалы приблизительно равны 1,000). Наоборот, если контур деформации шкалы времени меняется, относительные показатели последовательных узлов контура деформации времени могут быть закодированы с использованием индексов кодовой таблицы, составляющих данные „tw_ratio".
Заключение
Обобщая вышесказанное, можно утверждать, что конструктивные решения по предлагаемому изобретению вносят усовершенствования в область деформации шкалы времени.
Различные аспекты изобретения, отраженные здесь, относятся к кодеру-преобразователю МДКП с временной деформацией (см., например, [1]). Варианты осуществления настоящего изобретения предусматривают способы улучшения характеристик кодера-преобразователя МДКП с временной деформацией.
Благодаря одному из предложенных подходов изобретение обеспечивает особо эффективный формат передачи потока двоичных данных. В описании формата потока битов взят за основу и оптимизирован синтаксис битстрима [усовершенствованного метода кодирования звука стандарта] MPEG-2 ААС (см., например, [2]), однако это описание, безусловно, применимо ко всем форматам битстрима с заголовком общего описания в начале потока и индивидуальной синтаксической структурой информации о фреймах.
В поток двоичных данных может быть введена для передачи, например, указанная ниже информация.
Как правило, в общую специфическую конфигурацию звука (GASC) может быть введен один однобитовый флажок (например, „tw_MDCT"), сигнализирующий включение или отключение режима деформации шкалы времени. Данные основного тона могут быть переданы с использованием синтаксиса, показанного на фиг.19е, или синтаксиса, показанного на фиг.19f. В синтаксической структуре, показанной на фиг.19f, число основных тонов („numPitches") может достигать 16, а число битов основного тона в ("numPitchBits") может равняться 3. Определяя иначе, на один участок контура деформации шкалы времени (или на фрейм аудиосигнала) допускается 16 кодированных значений коэффициентов деформации, при этом каждое значение коэффициента деформации может быть закодировано с использованием 3 битов.
Кроме того, внутри одиночного элемента канала (SCE) данные основного тона (pitch_data[]) могут располагаться перед данными раздела в индивидуальном канале, если режим деформации активирован.
В парном элементе канала (СРВ) флажок общего основного тона сигнализирует, есть ли в наличии общие данные основного тона для обоих каналов, следующие после него; если нет, раздельно по каналам проводится поиск индивидуальных контуров основного тона.
Позже будет приведен пример парного элемента канала. Одним из примеров может служить источник звукового сигнала с однотональной гармоникой, введенный в стереофоническую панораму. В этом случае контуры относительной высоты основного тона для первого канала и второго канала будут одинаковыми или лишь немного отличаться в силу небольших погрешностей в оценке колебаний. При этом кодер может сделать выбор вместо пересылки двух отдельных закодированных контуров основного тона для каждого канала в пользу передачи только одного контура основного тона, являющегося средним между контурами основного тона первого и второго каналов, и в пользу использования того же самого контура при применении TW-MDCT (МДКП с деформацией времени) для обоих каналов. С другой стороны, может встретиться сигнал, в котором оценка контура основного тона даст разные результаты для первого и второго канала соответственно. В подобном случае индивидуально закодированные контуры основного тона пересылаются по соответствующим каналам.
Ниже приведено описание предпочтительного способа декодирования данных контура основного тона согласно подходу данного изобретения. Допустим, если флажок „active PitchData" установлен на 0, то контур основного тона устанавливается на 1 для всех дискретов фрейма, в ином случае отдельные узлы контура основного тона вычисляют следующим образом:
- имеется numPitches+1 узел,
- узел [0] - всегда имеет значение 1,0;
- узел [i]=node[i-1]·relChange[i] (i=1…numPitches+l), где relChange получают обратным квантованием pitchIdx[i].
Затем строят контур основного тона путем линейной интерполяции между узлами, где межузловые интервалы составляют 0:frameLen/numPitches:frameLen.
Альтернативные конструктивные решения
В зависимости от конечного назначения и особенностей практического применения изобретение может быть реализовано в аппаратных или программных средствах. При техническом исполнении могут быть использованы цифровые носители и накопители данных, такие, в частности, как гибкий диск, DVD, CD, ROM, ППЗУ, программируемое ПЗУ, СППЗУ или флэш-память, способные хранить электронно считываемые сигналы управления и взаимодействовать с программируемой компьютерной средой таким образом, чтобы мог быть осуществлен соответствующий способ.
Некоторые варианты конструкции согласно данному изобретению имеют в своем составе носитель информации, содержащий электронно считываемые сигналы управления, совместимый с программируемой компьютерной системой и способный участвовать в реализации одного из описанных здесь способов.
В целом данное изобретение может быть реализовано как компьютерный программный продукт с кодом программы, обеспечивающим осуществление одного из предлагаемых способов при условии, что компьютерный программный продукт используется с применением компьютера. Код программы может, например, храниться на машиночитаемом носителе.
Различные варианты реализации включают в себя компьютерную программу, хранящуюся на машиночитаемом носителе, для осуществления одного из описанных здесь способов.
Таким образом, формулируя иначе, относящийся к изобретению способ осуществляют с помощью компьютерной программы, имеющей код программы, обеспечивающий реализацию одного из описанных здесь способов, если компьютерную программу выполняют с использованием компьютера.
Далее, следовательно, техническое исполнение изобретенного способа включает в себя носитель данных (либо цифровой накопитель информации, либо читаемую компьютером среду), содержащий записанную на нем компьютерную программу, предназначенную для осуществления одного из способов, описанных здесь.
Отсюда следует, что реализация изобретения подразумевает наличие потока данных или последовательности сигналов, представляющих компьютерную программу для осуществления одного из описанных здесь способов. Поток данных или последовательность сигналов могут быть рассчитаны на передачу через средства связи, например, Интернет.
Кроме того, реализация включает в себя аппаратные средства, например, компьютер или программируемое логическое устройство, предназначенные или приспособленные для осуществления одного из описанных здесь способов.
Далее, для технического исполнения требуется компьютер с установленной на нем компьютерной программой для осуществления одного из описанных здесь способов.
Некоторые версии конструкции для реализации одной или всех функциональных возможностей описанных здесь способов могут потребовать применения программируемого логического устройства (например, полевой программируемой матрицы логических элементов). В зависимости от назначения версии базовый матричный кристалл может сочетаться с микропроцессором с целью осуществления одного из описанных здесь способов.
Литература
[1] L. Villemoes, "Time Warped Transform Coding of Audio Signals", PCT/EP2006/010246, Int. patent application, November 2005.
[2] Generic Coding of Moving Pictures and Associated Audio: Advanced Audio Coding. International Standard 13818-7, ISO/IECJTC1/SC29/WG11 Moving Pictures Expert Group, 1997.