КОДИРОВАНИЕ ИНФОРМАЦИОННОГО СИГНАЛА
DATA SIGNAL ENCODING

Настоящее изобретение относится к кодированию информационных сигналов, такому, как например, аудиокодирование и, в частности, к кодированию SBR (с копированием спектральных полос).
В применениях, в которых доступна очень низкая скорость передачи битов, применительно к аудиокодированию сигналов используется алгоритм SBR. Полностью кодируется только низкочастотная часть, то есть при надлежащем временном и спектральном разрешениях. Что касается высокочастотной части, то обнаруживается и кодируется только огибающая спектра или же огибающая спектральной временной кривой аудиосигнала. На стороне декодера низкочастотная часть извлекается из кодированного сигнала и затем используется для восстановления или «копирования» из него высокочастотной части. Однако для согласования энергии высокочастотной части, которая была предварительно восстановлена таким образом, с фактической энергией в высокочастотной части исходного аудиосигнала, на стороне декодера переданная огибающая спектра используется для спектрального взвешивания предварительно восстановленной высокочастотной части.
Соответственно, для целесообразности вышеупомянутого результата важно, чтобы количество битов, используемых для передачи огибающих спектра, было как можно меньшим. Поэтому желательно, чтобы временная сетка, в которой кодируется огибающая спектра, имела как можно больший шаг. Однако, с другой стороны, сетка со слишком большим шагом приводит к акустическим искажениям, которые заметны, в частности, при переходах, то есть в позициях, где высокочастотные части преобладают в обычном порядке над низкочастотными частями, или же в позициях, где присутствует, по меньшей мере, быстрый рост амплитуды высокочастотных частей.
В аудиосигналах такие переходы соответствуют, например, началу звучания нот, например, нажатию на клавишу пианино или подобному. Если на протяжении всего интервала времени перехода сетка имеет слишком большой шаг, то это может привести к акустическим искажениям при восстановлении всего аудиосигнала на стороне декодера. Как известно, поскольку на стороне декодера высокочастотный сигнал восстанавливается из низкочастотной части в области сетки, спектральная энергия декодируемой низкочастотной части нормализуется, а затем согласовывается с передаваемой посредством взвешивания огибающей спектра. Другими словами, спектральное взвешивание попросту выполняется в области сетки для того, чтобы восстановить высокочастотную часть из низкочастотной части. Однако, если область сетки вблизи перехода будет слишком большой, то в этой области сетки, в добавок к энергии перехода, будет располагаться большое количество энергии в фоновой и/или гармонической части низкочастотной части, которая используется для восстановления высокочастотной части. Упомянутая низкочастотная часть дополнительно усиливается посредством весового коэффициента, несмотря на то, что это не приводит к хорошей оценке высокочастотной части. По всей области сетки это приводит к акустическому искажению, которое, помимо всего прочего, начинается перед конкретным переходом. Эта проблема также может называться «опережающее эхо».
Проблема может быть разрешена в том случае, когда область сетки вблизи перехода имеет малый шаг, достаточный для того, чтобы отношение переход/фон части низкочастотной части в этой области сетки было улучшено. Однако маленькие области сетки или же маленькие интервалы между границами сетки являются препятствиями на пути к вышеупомянутому, обрисованному в общих чертах, требованию малого расхода битов при кодировании огибающих спектра.
tmp
В стандарте ISO/IEC 14496-3, ниже попросту называемом «стандарт», кодирование SBR описывается применительно к кодеру AAC. Кодер AAC кодирует низкочастотную часть покадровым способом. Для каждого такого кадра SBR вышеупомянутые временное и частотное разрешения определяют позицию, в которой в этом кадре закодирована огибающая спектра высокочастотной части. При разрешении проблемы, при которой переходы также могут выпасть на границы кадра SBR, стандарт допускает, чтобы временная сетка могла быть на время определена таким образом, чтобы границы сетки не совпадали в обязательном порядке с границами кадра. Предпочтительно, в этом стандарте кодер в каждом кадре передает декодеру синтаксический элемент bs_frame_class, причем упомянутый синтаксический элемент указывает для каждого кадра, определена ли временная сетка координатной привязки огибающей спектра для соответствующего кадра точно между двумя границами кадра или же между границами, которые смещены от границ кадра, в частности, в начале и/или в конце. В целом, существуют четыре различных класса кадров SBR-FIXFIX, FIXVAR, VARFIX и VARVAR. Синтаксис, используемый кодером в стандарте для определения сетки для каждого кадра SBR, изображен на Фиг.12 в псевдокодовом представлении. В частности, в изображенном на Фиг.12 представлении, те синтаксические элементы, которые фактически кодируются и/или передаются посредством кодера, напечатаны на Фиг.12 жирным шрифтом, а количество битов, используемых для передачи и/или кодирования, указано во втором столбце справа, в соответствующей строке. Как может быть замечено, синтаксический элемент bs_frame_class, который был недавно упомянут, первоначально передается для каждого кадра SBR. В зависимости от этого будут следовать дополнительные синтаксические элементы, которые, как иллюстрировано, определяют временное разрешение и/или координатную привязку. Например, если двухразрядный синтаксический элемент bs_frame_class указывает на то, что кадр SBR в запросе является кадром FIXFIX SBR, то синтаксический элемент tmp, который определяет количество областей сетки в этом кадре SBR и/или который определяет количество огибающих как 2, будет передан в качестве второго синтаксического элемента. Синтаксический элемент bs_amp_res, который используется для определения шага квантования для кодирования огибающей спектра в текущем кадре SBR, автоматически согласовывается в зависимости от bs_num_env, а также не кодируется или не передается. В конечном счете, для кадра FIXFIX, передается бит для определения частотного разрешения сетки bs_freq_res. Кадры FIXFIX определяются исключительно для одного кадра, то есть границы сетки совпадают с границами кадра, как определяется посредством кодера AAC.
Для других трех классов способы различны. Для кадров FIXVAR, VARFIX и VARVAR синтаксические элементы bs_var_bord_1 и/или bs_bar_bord_0 передаются для указания количества временных интервалов, то есть тактов, причем для спектрального разложения аудиосигнала используется банк фильтров, посредством которого выполняется смещение относительно нормальных границ кадра. В зависимости от этого синтаксические элементы bs_num_rel_1 и связанный tmp и/или bs_num_rel_0 и связанный tmp также передаются для определения количества областей сетки или огибающих, а также их размеров от смещения границы кадра. В конечном счете, синтаксический элемент bs_pointer также передается в переменных кадрах SBR, причем упомянутый синтаксический элемент указывает на одну из определенных огибающих, а также служит для определения одной или двух шумовых огибающих для определения шумовой части в кадре, в зависимости от координатной привязки огибающей спектра, которая, однако, не будет подробно разъясняться ниже для упрощения представления. В заключение определяется соответствующее частотное разрешение, а именно посредством соответствующего одноразрядного синтаксического элемента bs_freq_res для каждой огибающей, для всех областей сетки и/или огибающих в соответствующих переменных кадрах.
1
Фиг.13a иллюстративно изображает кадр FIXFIX, в котором синтаксический элемент tmp равен 1, для того, чтобы количество огибающих было равным bs_num_env 2=2. На Фиг.13a предполагается, что ось времени проходит слева направо в горизонтальном направлении. Кадр SBR, то есть один из кадров, в которых кодер AAC кодирует низкочастотную часть, обозначен на Фиг.13a ссылочным номером 902. Можно видеть, что кадр 902 SBR имеет длину, равную 16 сегментам QMF, причем сегменты QMF, как было упомянуто, являются временными сегментами, в единицах которых работает набор фильтров анализа, причем временные сегменты QMF обозначены на Фиг.13а блоками 904. В кадрах FIXFIX огибающие 906a и 906b или области 906a и 906b сетки, в данном случае в количестве двух, имеют одинаковую длину в кадрах 902 SBR так, что граница 908 временной сетки и/или огибающей установлена точно в середине кадра 902 SBR. Таким образом, изображенный на Фиг.13 иллюстративный кадр FIXFIX определяет, что спектральное распределение для области 906a сетки или огибающей 906a, а также для огибающей 906 временно определено из спектральных значений набора фильтров анализа. Таким образом, огибающие 906a и 906b или области 906a и 906b сетки определяют сетку, в которой кодируется и/или передается огибающая спектра.
Для сравнения Фиг.13b изображает кадр VARVAR. Снова обозначен кадр 902 SBR и связанные сегменты 904 QMF. Однако для этого кадра SBR синтаксические элементы bs_var_bord_0 и/или bs_var_bord_1 определяют, что связанные с ним огибающие 906a', 906b' и 906c' не должны начинаться в начале 902a кадра SBR и/или заканчиваться в конце 902b кадра SBR. На Фиг.13b можно заметить, что предшествующий кадр SBR (не показан на Фиг.13b) уже продолжался на двух временных интервалах QMF за пределами начала 902a кадра SBR текущего кадра SBR так, что последняя огибающая 910 предшествующего кадра SBR переходит в текущий кадр 302 SBR. Последняя огибающая 906c' текущего кадра также выходит за пределы конца текущего кадра 902 SBR, а именно, в качестве примера, также на два сегмента QMF в данном случае. Кроме того, здесь также можно заметить, в качестве примера, что синтаксическим элементам bs_num_rel_0 и bs_num_rel_1 кадра VARVAR присваиваются значения «1», соответственно, с дополнительной информацией о том, что определенные таким образом огибающие имеют длину, равную четырем сегментам QMF, как в начале, так и в конце кадра 902 SBR, то есть 906a' и 906b', в соответствии с tmp=1, так, что продолжаются от границ кадра 902 SBR на это количество временных интервалов. Затем оставшееся место кадра 902 SBR занимается оставшейся огибающей, в данном случае третьей огибающей 906b'.
Посредством наличия элемента «T» в одном из сегментов 904 QMF Фиг.13b в качестве примера указывает причину, почему кадр VARVAR был определен здесь, а именно в связи с тем, что позиция «Т» перехода расположена близко к концу 902b кадра SBR, а также в связи с тем, что, вероятно, переход (не показан) также присутствовал в кадре SBR, предшествующем текущему кадру SBR.
Следовательно, стандартизированная версия, в соответствии с ISO/ICE 14496-3, предусматривает перекрытие двух последовательных кадров SBR. Это позволяет установить границы огибающей переменным образом, независимо от фактических границ кадра SBR, в соответствии с формой сигнала. Следовательно, переходы могут быть охвачены собственными огибающими, и их энергия может вырезаться из остаточного сигнала. Однако перекрытие также вызывает дополнительную системную задержку, как было иллюстрировано выше. В частности, для сигнализации в стандарте используются четыре класса кадров. В классе FIXFIX границы огибающих SBR совпадают с границами основного кадра, как изображено на Фиг.13a. Класс FIXFIX используется в случаях отсутствия переходов в этом кадре. Количество огибающих определяет их эквидистантное распределение в пределах кадра. Класс FIXVAR обеспечивается в случаях, когда в текущем кадре присутствует переход. Следовательно, в данном случае соответствующий набор огибающих начинается на границе кадра SBR и переменным образом заканчивается в области передачи SBR. Класс VARFIX обеспечивается в случае, когда переход отсутствует в текущем кадре, но присутствует в предшествующем кадре. Последовательность огибающих из последнего кадра в данном случае продолжается посредством нового набора огибающих, который заканчивается на границе кадра SBR. Класс VARVAR обеспечивается в случае, когда переход присутствует как в последнем кадре, так и в текущем кадре. В данном случае переменная последовательность огибающих продолжается посредством дополнительной переменной последовательности. Как было описано выше, границы переменных огибающих передаются по отношению друг к другу.
Хотя количество сегментов QMF, на которое при помощи синтаксических элементов bs_var_bord_0 и bs_var_bord_1 относительно фиксированных границ кадра могут быть смещены границы, эта возможность вызывает задержку на стороне декодера из-за возникновения огибающих, которые выходят за пределы границ кадра SBR, в связи с чем требуется формирование и/или усреднение спектральной энергии сигналов между границами кадра SBR. Однако такое время задержки является неприемлемым в некоторых приложениях, таких как телефонная связь или другие приложения реального времени, которые рассчитаны на малое время задержки, вызываемое кодированием и декодированием. Даже если таким образом возникновение опережающего эха предотвращено, решение не подходит для приложений, требующих малого времени задержки. Кроме того, количество битов, требуемых для передачи кадров SBR в вышеописанном стандарте, является относительно большим.
Цель настоящего изобретения заключается в обеспечении схемы кодирования, которая обеспечивает, с адекватным разрешением проблемы перехода и/или опережающего эха, малые времена задержки на средней или низкой скорости передачи битов или же с адекватным разрешением проблемы перехода и/или опережающего эха сокращенное время задержки на средней скорости передачи битов с потерями.
Эта цель достигается посредством кодера по п.1 или 34, декодера по п.13, 28 или 38, кодированного информационного сигнала по п.25 или 41, а также способа по п.26, 27, 33, 35, 39 или 40.
Идея настоящего изобретения заключается в возможности адекватного разрешения проблемы перехода, при котором дополнительная задержка на стороне дешифратора может быть сокращена, если используется новый класс кадров SBR, в котором границы кадра не смещаются, то есть границы сетки остаются синхронизированными с границами кадра, но в котором индикатор позиции перехода дополнительно используется в качестве синтаксического элемента для использования на стороне кодера и/или декодера в кадрах этого нового класса кадров для определения границ сетки в пределах этих кадров.
В соответствии с одним вариантом осуществления настоящего изобретения индикатор позиции перехода используется для того, чтобы относительно малая область сетки, ниже называемая огибающей перехода, определялась вокруг позиции перехода, в то время как только одна огибающая будет продолжаться в оставшейся части кадра перед и/или после него, в кадре от огибающей перехода до начала и/или конца кадра. Следовательно, количество битов, передаваемых и/или кодируемых для нового класса кадров, также является слишком малым. С другой стороны, связанные проблемы переходов и/или опережающего эха могут быть адекватно разрешены. Переменные кадры SBR, такие как FIXVAR, VARFIX и VARVAR, больше не будут требоваться так, что задержки для компенсации огибающих, которые выходят за пределы границ кадра SBR, больше потребуются. В соответствии с вариантом осуществления настоящего изобретения теперь будут допустимы только два класса кадров, а именно класс FIXFIX и только что описанный класс, который будет ниже называться классом LD_TRAN.
В соответствии с другим вариантом осуществления настоящего изобретения, не в каждом случае одна или несколько огибающих спектра и/или значений спектральной энергии передаются и/или вставляются в кодируемый информационный сигнал для каждой области сетки в кадрах класса LD_TRAN. В частности, это даже не делается в случаях, когда огибающая перехода, определенная в его позиции в пределах кадра посредством индикатора позиции перехода, располагается близко к границе кадра, которая является опережающей во времени так, что огибающая этого кадра LD_TRAN, упомянутая огибающая расположена между границей кадра, которая является опережающей во времени, и огибающей перехода, будет продолжаться только на короткий период времени, который не оправдан с точки зрения эффективности кодирования, поскольку, как известно, краткость этой огибающей не зависит от перехода, а скорее зависит от случайной временной близости границы кадра и перехода. В соответствии с этим альтернативным вариантом осуществления принимается значение(я) спектральной энергии и соответствующее частотное разрешение предшествующей огибающей, следовательно, для рассматриваемой огибающей, например, подобной шумовой части. Следовательно, передача может быть опущена, в связи с чем степень сжатия увеличивается. С другой стороны, потери в слышимости являются исключительно малыми, поскольку проблема перехода на данном этапе отсутствует. Кроме того, в силу того, что использование восстановления высокочастотной части является возможным непосредственно для всех вовлеченных огибающих, то есть для огибающих предшествующего кадра, огибающей перехода и промежуточной огибающей, задержка на стороне декодера не возникает.
В соответствии с другим вариантом осуществления проблемы неумышленно большого количества данных при возникновении перехода в конце кадра LD_TRAN разрешаются следующим образом: между кодером и декодером достигается согласование относительно того, насколько далеко огибающая перехода, которая расположена на замыкающей границе текущего кадра LD_TRAN, должна быть виртуально спроецирована в следующий кадр. Решение принимается, например, посредством обращения к таблицам кодера или декодера. В соответствии с согласованием первая огибающая следующего кадра, например, одна огибающая кадра FIXFIX, сокращается таким образом, чтобы начинаться только в конце виртуально продолжающейся огибающей. Кодер вычисляет значение(я) спектральной энергии для виртуальной огибающей за весь период времени этой виртуальной огибающей, но передает результат только для огибающей перехода, возможно способом, который сокращается как функция отношения временной части виртуальной огибающей в начальном и конечном кадрах. На стороне декодера значение(я) спектральной энергии огибающей перехода, расположенной в конце, используется как для высокочастотного восстановления в этой огибающей перехода, и отдельно от этого, для высокочастотного восстановления в начальной области продолжения в следующих кадрах, при этом одно и/или несколько значений спектральной энергии для этой области получаются из этого или этих значений огибающей перехода. При этом избегают дискретизации с повышенной частотой для переходов, расположенных на границах кадра.
В соответствии с дополнительным аспектом настоящего изобретения идея настоящего изобретения заключается в адекватном разрешении изложенных в вводной части к описанию проблем перехода, и задержка на стороне декодера может быть сокращена в случаях действительного использования деления огибающей и/или области сетки, согласно которому огибающие могут продолжаться через границы кадра с перекрытием двух соседних кадров, но если эти огибающие снова делятся посредством декодера на границе кадра, и высокочастотное восстановление выполняется в сетке, которая разделена таким способом и совпадает с границами кадра. Для получаемых таким образом парциальных областей сетки перекрываемых областей сетки значение спектральной энергии, или множество значений спектральной энергии, получают соответственно на стороне декодера из одного или множества значений спектральной энергии, которые были переданы для огибающей, продолжающейся через границу кадра.
В соответствии с дополнительным аспектом настоящего изобретения идея настоящего изобретения заключается в том, что задержка на стороне декодера может быть получена посредством сокращения размера кадра и/или количества содержащихся в нем отсчетов, а также в том, что связанный эффект повышенной скорости передачи битов может быть снижен, если введен новый флаг и/или введен индикатор отсутствия перехода для кадров, имеющих режим восстановления, согласно которым границы сетки совпадают с границами кадра этих кадров, таких как кадры FIXFIX, и/или для соответствующего режима восстановления. В частности, если в таком коротком кадре отсутствует переход, а также если рядом с кадром не присутствует никакого другого перехода так, что информационный сигнал является стационарным в этой точке, индикатор отсутствия перехода может использоваться не для того, чтобы вводить для первой области сетки такого кадра любое значение, описывающее огибающую спектра, в кодируемый информационный сигнал, а использоваться для введения или получения того же на стороне декодера, а не из значения(й), представляющего(их) огибающую спектра, причем упомянутые значения предоставляются в кодированном информационном сигнале для последней области сетки и/или последней огибающей предшествующего во временном отношении кадра. Таким способом возможно сокращение кадров с пониженным влиянием на скорость передачи битов, причем, с одной стороны, такое сокращение обеспечивает более короткое время задержки, а с другой стороны, благодаря меньшим кадрам разрешает проблемы перехода.
Предпочтительные варианты осуществления настоящего изобретения будут более подробно разъяснены ниже, со ссылкой на сопроводительные чертежи, на которых изображено следующее:
Фиг.1 изображает блок-схему кодера в соответствии с вариантом осуществления настоящего изобретения;
Фиг.2 изображает псевдокод для описания синтаксиса синтаксических элементов, используемых изображенным на Фиг.1 кодером для определения деления сетки кадра SBR;
Фиг.3 изображает таблицу, которая может быть определена на стороне кодера и стороне декодера для получения из изображенного на Фиг.2 синтаксического элемента bs_transient_position информации о количестве огибающих и/или областей сетки, а также позиций границ области сетки в кадре LD_TRAN;
Фиг.4a изображает схематичное представление для иллюстрации кадра LD_TRAN;
Фиг.4b изображает схематичное представление для иллюстрации взаимодействия набора фильтров анализа и блока вычисления данных огибающих на Фиг.1;
Фиг.5 изображает блок-схему декодера в соответствии с вариантом осуществления настоящего изобретения;
Фиг.6a изображает схематичное представление для иллюстрации кадра LD_TRAN с огибающей перехода, расположенной далеко от ближнего конца, для иллюстрации проблемы, возникающей в этом случае;
Фиг.6b изображает схематичное представление для иллюстрации случая, в котором переход расположен между двумя кадрами, для иллюстрации соответствующих проблем, касающихся высоких затрат при кодировании в этом случае;
Фиг.7a изображает схематичное представление для иллюстрации кодирования огибающей, в соответствии с вариантом осуществления, для разрешения проблем, изображенных на Фиг.6a;
Фиг.7b изображает схематичное представление для иллюстрации кодирования огибающей, в соответствии с вариантом осуществления, для разрешения проблем, изображенных на Фиг.6b;
Фиг.8 изображает схематичное представление для иллюстрации кадра LD_TRAN с позицией перехода TranPos=1 в соответствии с изображенной на Фиг.3 таблицей;
Фиг.9 изображает таблицу, которая может быть определена на стороне кодера и стороне декодера для получения из изображенного на Фиг.2 синтаксического элемента bs_transient_position информации о количестве огибающих и/или областей сетки и позициях границы (границ) областей сетки в кадре LD_TRAN, а также информации о приеме данных из предшествующего кадра в соответствии с Фиг.7a и о продолжении данных в следующий кадр в соответствии с Фиг.7b;
Фиг.10 изображает схематичное представление последовательности FIXVAR-VARFIX для иллюстрации сигнализации огибающей, причем огибающая продолжается через границы кадра;
Фиг.11 изображает схематичное представление декодирования, которое обеспечивает более короткое время задержки, несмотря на сигнализацию огибающей, в соответствии с Фиг.10, в соответствии с другим вариантом осуществления настоящего изобретения;
Фиг.12 изображает псевдокод синтаксиса для деления огибающей кадра SBR, в соответствии со стандартом ISO/IEC 14496-3 и
Фиг.13a и 13b изображают схематические представления кадра VARVAR и/или FIXFIX.
Фиг.1 изображает структуру кодера в соответствии с вариантом осуществления настоящего изобретения. Изображенный на Фиг.1 кодер, например аудиокодер, в целом, обозначен ссылочным номером 100. Он включает в себя вход 102 для предназначенного для кодирования аудиосигнала, а также выход 104 для кодированного аудиосигнала. Далее должно предполагаться, что аудиосигнал на входе 102 является дискретным аудиосигналом, например сигналом, кодированным с использованием импульсно-кодовой модуляции (PCM). Однако изображенный на Фиг.1 кодер также может быть реализован другим способом.
Изображенный на Фиг.1 кодер дополнительно включает в себя блок 104 субдискретизации и аудиокодер 106, которые соединены в упомянутом порядке между входом 102 и первым входом блока 108 форматирования, выход которого, в свою очередь, соединен с выходом 104 кодера 100. Ввиду соединения элементов 104 и 106 результат кодирования субдискретизированного аудиосигнала 102 выдается на выход аудиокодера 106, причем упомянутое кодирование, в свою очередь, соответствует кодированию низкочастотной части аудиосигнала 102. Аудиокодер 106 является кодером, который функционирует покадровым способом, то есть присутствующий на выходе аудиокодера 106 результат может быть декодирован только в блоках этих кадров. Например, далее должно предполагаться, что аудиокодер 106 является кодером, совместимым с AAC-LD, в соответствии со стандартом ISO/IEC 14496-3.
Набор 110 фильтров анализа, блок 112 вычисления данных огибающих, а также кодер 114 данных огибающих в упомянутом порядке соединены между входом 102 и дополнительным входом блока 108 форматирования. Кроме того, кодер 100 включает в себя контроллер 116 кадров SBR, который имеет блок 118 обнаружения переходов, соединенный между его входом и входом 102. Выходы контроллера 116 кадров SBR соединены как со входом блока 112 вычисления данных огибающих, так и с дополнительным входом блока 108 форматирования.
Теперь после описания структуры изображенного на Фиг.1 кодера будет описан режим его работы. Как уже было упомянуто, кодированная версия низкочастотной части аудиосигнала 102 подается на первый вход блока 108 форматирования, аудиокодер 106 кодирует субдискретизированный аудиосигнал 102, причем, отправляется, например, только каждый другой отсчет исходного аудиосигнала. Набор 110 фильтров анализа выполняет спектральное разложение аудиосигнала 102 с определенным временным разрешением. Должно подразумеваться, что, например, набор 110 фильтров анализа является блоком фильтров QMF (QMF - квадратурный зеркальный фильтр). Набор 110 фильтров анализа генерирует М значений подполос для каждого временного сегмента QMF, например, каждый временной сегмент QMF включает в себя 64 отсчета аудиосигнала. Для снижения скорости передачи данных блок 112 вычисления данных огибающих из спектральной информации набора 110 фильтров анализа, который имеет большие временное и спектральное разрешения, формирует представление огибающей спектра аудиосигнала 102 с соответственно меньшим разрешением, то есть в пределах подходящей частотно-временной сетки. В данном случае частотно-временная сетка задается посредством контроллера 116 кадров SBR для каждого кадра, то есть для каждого кадра, определенного аудиокодером 106. Более того, контроллер 116 кадров SBR выполняет этот контроль в зависимости от обнаруженных и/или локализованных переходов, обнаруженных и/или локализованных блоком 118 обнаружения/локализации переходов. Для обнаружения переходов и/или времен начала аудиосигналов блок 118 обнаружения переходов выполняет подходящий статистический анализ аудиосигнала 102. Анализ может быть выполнен во временной или спектральной области. Блок 118 обнаружения переходов может оценить, например, временную кривую огибающей аудиосигнала, например, оценку роста временной кривой огибающей. Как будет более подробно описано ниже, контроллер 116 кадров SBR связывает каждый кадр и/или кадр SBR с одним из двух возможных классов кадров SBR, а именно либо с классом FIXFIX, либо с классом LD_TRAN. В частности, контроллер 116 кадров SBR связывает класс FIXFIX с каждым кадром, который не содержит переходов, тогда как контроллер кадров связывает класс LD_TRAN с каждым кадром, имеющим переход. Блок 112 вычисления данных огибающих задает временную сетку, в соответствии с классами кадров SBR, в качестве привязанной к кадрам посредством контроллера 116 кадров SBR. Независимо от четкой привязки все границы кадра всегда будут совпадать с границами сетки. Только границы сетки в пределах кадров находятся под влиянием привязки к классу. Как будет более подробно разъясняться ниже, контроллер кадров SBR задает дополнительные синтаксические элементы в зависимости от ассоциированного класса кадра, а затем выдает их на блок 108 форматирования. Хотя на Фиг.1 явным образом не изображено, синтаксические элементы, естественно, также могут быть подвергнуты операции кодирования.
Следовательно, блок 112 вычисления данных огибающих выдает представление огибающих спектра в разрешении, которое соответствует частотно-временной сетке, предварительно определенной посредством контроллера 116 кадров SBR, а именно посредством одного спектрального значения для каждой области сетки. Эти спектральные значения кодируются посредством кодера 114 данных огибающих и передаются на блок 108 форматирования. Кодер 114 данных огибающих также может быть опущен. Блок 108 форматирования объединяет принятую информацию с кодированным потоком 104 аудиоданных и/или с кодированным аудиосигналом и выдает результат на выход 104.
Режим работы изображенного на Фиг.1 кодера будет описан более подробно ниже, со ссылкой на Фиг.2-4b, относительно деления временной сетки, которая задается посредством контроллера 116 кадров SBR и используется блоком 112 вычисления данных огибающих для определения огибающей сигнала в предварительно определенном делении сетки из сигнала на выходе набора фильтров анализа.
tmp
Фиг.2 с помощью псевдокода первоначально изображает синтаксические элементы, посредством которых контроллер 116 кадров SBR предварительно определяет деление сетки, которое должно использоваться блоком 112 вычисления данных огибающих. Подобно изображенному на Фиг.12 случаю, синтаксические элементы, которые фактически переданы с контроллера 116 кадров SBR на блок 108 форматирования для кодирования и/или передачи, выделены на Фиг.2 жирным шрифтом, соответствующая строка в столбце 202 указывает количество битов, используемых для передачи соответствующего синтаксического элемента. Как может быть замечено, первоначально посредством синтаксического элемента bs_frame_class для кадра SBR делается определение того, является ли кадр SBR кадром FIXFIX или кадром LD_TRAN. Затем в зависимости от определения (204) передаются различные синтаксические элементы. В случае класса FIXFIX (206) синтаксическому элементу bs_num_env [ch] текущего кадра SBR ch посредством двухразрядного синтаксического элемента tmp (208) первоначально присваивается значение «2». В зависимости от количества bs_num_env [ch] синтаксический элемент bs_amp_res либо остается со значением «1», которое было присвоено по умолчанию, либо ему присваивается значение «0» (210), причем синтаксический элемент bs_amp_res указывает точность квантования, с которой значения огибающих спектра, которые получены при помощи блока 112 вычисления в предварительно определенной координатной привязке, передаются на блок 108 форматирования в состоянии, в котором они были закодированы кодером 114. Области сетки и/или огибающие, в предварительно определенном посредством bs_num_env [ch] количестве, задаются с учетом их частотного разрешения, которое должно использоваться блоком 112 вычисления данных огибающих для определения огибающей спектра в них посредством общего (211) синтаксического элемента bs_freq_res [ch], который передается (212) на блок 108 форматирования с битом от контроллера 116 кадров SBR.
Режим работы блока 112 вычисления данных огибающих будет снова описан со ссылкой на Фиг.13a ниже, когда контроллер 116 кадров SBR определит, что текущий кадр 902 SBR является кадром FIXFIXFIX. В этом случае блок 112 вычисления данных огибающих равномерно делит текущий кадр 902, который состоит в данном случае, к примеру, из N=16 временных интервалов 904 набора фильтров анализа, на области сетки и/или огибающие 906a и 906b таким образом, чтобы области сетки и обе огибающие 906a,906b имели длину N/bs_num_inv[ch] временных интервалов 904 и занимали одинаковое число временных интервалов между границами 902a и 902b кадра SBR. Другими словами, в случае кадров FIXFIX блок 112 вычисления данных огибающих равномерно размещает границы 908 сетки между границами 902a, 902b кадра SBR таким образом, чтобы они были эквидистантно распределены в пределах этих кадров SBR. Как уже было упомянуто, набор 110 фильтров анализа выдает спектральные значения подполосы для каждого временного интервала 904. Блок 112 вычисления данных огибающих временно объединяет значения подполос способом «от огибающей к огибающей» и суммирует их квадратичные суммы для получения энергий подполос в разрешении огибающей. В зависимости от синтаксического элемента bs_freq_res[ch] блок 112 вычисления данных огибающих также объединяет несколько подполос в спектральной области для сокращения частотного разрешения. Таким способом блок 112 вычисления данных огибающих выдает для каждой огибающей 906a, 906b спектральную энергию огибающей, выбранную с частотным разрешением, которое зависит от bs_freq_res[ch]. Затем эти значения кодируются кодером 114 с квантованием, которое, в свою очередь, зависит от bs_amp_res.
До настоящего момента предшествующее описание относилось к случаю, когда контроллер 116 кадров SBR привязывал определенный кадр к классу FIXFIX, что имеет место, когда в этом кадре отсутствуют переходы, как было описано выше. Однако следующее описание относится к другому классу, то есть к классу LDN-TRAN, который привязывается к кадру, если в нем присутствует переход, как указано посредством блока 118 обнаружения. Следовательно, если синтаксический элемент bs_frame_class указывает на то, что этот кадр является кадром LDN-TRAN (214), то контроллер 116 кадров SBR определяет и передает с четырьмя битами синтаксический элемент bs_transient_position для того, чтобы указать в единицах временных интервалов 904, например, относительно начала 902a кадра или, альтернативно, относительно конца 902b кадра, позицию перехода, как было определено блоком 118 обнаружения переходов (216). На данный момент четырех битов достаточно для этой цели. На Фиг.4a изображен иллюстративный случай. Фиг.4a, в свою очередь, изображает кадр 902 SBR, включающий в себя 16 временных интервалов 904. Шестой временной интервал 904 от начала 902a кадра SBR содержит переход T, который соответствует bs_transient_position=5 (первый временной интервал является нулевым временным интервалом). Как обозначен в позиции 218 на Фиг.2, следующий синтаксис для определения сетки кадра LD_TRAN зависит от bs_transient_position, который должен учитываться на стороне декодера в синтаксическом анализе (парсинге), выполняемом посредством соответствующего демультиплексора. Однако в позиции 218 режим работы блока 112 вычисления данных огибающих, после получения синтаксического элемента bs_transient_position от контроллера 116 кадров SBR, может быть иллюстрирован следующим образом. Посредством индикатора позиции перехода блок 112 вычисления отыскивает bs_transient_position в таблице, пример которой изображен на Фиг.3. Как будет более подробно разъясняться ниже, со ссылкой на изображенную на Фиг.3 таблицу, блок 112 вычисления посредством таблицы задает деление огибающей в пределах кадра SBR таким способом, чтобы короткая огибающая перехода располагалась вокруг позиции Т перехода, тогда как одна или две огибающие 222a и 222b занимают оставшуюся часть кадра 902 SBR, а именно часть от огибающей 220 перехода до начала 902a кадра SBR и/или часть от огибающей 220 перехода до конца 902b кадра SBR.
Изображенная на Фиг.3 таблица, которая используется блоком 112 вычисления, теперь состоит из пяти столбцов. Возможные позиции перехода, которые в настоящем примере проходят от 0 до 15, введены в первый столбец. Второй столбец указывает количество огибающих и/или областей 220, 222a и/или 222b сетки, которые заканчиваются в соответствующей позиции перехода. Как может быть замечено, возможное количество может равняться 2 или 3, в зависимости от того, близко к началу 902a кадра SBR или же к концу 902b кадра SBR расположена позиция перехода, в последнем случае присутствуют только две огибающие. Третий столбец указывает позицию границы первой огибающей в пределах кадра, то есть границу первых двух соседних огибающих в единицах временных интервалов 904, в частности, позицию начала второй огибающей, причем нулевая позиция указывает первый временной интервал в кадре SBR. Четвертый столбец соответственно указывает позицию границы второй огибающей, то есть границы между второй и третьей огибающими, этот индикатор, как и следовало ожидать, определяется только для тех позиций перехода, для которых обеспечиваются три огибающие. В остальном занесенные в этот столбец значения являются незначительными и обозначены на Фиг.3 символом «-». Например, как может быть замечено, в изображенной на Фиг.3 таблице присутствует, например, только огибающая 220 перехода и следующая огибающая 222b, когда позиция T перехода расположена в одном из первых двух временных интервалов 904 от начала 902a кадра SBR. В случае если позиция перехода расположена в третьем временном интервале от начала 902a кадра SBR, присутствуют три огибающие 222a, 220, 222b, причем огибающая 222a включает в себя первые два временных интервала, огибающая перехода 220 включает в себя третий и четвертый временные интервалы, а огибающая 222b включает в себя оставшиеся временные интервалы, то есть от пятого и далее. Последний столбец в изображенной на Фиг.3 таблице для каждой возможной позиции перехода указывает соответствующую одну из двух или трех огибающих, которая имеет переход и/или позицию перехода, причем эта информация, очевидно, является избыточной и, следовательно, не обязательно должна быть указана в таблице. Однако информация в последнем столбце служит для определения, посредством более подробно описываемого ниже способа, границы между двумя шумовыми огибающими, в пределах которых блок 112 вычисления определяет значение, которое указывает величину шумовой части в пределах этих шумовых огибающих. Способ, с помощью которого посредством блока 112 вычисления определяется граница между этими шумовыми огибающими и/или областями сетки, известен на стороне декодера и выполняется таким же образом на стороне декодера, подобно изображенной на Фиг.3 таблице, также присутствующей на стороне декодера, а именно для синтаксического анализа, а также для деления сетки.
Согласно Фиг.2 блок 112 вычисления может определить количество огибающих и/или областей сетки в кадрах LD_TRAN из изображенной на Фиг.3 таблицы 2, причем контроллер (116) кадров SBR указывает для каждой из этих двух или трех огибающих частотное разрешение посредством соответствующего одноразрядного синтаксического элемента bs_freq_res [ch] для каждой огибающей (220). Контроллер 116 также передает синтаксические значения bs_freq_res [ch], которые задают частотное разрешение, на блок 108 (220) форматирования.
Таким образом, блок 112 вычисления вычисляет для всех кадров LD_TRAN значения энергии огибающей спектра, в качестве временных значений по длительности отдельных огибающих 222a, 220, 222b, а также блок вычисления в частотном разрешении объединяет различные количества подполос в зависимости от bs_freq_res соответствующей огибающей.
Вышеупомянутое описание, главным образом, относится к режиму работы кодера, который касается вычисления энергии сигналов для представления огибающих спектра во временной/частотной сетке, как определено посредством контроллера кадров SBR. Кроме того, изображенный на Фиг.1 кодер также передает для каждой области сетки шумовой сетки шумовое значение, которое указывает для этой области временной шумовой сетки величину шумовой части в высокочастотной части аудиосигнала. Как будет описано ниже, посредством использования этих шумовых значений на стороне декодера может быть выполнено лучшее восстановление высокочастотной части из декодированной низкочастотной части. Как может быть замечено на Фиг.2, количество bs_num_noise шумовых огибающих для кадров LD_TRAN всегда равно 2, тогда как количество для кадров FIXFIX с bs_num_env = 1 также может равняться 1.
Деление кадров LD_TRANS SBR на две шумовые огибающие, а также кадров FIXFIX на одну или две шумовые огибающие может быть выполнено, например, способом, подобным описанному в разделе 4.6.18.3.3 вышеупомянутого стандарта, на который следует сослаться в данном контексте. В частности, например, граница между двумя шумовыми огибающими устанавливается блоком 112 вычисления данных огибающих для кадров LD_TRAN, в случае присутствия огибающей 220a - в позицию границы огибающей, находящейся между огибающей 220a и огибающей 220 перехода, и в случае отсутствия огибающей 222 - в позицию границы огибающей, находящейся между огибающей 220 перехода и огибающей 222b.
Перед продолжением описания декодера, который может декодировать кодированный аудиосигнал на выходе 104 изображенного на Фиг.1 кодера 100, нужно уделить больше внимания взаимодействию между набором 110 фильтров для частотного разложения сигнала и блоком 112 вычисления данных огибающих. Посредством блока 250 на Фиг.4b в качестве примера изображены значения отдельных подполос, которые выдаются набором 110 фильтров для частотного разложения сигнала. На Фиг.4b предполагается, что ось t времени снова проходит слева направо в горизонтальном направлении. Столбец блоков в вертикальном направлении соответствует значениям подполос, полученным набором 110 фильтров анализа на определенном временном интервале, ось f предназначена для указания увеличения частоты в восходящем направлении. Фиг.4b в качестве примера изображает 16 последовательных временных интервалов, принадлежащих кадру 902 SBR. На Фиг.4b предполагается, что настоящий кадр является кадром LD_TRAN, а также, что позиция перехода является аналогичной иллюстративно изображенной на Фиг.4. Также на Фиг.4b иллюстрируется итоговая классификация сетки в пределах кадра 902 и/или итоговые огибающие. Фиг.4b также указывает обозначенные ссылочными номерами 252 и 254 шумовые огибающие. Посредством использования формирования суммы квадратов блок 112 вычисления данных огибающих определяет среднюю энергию сигналов в спектрально-временной сетке, как изображено на Фиг.4b посредством пунктирной линии 260. Блок 112 вычисления данных огибающих, в изображенном на Фиг.4b варианте осуществления, для огибающей 222a и огибающей 222b определяет только вдвое меньше значений спектральной энергии для представления огибающей спектра относительно огибающей 220 перехода. Однако, как также может быть замечено, значения спектральной энергии для представления огибающих спектра формируются только посредством значений подполос 250, расположенных в подполосах 1-32 с более высокой частотой, тогда как низкочастотные подполосы 33-64 игнорируются, поскольку низкочастотная часть закодирована, как известно, аудиокодером 106. В связи с этим нужно предусмотрительно отметить, что количество подполос в данном случае является лишь иллюстративным, как группирование подполос в отдельных огибающих для формирования групп из четырех или двух соответственно, как обозначено на Фиг.4b. В изображенном на Фиг.4b примере посредством блока 112 вычисления данных огибающих вычисляется сумма 32 значений спектральной энергии для представления огибающих спектра, точность квантования которых реализуется для кодирования, опять же в зависимости от bs_amp_res, как было описано выше. Кроме того, блок 112 вычисления данных огибающих определяет шумовое значение для шумовых огибающих 252 и 254 соответственно на основе значений подполос 1-32 в пределах соответствующей огибающей 252 или 254 соответственно.
Теперь, после описания кодера, далее будет приведено описание декодера в соответствии с вариантом осуществления настоящего изобретения, который подходит для декодирования кодированного аудиосигнала на выходе 103, причем упомянутое описание ниже также адресовано к преимуществам, вызванным классом LD_TRAN, описанным касательно скорости передачи и задержки.
Изображенный на Фиг.5 декодер, который в целом обозначен ссылочным номером 300, содержит информационный вход 302 для приема кодированного аудиосигнала, а также выход 304 для вывода декодированного аудиосигнала. Вход демультиплексора 306, который имеет три выхода, является смежным со входом 302. Аудиодекодер 308, набор 310 фильтров анализа, адаптер 312 подполос, набор 314 фильтров синтеза, а также блок 316 суммирования соединены в упомянутом порядке между первым из этих выходов и выходом 304. Выход аудиодекодера 308 также соединен с дополнительным входом блока 316 суммирования. Как будет описано ниже, соединение выхода набора 310 фильтров анализа с дополнительным входом набора 314 фильтров синтеза может быть обеспечено вместо блока 316 суммирования с его дополнительным входом. Однако выход набора 310 фильтров анализа также соединен со входом блока 318 вычисления значения усиления, выход которого соединен с дополнительным входом адаптера 312 подполос и который также имеет второй и третий входы, причем второй вход соединен с дополнительным выходом демультиплексора, а третий вход соединен через декодер 320 данных огибающих с третьим выходом мультиплексора 306.
Режим работы декодера 300 выглядит следующим образом. Демультиплексор 306 раскладывает входящий кодированный аудиосигнал на входе 302 посредством синтаксического анализа. В частности, демультиплексор 306 выдает кодированный сигнал, относящийся к низкочастотной части, сгенерированной аудиокодером 106, на аудиодекодер 308, сконфигурированный для получения из полученной информации декодированной версии низкочастотной части аудиосигнала, а также для его выдачи на свой выход. Следовательно, декодер 300 уже информирован о низкочастотной части звукового сигнала, которая предназначена для декодирования. Однако декодер 300 не получает непосредственную информацию о высокочастотной части. Вернее, выходной сигнал декодера 308 также служит в качестве предварительного сигнала высокочастотной части или, по меньшей мере, в качестве образца или основания для восстановления высокочастотной части аудиосигнала в декодере 300. Части 310, 312, 314, 318 и 320 от декодера 300 служат для использования этого образца для воспроизведения или восстановления заключительной высокочастотной части, следовательно, эта высокочастотная часть восстанавливается с объединением посредством блока 316 суммирования с декодированной низкочастотной частью, чтобы, в конечном счете, получить декодированный аудиосигнал 304. В данном случае для полноты должно быть отмечено, что декодированный низкочастотный сигнал от декодера 308 также может подвергаться дополнительной подготовительной обработке перед подачей в набор 310 фильтров анализа, однако это не изображено на Фиг.5.
В наборе 310 фильтров анализа декодированный низкочастотный сигнал снова подвергается спектральной дисперсии с постоянным временным и частотным разрешением, которое, по существу, соответствует разрешению набора фильтров анализа кодера 110. На изображенном на Фиг.4b примере набор 310 фильтров анализа выдает 32 значения подполос для каждого временного сегмента, например, упомянутые значения подполос, соответствующие 32 низкочастотным подполосам (33-64 на Фиг.4b). Возможно, что значения подполос, которые выдаются набором 310 фильтров для частотного разложения сигнала, повторно интерпретируются уже на выходе этого набора фильтров или же перед входом адаптера 312 подполос в качестве значения подполос высокочастотной части, то есть фактически копируются в высокочастотную часть. Однако также возможно, что в адаптере 312 подполос значения низкочастотных подполос, полученные из набора 310 фильтров анализа, изначально имеют добавленные значения высокочастотных подполос, при этом все или некоторые из значений низкочастотных подполос копируются в высокочастотную часть, например, значения подполос 33-64, полученные из набора 310 фильтров анализа, в подполосы 1-32.
Для выполнения согласования с огибающей спектра, которая закодирована в кодированный аудиосигнал на стороне кодера 104, демультиплексор 306 изначально передает ту часть кодированного аудиосигнала 302, которая относится к кодированию представления огибающей спектра, которое было сгенерировано посредством кодера 114 на стороне кодера, на декодер 320 данных огибающих, который, в свою очередь, передает декодированное представление этой огибающей спектра на блок 318 вычисления значения усиления. Кроме того, демультиплексор 306 выдает ту часть кодированного аудиосигнала, которая относится к синтаксическим элементам для деления сетки, которая была введена в кодированный аудиосигнал посредством контроллера 116 кадров SBR, на блок 318 вычисления значения усиления. Затем блок 318 вычисления значения усиления привязывает изображенные на Фиг.2 синтаксические элементы к кадрам аудиодекодера 308 способом, который синхронизирует их с контроллером 116 кадров SBR на стороне кодера. Для иллюстративного кадра, рассматриваемого на Фиг.4b, например, блок 318 вычисления значения усиления получает для каждой временной или частотной области пунктирной сетки 260 значение энергии от декодера 320 данных огибающих, причем значения энергии совместно представляют огибающую спектра.
В этой сетке 260 блок 318 вычисления значения усиления также вычисляет энергию в предварительно скопированной высокочастотной части для того, чтобы иметь возможность нормализовать восстановленную высокочастотную часть в этой сетке, а также взвесить ее соответствующими значениями энергии, которые получены от декодера 320 данных огибающих, посредством чего предварительно восстановленная высокочастотная часть спектрально согласовывается с огибающей спектра исходного аудиосигнала. В данном случае блок вычисления значения усиления учитывает шумовые значения, которые также были получены от декодера 320 данных огибающих для каждой шумовой огибающей, чтобы скорректировать взвешивающие значения для значений отдельных подполос в пределах этого шумового кадра. Следовательно, с выхода адаптера 312 подполос передаются подполосы, содержащие значения подполос, которые согласованы, при скорректированных взвешивающих значениях с огибающей спектра исходного сигнала в высокочастотной части. Набор 314 фильтров синтеза образует высокочастотную часть, восстанавливаемую таким образом во временной области, с использованием этих спектральных значений, после чего блок 316 суммирования объединяет эту высокочастотную часть с низкочастотной частью от аудиодекодера 308 в итоговый декодированный аудиосигнал на выходе 304. Как обозначено пунктирной линией на Фиг.5, альтернативно, набор 314 фильтров синтеза также возможно использовать для синтеза не только высокочастотных подполос, которые были согласованы посредством адаптера 312 подполос, но также возможно использовать низкочастотные подполосы в качестве непосредственно соответствующих выходу набора 310 фильтров анализа. Таким способом, результат набора 314 фильтров синтеза будет непосредственно соответствовать декодированному выходному сигналу, который затем может быть выдан на выход 304.
Вышеупомянутые варианты осуществления совместно предусматривают, что кадры SBR содержат область перекрытия. Другими словами, временное разделение огибающих согласовано с временным разделением кадров так, чтобы ни одна огибающая не перекрывала два соседних кадра, и для этой цели выполняется соответствующая передача временной сетки огибающей, в частности посредством классов LD_TRAN и FIXFIX. Однако в случаях возникновения переходов на краях блоков или кадров будут возникать проблемы. В этом случае для кодирования спектральных данных, включающих в себя значения спектральной энергии, значения огибающей спектра и значения частотного разрешения, требуется несоразмерно большое количество огибающих. Другими словами, требуется больше битов, чем требовалось бы позицией переходов. В принципе, могут быть известны два таких «неблагоприятных» случая, которые иллюстрированы на Фиг.6a и 6b.
Первая неблагоприятная ситуация возникает, когда переход, который установлен посредством блока 118 обнаружения переходов, будет расположен почти в самом начале кадра 404, как иллюстрировано на Фиг.6a. Фиг.6a изображает иллюстративный случай, в котором кадр 406 класса FIXFIX, который содержит единственную огибающую 408, которая проходит по всем 16 сегментам QMF, предшествует кадру 404, в начале которого посредством блока 118 обнаружения переходов был обнаружен переход, что является причиной того, почему кадр 404 посредством контроллера 116 кадров SBR был привязан к классу LD_TRAN, с позициями перехода, указывающими на третий сегмент QMF кадра 404 для того, чтобы кадр 404 был разделен на три огибающие 410, 412, и 414, причем огибающая 412 представляет собой огибающую перехода, а другие огибающие 410 и 414 окружают ее и расширяются до границ 416b и 416c кадра соответствующего кадра 404. Только во избежание путаницы следует указать, что Фиг.6a основана на использовании таблицы, отличной от таблицы, изображенной на Фиг.3.
Как обозначено стрелкой 418, которая указывает на первую огибающую 410 в кадре 404 LD_TRAN, передача значений спектральной энергии или значения частотного разрешения и шумового значения, в частности для соответствующей временной области, то есть сегментов QMF 0 и 1, фактически не оправдана, поскольку область очевидно не соответствует никакому переходу, но, с другой стороны, является кратковременной. Поэтому эта «затратная» огибающая выделена на Фиг.6а штрихованием.
Подобная проблема возникает при существовании перехода между двумя кадрами или же при его обнаружении посредством блока 118 обнаружения переходов. Этот случай представлен на Фиг.6b. Фиг.6b изображает два последовательных кадра 502 и 504, каждый из которых имеет длину в 16 сегментов QMF, переход, обнаруженный посредством блока 118 обнаружения переходов между двумя кадрами 502 и 504 или около границы кадра между этими двумя кадрами 502 и 504 SBR с тем, чтобы оба кадра 502 и 504 были привязаны посредством контроллера 116 кадров SBR к классу LD_TRAN, только с двумя огибающими 502a, 502b и 504a и 504b соответственно, так чтобы огибающая 502b перехода начального кадра 502 и огибающая перехода 504b последующего кадра 504 граничили с границей кадра SBR. Как может быть замечено, огибающая 502b перехода первого кадра 502 чрезвычайно коротка и занимает только один сегмент QMF. Даже для присутствия перехода это представляет несоразмерно большое количество затрат на кодирование огибающей, поскольку спектральные данные повторно кодируются для следующей огибающей 504b перехода, как было описано выше. Поэтому две огибающие 502b и 504b перехода выделяются штрихованием.
Оба вышеописанных со ссылкой на Фиг.6a и 6b случая имеют общую часть, в которой каждый раз требуются огибающие (заштрихованные области), которые описывают относительно короткий период и, соответственно, требуют слишком большого или относительно большого количества битов. Эти огибающие содержат набор спектральных данных, который также может описать полный кадр. Однако точное временное разделение необходимо для заключения энергии вокруг переходов, поскольку в противном случае возникает опережающее эхо, как было описано во вводной части к описанию настоящей заявки.
В связи с этим ниже будет дано описание альтернативного режима работы кодера и/или декодера, посредством которого разрешаются вышеупомянутые проблемы, изображенные на Фиг.6a и 6b, или наборы данных, которые описывают слишком короткий период времени, не требуется передавать на стороне кодера.
Например, при рассмотрении изображенного на Фиг.6a случая, в котором блок 118 обнаружения переходов указывает на присутствие перехода в начале кадра 404, контроллер 116 кадров SBR по-прежнему привязывает в описанном варианте осуществления класс LD_TRAN, содержащий аналогичный индикатор позиции перехода, к этому кадру, и никакие масштабные коэффициенты и/или значения спектральной энергии, никакая шумовая часть, сгенерированная блоком 112 вычисления данных огибающих и кодером 114 данных огибающих для огибающей 410, а также никакой индикатор частотного разрешения не передается на блок 108 форматирования для этой огибающей 410 посредством контроллера 116 кадров SBR, который обозначен на Фиг.7a, который соответствует ситуации, изображенной на Фиг.6a, где линия огибающей 410 изображена пунктирной линией, а соответствующие сегменты QMF заштрихованы для указания того, что поток данных, выдаваемый блоком 108 форматирования на выход 104, фактически не содержит данных для восстановления высокочастотной части. На стороне декодера этот «информационный пробел» 418 заполняется всеми необходимыми данными, такими как масштабные коэффициенты, шумовая часть и частотное разрешение, полученными из соответствующих данных предшествующей огибающей 408. Более определенно, как будет более подробно со ссылкой на Фиг.9 разъяснено ниже, декодер 320 данных огибающих, на основе индикатора позиции перехода для кадра 404, делает вывод, что рассматриваемый случай является случаем, соответствующим изображенному на Фиг.6a, с тем, чтобы не ожидать данных огибающей для первой огибающей в кадре 404. Для обозначения этого альтернативного режима работы Фиг.5 посредством пунктирной стрелки указывает, что в режиме работы или при синтаксическом анализе декодер 320 данных огибающих также зависит от синтаксических элементов, которые выделены на Фиг.2 жирным шрифтом, в частности, в этом случае от синтаксического элемента bs_transient_position. В данный момент декодер 320 данных огибающих заполняет информационный пробел 418, в который из предшествующей огибающей 408 он копирует соответствующие данные для огибающей 410. Таким способом набор 408 данных огибающей фактически переходит из предыдущего кадра 406 в первые (заштрихованные) сегменты QMF второго кадра 404. Следовательно, в декодере 300 повторно восстанавливается временная сетка недостающей огибающей 410, а также копируются соответствующие наборы данных. Следовательно, временная сетка, изображенная на Фиг.7a, снова соответствует сетке кадра 404, изображенной на Фиг.6a.
В соответствии с Фиг.7a подход предоставляет дополнительное преимущество перед подходом, описанным выше со ссылкой на Фиг.3, поскольку таким способом возможно всегда точно передать начало перехода в сегменте QMF. В результате переходы, обнаруженные посредством блока 118 обнаружения переходов, могут быть изображены более точно. Для иллюстрации этого Фиг.8 изображает случай, в котором, в соответствии с Фиг.3, кадр 602 FIXFIX, включающий в себя огибающую 604, передается посредством кадра 606 LD_TRAN, включающего две огибающие, а именно огибающую 608 перехода и итоговую огибающую 610, и индикатор позиции перехода, указывающий на второй сегмент QMF. Как может быть замечено при рассмотрении Фиг.8, огибающая 608 перехода, включающая в себя первый сегмент QMF кадра 606, начинается таким же образом, как и относительно случая с индикатором позиции перехода, указывающим на первый сегмент QMF, как может быть замечено при рассмотрении Фиг.3. Причина этого подхода заключается в том, что для меньшей целесообразности эффективности кодирования обеспечивается третья огибающая в начале кадра 606 в смещении индикатора позиции перехода от TRANS-POS=0 до TRANS-POS=1, поскольку для этого данные огибающей фактически должны быть переданы повторно. В соответствии с изображенным на Фиг.7a подходом это не представляет проблемы, поскольку очевидно, что никакие данные огибающей не должны передаваться для начала огибающей 410. Поэтому расположение огибающей перехода в единицах сегментов QMF, в зависимости от индикатора позиции перехода в классах LD_TRAN, возможно в эффективном порядке в соответствии с изображенным на Фиг.7а подходом, и для этой цели на изображенной на Фиг.9 таблице представлен возможный вариант осуществления. Таблица, изображенная на Фиг.9, представляет возможную таблицу, которая может быть использована в изображенном на Фиг.1 кодере, а также в изображенном на Фиг.5 декодере в качестве альтернативы таблицы, изображенной на Фиг.3, применительно к альтернативному подходу, изображенному на Фиг.7a. Таблица включает в себя семь столбцов, причем категории первых пяти соответствуют первым пяти столбцам, изображенным на Фиг.3, то есть с первого по четвертый столбцы отображают индикатор позиции перехода, и для этого индикатора позиции перехода перечисляется количество огибающих, обеспеченных в кадре, позиция первой границы огибающей, позиция второй границы огибающей и индекс перехода, указывающий на огибающую, в пределах которой расположен переход. Шестой столбец указывает индикатор позиции перехода, для которого обеспечен информационный пробел 418, в соответствии Фиг.7a. Как было указано, это является случаем, касающимся индикаторов позиции перехода, расположенных между 1 и 5 (включительно в каждом случае). Для оставшихся индикаторов позиции перехода в этот столбец был введен 0. Последний столбец будет рассмотрен ниже со ссылкой на Фиг.7b.
При рассмотрении случая, изображенного на Фиг.6b, в соответствии с подходом, который обеспечен в качестве альтернативы или в дополнение к модификации, в соответствии с Фиг.7a, неблагоприятное деление области перехода на огибающие 502b и 504b перехода предотвращается, поскольку фактически используется огибающая 502, которая проходит через сегменты QMF огибающих 502b и 504b перехода, и масштабные коэффициенты, которые получены через эту огибающую 402, передаются наряду с шумовой частью и частотным разрешением, но только для огибающей 502b перехода кадра 502, и попросту используются на стороне декодера также для сегментов QMF в начале следующего кадра, как показано на Фиг.7b, которая в противном случае соответствует Фиг.6b, ввиду одной заштрихованной огибающей 502b, индикатора огибающей 504b перехода посредством пунктирной линии и заштрихованного сегмента QMF в начале второго кадра 504.
При более тщательном рассмотрении, в случае возникновения перехода между кадрами 502 и 504, в соответствии с Фиг.7b, кодер 100 будет действовать следующим образом. Блок 118 обнаружения переходов указывает на возникновение перехода. Вслед за этим контроллер 116 кадров SBR выбирает для кадра 502, как в случае с Фиг.6b, класс LD_TRAN, содержащий индикатор позиции перехода, указывающий на последний сегмент QMF. Однако из-за того, что индикатор позиции перехода указывает на конец кадра 502, блок 112 вычисления данных огибающих из выходных значений QMF формирует масштабные коэффициенты или значения спектральной энергии не только по сегменту QMF огибающей 502b перехода, но и по всем сегментам QMF виртуальной огибающей 702, которая дополнительно содержит три сегмента QMF, следующих сразу после следующего кадра 504. В результате задержка не связывается с выходом 104 кодера 100, поскольку аудиокодер 106n может передать кадр 504 на блок 108 форматирования только в конце кадра. Другими словами, блок 112 вычисления данных огибающих формирует масштабные коэффициенты посредством усреднения значений QMF сегментов QMF виртуальной огибающей 702 с предварительно определенным частотным разрешением, причем получающиеся масштабные коэффициенты кодируются посредством кодера 114 огибающих для огибающей 502b перехода первого кадра 502 и выдаются на блок 108 форматирования, контроллер 116 кадров SBR передает соответствующее значение частотного разрешения для этой огибающей 502b перехода. Независимо от решения относительно класса кадра 502 контроллер 116 кадров SBR принимает решение о принадлежности к классу кадра 504. Например, в данном случае ни один переход теперь не располагается вблизи кадра 504 или же в пределах кадра 504 для того, чтобы контроллер 116 кадров SBR выбрал в этом изображенном на Фиг.7b иллюстративном случае класс FIXFIX для кадра 504 только лишь с одной огибающей 504a'. Контроллер 116 кадров SBR выдает соответствующее решение на блок 108 форматирования, а также на блок 112 вычисления данных огибающих. Однако решение интерпретируется способом, отличным от обычного. Блок 112 вычисления данных огибающих «помнит», что виртуальная огибающая 702 продолжается в текущий кадр 504, и поэтому сокращает соседнюю огибающую 504a' кадра 504 на соответствующее количество сегментов QMF для того, чтобы определить соответствующие значения масштабного коэффициента только по этому меньшему количеству сегментов QMF, и выдает результат на кодер 114 данных огибающих. Следовательно, информационный пробел 704 возникает в потоке данных на выходе 104 в первых трех сегментах QMF. Другими словами, в соответствии с подходом, изображенным на Фиг.7b, полный набор данных первоначально вычисляется на стороне кодера для огибающей 702, для чего также используются данные из следующих сегментов QMF, с точки зрения кадра 502, в начале кадра 504, посредством чего огибающая спектра вычисляется в виртуальной огибающей. Затем этот набор данных передается на декодер в качестве принадлежащего огибающей 502b.
На стороне декодера декодер 320 данных огибающих формирует масштабные коэффициенты для виртуальной огибающей 702 из его входных данных, в результате чего блок 318 вычисления значений усиления обладает всей необходимой информацией для последнего сегмента QMF кадра 502 или последней огибающей 502b, для выполнения восстановления в пределах этого кадра. Декодер 320 данных огибающих также получает масштабные коэффициенты для огибающей(их) следующего кадра 504 и передает их на блок 318 вычисления значений усиления. На основе того, что ввод позиции перехода предшествующего кадра LD_TRAN указывает на конец этого кадра 502, упомянутый блок 318 вычисления значений усиления информирован о том, что данные огибающей, которые были переданы для итоговой огибающей 502b перехода этого кадра 502, также относятся к сегментам QMF в начале кадра 504, данные которой принадлежат виртуальной огибающей 702, что является причиной ввода или установления конкретной огибающей 504b' для этих сегментов QMF, а также принимает для этой установленной огибающей 504b' масштабные коэффициенты, шумовую часть и частотное разрешение, полученные блоком 112 вычисления данных огибающих из соответствующих данных огибающей предшествующей огибающей 502b, для того, чтобы вычислить для этой огибающей 504b' значения спектрального взвешивания для восстановления в модуле 312. Затем блок 318 вычисления значений усиления применяет полученные от декодера 320 данных огибающих данные огибающей для фактической следующей огибающей 504a' для следующих за виртуальной огибающей 702 сегментов QMF, а также передает значения усиления и/или взвешивания, которые были вычислены соответственно на адаптере 312 подполос для высокочастотного восстановления. Другими словами, на стороне декодера набор данных для виртуальной огибающей 702 первоначально применяется только к последнему сегменту(ам) QMF текущего кадра 502, в связи с чем текущий кадр 502 восстанавливается без задержек. Набор данных второго следующего кадра 504 включает в себя информационный пробел 704, то есть переданные новые данные огибающей, действительные только со следующего сегмента QMF, который является третьим сегментом QMF в иллюстративном примере, изображенном на Фиг.7b. Следовательно, в изображенном на Фиг.7b случае передается только одна отдельная огибающая. Как и в первом случае, недостающая огибающая 504b' вновь восстанавливается и заполняется данными предшествующей огибающей 502b. Следовательно, информационный пробел 704 заполняется, и кадр 504 может быть восстановлен.
В изображенном не Фиг.7b иллюстративном случае второй кадр 504 сигнализируется с классом FIXFIX, причем огибающая(ие) фактически охватывает(ют) весь кадр. Однако, как было описано выше, из-за предшествующего кадра 502 или из-за его привязки к классу LD_TRAN, содержащей высокий индикатор позиции перехода, огибающая 504a' в декодере ограничена, и проверка правильности набора данных не начинается, в единицах времени, до нескольких сегментов QMF позже. На данном этапе Фиг.7b обращается к случаю, в котором переходная скорость является малой. Однако если переходы присутствуют в нескольких последовательных кадрах, на краях в каждом случае, то позиция перехода будет передана с классом LDN-TRAN в каждом случае и будет соответственно продолжаться в следующий кадр, как было описано выше со ссылкой на Фиг.7b. Первая огибающая, соответственно, сокращается в размере или ограничивается в начале, в соответствии с продолжением, как было описано в качестве примера выше, применительно к огибающей 504a', со ссылкой на класс FIXFIX.
Как было описано выше, кодерам и декодерам известно насколько далеко продолжается огибающая перехода в конце кадра LD_TRAN следующего кадра, поэтому возможное согласование этого также показано в изображенном на Фиг.9 варианте осуществления или в изображенной там таблице, которая, следовательно, представляет пример, комбинирующий измененные подходы, в соответствии с Фиг.7a и 7b. В этом варианте осуществления таблица 9 используется кодером и декодером. Для повторной сигнализации временной сетки огибающих используется только индекс перехода bs_transient_position. В случае позиций перехода в начале кадра передача огибающей предотвращается (Фиг.7a), как было описано выше, и может быть замечено из второго, но последнего столбца изображенной на Фиг.9 таблицы. В связи с этим также в изображенном на Фиг.9 последнем столбце установлен коэффициент расширения или количество сегментов QMF, после которых огибающая перехода в конце кадра должна продолжаться в последующий кадр (ср. Фиг.7b). Разница в сигнализации, в соответствии с Фиг.9, относительно первого случая (Фиг.7a) и второго случая (Фиг.7b) состоит в моменте времени сигнализации. В первом случае сигнализация происходит в текущем кадре, то есть нет никакой зависимости от предшествующего кадра. Только позиция перехода является принципиально важной. Случаи, в которых первая огибающая кадра не передается, могут наблюдаться на стороне декодера из изображенной на Фиг.9 таблицы, включающей в себя записи для всех позиций перехода.
Однако во втором случае решение принимается в предшествующем кадре и переносится в следующий. При использовании последнего столбца изображенной на Фиг.9 таблицы коэффициент расширения определяет позицию перехода предшествующего кадра, в котором огибающая перехода предшествующего кадра должна быть продолжена в следующий кадр, а также в какой степени. Смысл этого в том, что, если в конце текущего кадра установлена позиция перехода, в соответствии с Фиг.9, в последнем или втором, но последнем сегменте QMF, то коэффициент расширения, указанный в последнем столбце на Фиг.9, будет сохранен для следующего кадра, посредством которого устанавливается или определяется временная сетка для следующего кадра.
Перед обращением к нижеследующему варианту осуществления настоящего изобретения должно быть упомянуто, что подобно подходу к формированию данных огибающей для виртуальной огибающей, в соответствии с Фиг.7b, формирование данных огибающей для огибающей 408, в изображенном на Фиг.7 примере, также может быть определено по расширенному периоду времени, то есть при помощи двух сегментов QMF «сохраненной» огибающей 410 для того, чтобы выходные значения QMF набора 110 фильтров анализа для этих сегментов QMF также были включены в соответствующие данные огибающей 408. Однако также возможен альтернативный подход, в соответствии с которым данные огибающей для огибающей 408 определяются только по связанным сегментам QMF.
Предшествующие варианты осуществления предотвращали большую задержку при использовании класса LD-TRAN. Далее представлено описание варианта осуществления, в соответствии с которым это достигается посредством классификации сетки или огибающей, в которой огибающие также могут продолжаться за границы кадра. В частности, следует подразумевать, что изображенный на Фиг.1 кодер формирует на своем выходе 104 поток данных, в котором кадры классифицированы на четыре класса кадра, то есть FIXFIX, FIXVAR, VARFIX и VARVAR, как было установлено в вышеупомянутом стандарте MPEG4-SBR.
Как было описано во вводной части к описанию настоящей заявки, контроллер 116 кадров SBR также классифицирует последовательность кадров на огибающие, которые также могут продолжаться через границы кадра. Для этого обеспечены синтаксические элементы bs_num_rel_#, которые, в частности, определяют для классов FIXVAR, VARFIX и VARVAR кадра позицию относительно границы начального или конечного кадра, в которой начинаются первые огибающие и/или заканчивается последняя огибающая этого кадра. Блок 112 вычисления данных огибающих вычисляет спектральные значения или масштабные коэффициенты для сетки, определенной посредством огибающих с частотным разрешением, определенным посредством контроллера 116 кадров SBR. Вследствие этого границы огибающей могут быть произвольно расширены для контроллера 116 кадров SBR по кадрам и области перекрытия посредством этих классов. Изображенный на Фиг.1 кодер может выполнить сигнализацию с четырьмя различными классами таким способом, чтобы максимальная область перекрытия от результатов кадра, которая соответствует задержке базового кодера 106, и, следовательно, также за период времени, который может быть буферизован, не вызывая дополнительную задержку. Следовательно, это гарантирует постоянное присутствие достаточных «дополнительных» значений, доступных для блока 112 вычисления данных огибающих для предварительного вычисления и передачи данных огибающей, даже если большинство этих данных будет действительны только в дальнейших кадрах.
Однако в соответствии с настоящим вариантом осуществления изображенный на Фиг.5 декодер теперь обрабатывает такой поток данных с четырьмя классами SBR способом, приводящим к малой задержке с одновременным уплотнением спектральных данных. Это достигается посредством информационных пробелов в битовом потоке. С этой целью сначала надо сослаться на Фиг.10, которая изображает два кадра, включающие в себя их классификацию в качестве результата, в соответствии с вариантом осуществления, от изображенного на Фиг.1 кодера, причем первый кадр в качестве примера в этом случае является кадром FIXVAR, а второй кадр является кадром VARFIX. В иллюстративном случае, изображенном на Фиг.10, два последовательных кадра 802 и 804 включают в себя две или одну огибающие, а именно огибающие 802a и 802b и/или огибающую 804a соответственно, причем вторая огибающая FIXVAR кадра 802 продолжается в кадр 804 на три сегмента QMF, а начало огибающей кадра 804a кадра 804 VARFIX располагается только в сегменте 3 QFM. Что касается каждой огибающей 802a, 802b и 804a, поток данных на выходе 104 содержит значения масштабного коэффициента, определенные посредством блока 112 вычисления данных огибающих при помощи усреднения выходного сигнала QMF набора 110 фильтров анализа по соответствующим сегментам QMF. Для определения данных огибающей для огибающей 802b блок 112 вычисления обращается к «будущим» данным набора 110 фильтров анализа, как было упомянуто выше, причем для этой цели доступна виртуальная область перекрытия, как обозначено штриховкой на Фиг.10.
1
1
Для восстановления высокочастотной части для огибающей 802b декодер должен ждать до тех пор, пока он не примет восстановленную низкочастотную часть от набора 310 фильтров анализа, что вызывает задержку размера кадра, как было упомянуто выше. Эта задержка может быть предотвращена, если изображенный на Фиг.5 декодер работает следующим образом. Декодер 320 данных огибающих выдает данные огибающей и, в частности, масштабные коэффициенты для огибающих 802a, 802b и 804a на блок 318 вычисления значений усиления. Однако последний использует данные огибающей для огибающей 802b, которая продолжается в следующий кадр 804, однако изначально только на первую часть сегментов QMF, по которой продолжается эта огибающая 802b, а именно на часть, идущую до границы кадра SBR, находящуюся между двумя кадрами 802 и 804. Следовательно, блок 318 вычисления значений усиления повторно интерпретирует деление огибающей по отношению к делению, обеспечиваемому изображенным на Фиг.1 кодером при кодировании, и использует данные огибающей изначально только для той части огибающей 802b перекрытия, которая расположена в пределах текущего кадра 802. Эта часть иллюстрирована на Фиг.11 в виде огибающей 802b, которая соответствует ситуации, изображенной на Фиг.10. Таким образом, блок 318 вычисления значений усиления и адаптер 312 подполос может восстановить высокочастотную часть для этой огибающей 802b без какой-либо задержки.
1
2
Из-за этой повторной интерпретации поток данных на входе 302 естественно испытывает недостаток в данных огибающей для оставшейся части огибающей 802b перекрытия. Блок 318 вычисления значений усиления разрешает эту проблему способом, подобным варианту осуществления, изображенному на Фиг.7b, то есть использует данные огибающей, полученные из него для огибающей 802b для того, чтобы на основе этого восстановить, наряду с адаптером 312 подполос, высокочастотную часть в огибающей 802b, продолжающейся по первым сегментам QMF второго кадра 804, которые соответствуют оставшейся части огибающей 802b перекрытия. Таким образом заполняется информационный пробел 806.
После предыдущих вариантов осуществления, в которых проблему перехода разрешали разными способами, которые эффективны с точки зрения скорости передачи, ниже приведено описание варианта осуществления, в соответствии с которым измененный класс FIXFIX, в качестве примера класса с согласованием границ кадра и сетки, конфигурируется в его синтаксисе таким способом, чтобы он содержал флаг или индикатор отсутствия перехода, посредством которого возможно сократить размер кадра, терпя убытки в битовой скорости передачи, но в то же самое время сократить количество потерь, поскольку стационарные части информации и/или аудиосигнала могут быть закодированы более эффективным способом в отношении скорости передачи. В данном случае этот вариант осуществления может быть использован как дополнительно в вышеописанных вариантах осуществления, так и независимо от других вариантов осуществления, применительно к подразделению на классы кадра с использованием классов FIXFIX, FIXVAR, VARFIX и VARVAR, как было описано во вводной части к описанию настоящей заявки, при этом изменяя класс FIXFIX, как будет описано ниже. В частности, в соответствии с этим вариантом осуществления, описание синтаксиса класса FIXFIX, как было описано выше со ссылкой на Фиг.2, дополняется посредством дополнительного синтаксического элемента, такого как одноразрядный флаг, устанавливаемый на стороне кодера посредством контроллера 116 кадров SBR в зависимости от позиции переходов, обнаруженных посредством блока 118 обнаружения переходов, для указания того, является ли информационный сигнал стационарным в области соответствующего кадра FIXFIX. В первом случае, например с установлением флага отсутствия перехода, когда кадр FIXFIX содержит несколько огибающих, сигнализация данных огибающей или же передача значений энергии шумов и масштабных коэффициентов, а также значений частотного разрешения не выполняется в кодированном потоке 104 данных для огибающей соответствующего кадра FIXFIX или для первой огибающей по времени в этом кадре FIXFIX, при этом эта недостающая информация приобретается на стороне декодера из соответствующих данных огибающей для той огибающей предшествующего кадра, который является непосредственно предшествующим по времени, а также возможно, чтобы упомянутый кадр являлся, например, кадром FIXFIX или любым другим кадром, причем упомянутые данные огибающей содержатся в кодированном информационном сигнале. Таким образом, сокращение скорости передачи информации может быть достигнуто для варианта кодирования SBR с меньшей задержкой, или же комбинация повышения скорости передачи информации такого варианта с малой задержкой может быть достигнута благодаря повышенной или удвоенной скорости повторения. В комбинации с вышеописанными вариантами осуществления такая сигнализация обеспечивает выполнение с сокращением скорости передачи информации, поскольку не только сигналы перехода могут быть переданы и/или закодированы способом с сокращенной скоростью передачи информации, но также и стационарные сигналы. Касательно вывода или получения недостающей информации данных огибающей должна быть сделана ссылка на описание предыдущих вариантов осуществления, в частности на Фиг.12 и 7b.
Нижеследующее должно быть рассмотрено со ссылкой на иллюстрации, изображенные на Фиг.6a-11. В ряде случаев таблицы, отличающиеся от таблицы, изображенной на Фиг.3, используются в качестве основы для этих фигур. Как и следовало ожидать, такие различия также могут применяться к определению шумовых огибающих. Например, в классах LD_TRAN шумовые огибающие всегда могут проходить по всему кадру. В изображенном на Фиг.7a и 7b случае шумовые значения предшествующего кадра или предшествующей огибающей используются для восстановления высокочастотной части на стороне декодера, например, для нескольких начальных сегментов QMF, которые в этом случае, к примеру, представлены в количестве 2 или 3, а текущая шумовая огибающая соответственно сокращается.
1
1
2
1
1
Кроме того, следует отметить, относительно изображенного на Фиг.7b и 11 подхода, что существуют многочисленные возможности передачи данных огибающей или масштабных коэффициентов для виртуальных огибающих 702 и 802b. Как было описано, масштабные коэффициенты определяются для виртуальной огибающей посредством сегментов QMF, количество которых в изображенном на Фиг.7b примере равно 4, а в примере, изображенном на Фиг.11, равно 6, определяемых посредством усреднения, как было описано выше. В потоке данных эти масштабные коэффициенты, определенные посредством соответствующих сегментов QMF для огибающей 502b перехода или огибающей 502b, могут быть переданы. В этом случае блок 318 вычисления может учесть на стороне декодера то, что масштабные коэффициенты или значения спектральной энергии были определены, однако, по всей области как четыре и шесть сегментов QMF соответственно, и, следовательно, разделить величину этих значений на две частичные огибающие 502b и 504b' соответственно и 802b и 802b соответственно, в отношении, которое соответствует, например, отношению между сегментами QMF, связанными с первыми кадрами 502 и 802 соответственно и вторыми кадрами 504 и 804 соответственно, для того, чтобы использовать разделенные таким образом части масштабных коэффициентов, переданных для управления спектральным формированием в адаптере 312 подполос. Однако также возможно, что кодер непосредственно передает такие масштабные коэффициенты, которые могут изначально быть непосредственно применены на стороне декодера для первых частичных огибающих 502b и 802b соответственно, а также которые соответственно изменены в масштабе для следующих частичных огибающих 504b' или 804b' или 802b2 соответственно в зависимости от перекрытия виртуальных огибающих 702 и 802b соответственно со вторыми кадрами 504 и 804 соответственно. Способ, с помощью которого энергия делится между двумя частичными огибающими, может быть произвольно определен между кодером и декодером. Другими словами, кодер может непосредственно передать такие масштабные коэффициенты, которые могут быть непосредственно применены на стороне декодера для первых частичных огибающих 502b и 502b соответственно, в связи с тем, что масштабные коэффициенты были усреднены только по этим частичным огибающим и/или соответствующим сегментам QMF. Этот случай может быть иллюстрирован в качестве примера следующим образом. В случае более или менее перекрывающейся огибающей, где первая часть состоит из двух тактов или сегментов QMF, а вторая часть состоит из трех тактов, что случается на стороне кодера, только первая часть вычисляется корректным образом, и/или значения энергии усредняются только в этой части, и выводятся соответствующие масштабные коэффициенты. Таким образом данные огибающей в точности согласуются с соответствующей временной частью в первой части. Однако масштабные коэффициенты для второй части получают из первой части и масштабируются в соответствии с размерными пропорциями, по сравнению с первой частью, то есть в данном случае 3/2 временных масштабных коэффициентов первой части. Этот случай должен быть использован для указания того, что вышеупомянутый термин «энергия» использовался синонимично с масштабным коэффициентом, причем энергия или масштабный коэффициент получается из суммы всех значений энергии полос SBR в течение периода времени огибающей. В только что иллюстрированном примере вспомогательные масштабные коэффициенты в каждом случае описывают сумму энергий двух тактов в первой части более или менее перекрывающейся огибающей для соответствующей полосы SBR.
Кроме того, в вышеупомянутых вариантах осуществления также может быть обеспечена постоянная передача огибающих спектра или значений масштабного коэффициента посредством способа, который нормализует количество сегментов QMF, которые используются для определения соответствующего значения, такого как среднеквадратичная энергия, то есть энергия, нормированная к количеству участвующих сегментов QMF и количествоу полос спектра QMF, в пределах каждой области частотно-временной сетки. В данном случае операции, которые были только что описаны, для деления, на стороне кодера или декодера, масштабных коэффициентов для виртуальных огибающих на соответствующие подпорции не являются необходимыми.
Относительно приведенного выше описания также следует отметить несколько других моментов. Несмотря на то, что описание было изложено, например, на Фиг.1, в отношении того, что спектральная дисперсия выполняется посредством набора 110 фильтров анализа с фиксированным временным разрешением, которое затем согласовывается, посредством блока 112 вычисления данных огибающих, с частотно-временной сеткой, установленной посредством контроллера 116, также возможны альтернативные подходы, в соответствии с которыми, относительно частотно-временного разрешения, согласованного со спецификацией, заданной посредством контроллера 316, огибающая спектра в этом разрешении вычисляется непосредственно без двух этапов, как изображено на Фиг.1. Изображенный на Фиг.1 кодер 114 данных огибающих может отсутствовать. С другой стороны, тип кодирования энергий сигналов, представляющих огибающие спектра, может быть реализован, например, посредством дифференциального кодирования, причем дифференциальное кодирование может быть выполнено во временном или частотном направлении или в гибридной форме, например в ориентированной на кадр или ориентированной на огибающую в частотном и/или временном направлении(ях). Со ссылкой на Фиг.5 следует отметить, что порядок, в котором блок вычисления значений усиления выполняет нормализацию с энергиями сигналов, содержащимися в высокочастотной части, которая была предварительно восстановлена, а также взвешивание с энергиями сигналов, переданными посредством кодера для сигнализации огибающих спектра, является несоответствующим. Само собой это также относится к коррекции для учета значений шумовой части для каждой шумовой огибающей. Также следует отметить, что настоящее изобретение не ограничено спектральной дисперсией посредством наборов фильтров. Предпочтительно, также может быть использовано преобразование Фурье и/или обратное преобразование Фурье или подобные временные/частотные преобразования, причем, например, соответствующее окно преобразования смещается на количество аудиозначений, которое должно соответствовать временному сегменту. Также следует отметить, что могут существовать условия, при которых кодер не выполняет определение и кодирование огибающей спектра и введение ее в кодированный аудиосигнал по отношению ко всем подполосам в высокочастотной части во временной/частотной сетке. Предпочтительно кодер также может определить такие части высокочастотной части, для которых нецелесообразно выполнять восстановление на стороне декодера. В этом случае кодер передает декодеру, например, части высокочастотной части и/или области подполос в высокочастотной части, для которой должно быть выполнено восстановление. Кроме того, также возможны различные модификации, касающиеся установления сетки в частотном направлении. Например, может быть обеспечено, что не выполняется установка частотной сетки, причем в этом случае синтаксические элементы bs_freq_res могут отсутствовать и, например, всегда будет использоваться полное разрешение. Кроме того, возможность настройки ширины шага квантования энергий сигналов для представления огибающих спектра может быть опущена, то есть синтаксический элемент bs_amp_res может отсутствовать. Кроме того, различная субдискретизация может быть выполнена в блоке субдискретизации, изображенном на Фиг.1, вместо субдискретизации посредством любого аудиозначения, так, что высокочастотная и низкочастотная части должны иметь различные спектральные протяженности. Кроме того, табличная зависимость деления сетки кадров LD_TRAN на bs_transient_position является только иллюстративной, и аналитическая зависимость протяженностей огибающей и частотного разрешения также является возможной.
Во всяком случае, вышеописанные примеры кодера и декодера позволяют также использовать технологию SBR для схемы кодирования AAC-LD вышеупомянутого стандарта. Большая задержка AAC + SBR, которая конфликтует с целью AAC-LD с малой алгоритмической задержкой, равной приблизительно 20 миллисекундам на частоте 48 кГц, и размером блока 480, может быть преодолена посредством использования вышеупомянутых вариантов осуществления. В данном случае недостаток связи AAC-LD с предшествующим определенным в стандарте SBR, что обусловлено более короткой длиной кадра AAC-LD 480 или 512, по сравнению с 960 или 1024 для AAC-LD, длина кадра которого обуславливает скорость передачи данных для неизменного элемента SBR, как определено в стандарте, удвоенную от скорости НЕ AAC. Следовательно, описанные выше варианты осуществления позволяют сократить задержку AAC-LD + SBR и одновременно сократить скорость передачи данных для дополнительной информации.
В частности, в вышеописанных вариантах осуществления задержки для варианта LD модуля SBR, область перекрытия кадров SBR была удалена для сокращения системы. Следовательно, обходятся без возможности размещения границ огибающей и/или границ сетки независимо от границ кадра SBR. Однако затем посредством нового класса LD_TRAN кадра принимается обработка переходов так, что вышеупомянутые варианты осуществления также требуют только один бит для сигнализации, чтобы указать, является ли текущий кадр SBR кадром класса FIXFIX или кадром класса LD_TRAN.
В вышеупомянутых вариантах осуществления класс LD_TRAN был определен так, что он имеет границы огибающей, таким способом, который всегда синхронизирован с кадром SBR на краях и переменных границах в пределах кадра. Внутреннее распределение было определено посредством позиции переходов в пределах сетки сегментов QMF или сетки временных интервалов. Малая огибающая, которая заключает энергию перехода, была распределена вокруг позиции перехода. Оставшиеся области были заполнены огибающими вперед и назад до краев. Для этого изображенная на Фиг.3 таблица использовалась посредством блока 312 вычисления данных огибающих на стороне кодера, а также посредством блока 318 вычисления значений усиления на стороне декодера, где предварительно определенная сетка огибающей сохранена, в соответствии с позицией перехода; разумеется, изображенная на Фиг.3 таблица является лишь иллюстративной, и, в отдельных случаях, в зависимости от приложения, могут быть сделаны изменения.
В частности, класс LD_TRAN вышеупомянутых вариантов осуществления предоставляет возможность компактной сигнализации и согласования требований битов для среды LD с двойной скоростью передачи кадров, которая также требует двойную скорость передачи данных для информации сетки. Следовательно, вышеупомянутые варианты осуществления устраняют недостатки предшествующей сигнализации огибающей SBR, в соответствии со стандартом, причем эти недостатки для классов VARVAR, VARFIX и FIXVAR заключались в том, что требования битов для сигнализации синтаксических элементов и/или дополнительной информации были высокими, и в том, что для класса FIXFIX точное временное согласование огибающих для переходов в пределах блока было невозможно. В отличие от этого, вышеупомянутые варианты осуществления позволяют проведение оптимизации задержки на стороне декодера, в частности оптимизации задержки посредством шести сегментов QMF или 384 аудиовыборок в исходной области аудиосигнала, которая примерно соответствует 8 миллисекундам на частоте выборки аудиосигнала в 48 кГц. Кроме того, устранение классов кадра VARVAR, VARFIX и FIXVAR позволяет сберечь скорость передачи данных для передачи огибающих спектра, что приводит к возможности более высоких скоростей передачи данных для низкочастотного кодирования и/или ядра и, следовательно, улучшает качество аудио. По сути, вышеупомянутые варианты осуществления обеспечивают переходы с огибающими в пределах кадров класса LD_TRAN, которые являются синхронными с границами кадра SBR.
В частности, следует отметить, что в отличие от предшествующей иллюстративной таблицы, изображенной на Фиг.3, длина огибающей перехода также может содержать больше 2 сегментов QMF, причем длина огибающей перехода предпочтительно меньше, чем 1/3 длины кадра.
Относительно вышеприведенного описания также следует отметить, что настоящее изобретение не ограничено аудиосигналами. Предпочтительно, вышеупомянутые варианты осуществления также могут использоваться в видеокодировании.
Относительно вышеупомянутых вариантов осуществления также следует отметить, что отдельные блоки, изображенные на Фиг.1 и 5, могут быть реализованы как в аппаратных средствах, так и в программных средствах, например, как части ASIC или процедуры компьютерной программы.
Следует также отметить, что, в зависимости от обстоятельств, изобретение также может быть реализовано в программном обеспечении. Реализация может быть выполнена на цифровом носителе данных, в частности, на диске или компакт-диске, с помощью электронно-считываемых сигналов управления, которые могут взаимодействовать с программируемой компьютерной системой для выполнения соответствующего способа. В целом, изобретение также заключается в компьютерном программном продукте с программным кодом, сохраненным на машиночитаемом носителе для выполнения способа, соответствующего изобретению, когда компьютерный программный продукт исполняется на компьютере. Другими словами, изобретение может быть реализовано в виде компьютерной программы, содержащей программный код для выполнения способа, когда компьютерная программа исполняется на компьютере. Относительно обсужденных выше вариантов осуществления также следует отметить, что генерируемые в них кодированные информационные сигналы могут быть сохранены, например, на носителе данных, таком как электронный носитель данных.