УСТРОЙСТВО И СПОСОБ КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ АУДИОСИГНАЛА С ИСПОЛЬЗОВАНИЕМ ПЕРЕКРЫТИЯ, ЗАВИСЯЩЕГО ОТ МЕСТОПОЛОЖЕНИЯ ПЕРЕХОДА
DEVICE AND METHOD FOR ENCODING OR DECODING AUDIO SIGNAL WITH OVERLAP DEPENDING ON TRANSITION LOCATION

Настоящее изобретение относится к обработке аудиосигналов или сигналов изображения, и в частности, к кодированию или декодированию аудиосигналов или сигналов изображения при наличии переходов.
Современные схемы кодирования речи/аудио в частотной области на основе перекрывающихся FFT или модифицированного дискретного косинусного преобразования (MDCT) предлагают некоторую степень адаптации к характеристикам нестационарных сигналов. Универсальные кодеки, стандартизованные в MPEG, а именно MPEG-1 Уровень 3, более известный как MP3, MPEG-4 (HE-)AAC [1] и совсем недавний MPEG-0 xHE-AAC (USAC), а также кодек Opus/Celt, определенный IETF [2], допускают кодирование кадра с использованием одной из, по меньшей мере, двух разных длин преобразования - одно длинное преобразование с длиной M для прохождений стационарных сигналов или 8 коротких преобразований с длиной M/8 каждое. В случае кодеков MPEG переключение преобразований с длинных на короткие и с коротких на длинные (также известное как переключение блоков) требует использования асимметрично кадрированных преобразований перехода, а именно начального и стопового окна соответственно. Эти формы преобразования вместе с другими известными формами из известного уровня техники изображены на фиг. 16. Следует отметить, что линейный наклон перекрытия является всего лишь пояснительным и меняется по своей точной форме. Возможные формы окон приводятся в стандарте AAC [1] и в разделе 6 документа [3].
Если предстоящий кадр нужно кодировать кодером MPEG с помощью коротких преобразований, текущий кадр нужно кодировать с начальным преобразованием перехода, то становится очевидным, что кодер, реализованный в соответствии с одним из вышеупомянутых стандартов MPEG, требует по меньшей мере одной длины кадра для упреждения. Однако в применениях связи с малой задержкой желательно минимизировать или даже избегать этого дополнительного упреждения. С этой целью предложены две модификации универсальной парадигмы кодирования. Одна модификация, которая была выбрана, например, в Celt [2], состоит в уменьшении перекрытия у длинного преобразования до такового у короткого преобразования, чтобы можно было избежать асимметричных окон перехода. Другая модификация, которая используется, например, в схемах кодирования AAC с (улучшенной) малой задержкой MPEG-4, состоит в запрете переключения на более короткие преобразования и применении вместо этого инструмента кодирования с Временным ограничением шума (TNS) [4], воздействующего на коэффициенты длинного преобразования, чтобы минимизировать временной разброс ошибки кодирования возле переходов.
Кроме того, как и xHE-AAC, AAC с малой задержкой допускает использование двух ширин перекрытия кадров - 50%-ное перекрытие по умолчанию для стационарного входа или уменьшенное перекрытие (аналогично короткому перекрытию у преобразований перехода) для нестационарных сигналов. Уменьшенное перекрытие эффективно ограничивает удлинение времени преобразования и, соответственно, его ошибку кодирования в случае квантования коэффициентов.
Патент США 2008/0140428 A1, переданный Samsung Electronics Co., а также патенты США 5502789 и 5819214, переданные Sony Corp., раскрывают адаптивное к сигналу окно или узлы определения размера преобразования. Однако узлы преобразователя, управляемые упомянутым окном или узлами определения размера преобразования, воздействуют на значения поддиапазона QMF или LOT (подразумевая, что обе описанные системы применяют каскадные гребенки фильтров или преобразования), в отличие от работы непосредственно с полнодиапазонным входным сигналом временной области, как в настоящем случае. Кроме того, в 2008/0140428 A1 не описываются подробности касательно формы или управления перекрытием окон, а в 5819214 формы перекрытия соответствуют – то есть, являются его результатом – выходу из узла определения размера преобразования, что противоположно предлагаемому предпочтительным вариантом осуществления настоящего изобретения.
Патент США 2010/0076754 A1, переданный France Telecom, придерживается той же мотивировки, что и настоящее изобретение, а именно – способность выполнять переключение длины преобразования в сценариях кодирования связи, чтобы усовершенствовать кодирование переходных сегментов сигнала, и выполнение этого без дополнительного упреждения в кодере. Однако, тогда как упомянутый документ показывает, что цель малой задержки достигается избеганием окон перехода длины преобразования и постобработкой восстановленного сигнала в декодере (невыгодно: путем усиления частей декодированного сигнала и, соответственно, ошибки кодирования), настоящее изобретение предлагает простую модификацию окна перехода в системе известного уровня техники, которая будет представлена ниже, так что можно минимизировать дополнительное упреждение в кодере, и можно избежать особой (рискованной) постобработки в декодере.
Преобразование перехода, к которому нужно применить патентоспособную модификацию, является начальным окном, описанным в двух вариантах в патенте США 5848391, переданном Fraunhofer-Gesellschaft e.V. и Dolby Laboratories Licensing Corp., а также, немного в ином виде, в патенте США 2006/0122825 A1, переданном Samsung Electronics Co. Фиг. 16 показывает эти начальные окна и показывает, что отличие между окнами Fraunhofer/Dolby и окном Samsung состоит в наличии неперекрывающегося сегмента, то есть области окна, имеющей постоянное максимальное значение, которое не принадлежит никакому наклону перекрытия. Окна Fraunhofer/Dolby демонстрируют такую "неперекрывающуюся часть, имеющую длину", а окна Samsung – нет. Можно сделать вывод, что кодер с наименьшей величиной дополнительного упреждения, но использующий переключение преобразования из известного уровня техники, можно реализовать с применением подхода окна перехода от Samsung. При таких преобразованиях упреждения, равного ширине перекрытия между короткими преобразованиями, хватает для полного переключения с длинных на короткие преобразования заблаговременно перед переходом сигнала.
Дополнительный известный уровень техники можно найти в WO 90/09063 или "Coding of audio signals with overlap block transform and adaptive window functions", Frequenz, Band 43, сентябрь 1989, страницы 2052 – 2056, или в документе 4929 конвенции AES, "MPEG-4 Low Delay Audio Coding based on the AAC Codec", E. Allamanche и др., 106 конвенция, 1999.
Тем не менее, в зависимости от длины короткого преобразования упреждение может оставаться довольно большим, и его не следует исключать. Фиг. 17 иллюстрирует выполнение переключения блоков в ситуации входа в наихудшем случае, а именно, при наличии резкого перехода в начале области упреждения, которая, в свою очередь, начинается в конце длинного наклона, то есть области перекрытия между кадрами. В соответствии с подходами известного уровня техники по меньшей мере один из двух изображенных переходов простирается в преобразование перехода. В системе кодирования с потерями, использующей кодер без дополнительного упреждения - кодер, который не "видит будущий переход" - это условие вызывает временной разброс ошибки кодирования вплоть до начала длинного наклона, и соответственно, даже с использованием TNS опережающее эхо, скорее всего, будет слышимым в декодированном сигнале.
Два ранее упомянутых пути обхода упреждения обладают своими недостатками. С одной стороны, уменьшение перекрытия длинного преобразования вплоть до 8 раз, как в кодере Celt, сильно ограничивает эффективность (то есть эффективность кодирования, спектральное уплотнение) на стационарном, особенно сильно тональном, входном материале. С другой стороны, запрет коротких преобразований, как в AAC с (улучшенной) малой задержкой, снижает производительность кодека на значительных переходах с длительностями гораздо меньше длины кадра, часто приводя к слышимому опережающему или запаздывающему эху даже с использованием TNS.
Таким образом, процедуры определения последовательности окон из известного уровня техники являются субоптимальными по отношению к гибкости из-за ограниченных длин окон, субоптимальными по отношению к необходимой задержке из-за минимально необходимых периодов упреждения перехода, субоптимальными по отношению к качеству звучания из-за опережающих и запаздывающих эхо, субоптимальными по отношению к эффективности из-за потенциально необходимой дополнительной предварительной обработки, использующей дополнительные функциональные возможности помимо процедур кадрирования с помощью некоторых окон, или субоптимальными по отношению к гибкости и эффективности из-за возможной необходимости изменения растра кадра/блока при наличии перехода.
Цель настоящего изобретения – предоставить усовершенствованную идею аудиокодирования/декодирования, которая обеспечивает повышенную производительность относительно по меньшей мере одного из недостатков известного уровня техники.
Эта цель достигается с помощью устройства для кодирования аудиосигнала или сигнала изображения по п. 1, устройства декодирования аудиосигнала или сигнала изображения по п. 17, способа кодирования аудиосигнала или сигнала изображения по п. 32, способа декодирования аудиосигнала или сигнала изображения по п. 33 или компьютерной программы по п. 34.
Аспекты настоящего изобретения опираются на заключение, что для того, чтобы аудиокодек или кодек изображения с малой задержкой мог достичь качества кодирования универсальных кодеков, полезно поддерживать высокое процентное отношение перекрытия между длинными преобразованиями во время ввода стационарного сигнала и допускать мгновенное переключение на более короткие перекрытия и преобразования на участках аудиосигнала или сигнала изображения, охватывающих нестационарности сигнала. Кроме того, желательно допускать отчасти большую гибкость, нежели предложение лишь парного выбора относительно ширины перекрытия, и дополнительно или в качестве альтернативы по отношению к длинам преобразования, чтобы ширину перекрытия или длины преобразования (преобразований) в кадре можно было точно адаптировать на основе местоположения возможного перехода во временной области кадра, чтобы минимизировать опережающие эхо или другие артефакты.
В частности, детектор местоположения перехода конфигурируется для идентификации местоположения перехода в области упреждения перехода в кадре, и на основе местоположения перехода в кадре выбирается определенное окно из группы, состоящей по меньшей мере из трех окон, где эти три окна отличаются по их длинам перекрытия с соответствующими соседними окнами. Таким образом, первое окно имеет длину перекрытия больше второго окна, второе окно имеет длину перекрытия больше длины перекрытия у третьего окна, а третье окно в качестве альтернативы также может иметь нулевое перекрытие, то есть отсутствие перекрытия. Определенное окно выбирается на основе местоположения перехода так, что одно из двух соседних по времени перекрывающихся окон имеет первые оконные коэффициенты в местоположении перехода, а другое из двух соседних во времени перекрывающихся окон имеет вторые оконные коэффициенты в местоположении перехода, где вторые коэффициенты по меньшей мере в девять раз больше первых коэффициентов. Таким образом, обеспечивается, что переход достаточно ослаблен относительно первого окна, и переход достаточно выражен относительно второго окна. Другими словами и предпочтительно, чтобы более раннее окно уже находилось на значениях близко к нулю в местоположении перехода, где обнаружен переход, и второе окно имело оконные коэффициенты в этой области близко к единице или равные ей, чтобы в течение по меньшей мере участка перехода переход ослаблялся в более раннем окне и не ослаблялся в более позднем или следующем окне.
При реализации длины перекрытия отличаются в целое число раз, так что вторая длина перекрытия, например, равна половине третьей длины перекрытия, а третья длина перекрытия равна половине второй длины перекрытия или отличается от второй длины перекрытия в другое количество раз, но больше либо равна по меньшей мере 64 выборкам, или больше либо равна по меньшей мере 32 выборкам, или больше либо равна по меньшей мере даже 16 выборкам аудио или изображения.
Выбор окна, выведенный из местоположения перехода, передается вместе с кадрами аудиосигнала или сигнала изображения, чтобы декодер мог выбрать соответствующие окна синтеза в соответствии с выбором окон анализа кодером, обеспечивая то, что кодер и декодер синхронизируются на протяжении всей операции кодирования/декодирования.
При реализации управляемый модуль кадрирования, конвертор, детектор местоположения перехода и контроллер образуют устройство для кодирования, и конвертор применяет любое из известных вносящих наложение преобразований, например MDCT (модифицированное дискретное косинусное преобразование), DST (модифицированное дискретное синусное преобразование) или любое другое аналогичное преобразование. На стороне декодера процессор взаимодействует с управляемым конвертором, чтобы преобразовать последовательность блоков спектральных значений в представление временной области, используя обработку сложения с перекрытием в соответствии с последовательностями окон, указанными информацией об окнах, принятой декодером.
В зависимости от реализации переключение длины преобразования можно реализовать в дополнение к выбору перекрытия преобразования, опять на основе местоположения перехода в кадре. В результате реализации секции с множественным перекрытием, в которой перекрываются друг с другом по меньшей мере три окна, реализуется идея кодека с очень малой задержкой, которая к тому же существенно сокращает необходимую задержку упреждения перехода по отношению к более ранним идеям. В дополнительной реализации предпочтительно выполнить, прежде всего, выбор перекрытия, а впоследствии выполнить решение длины преобразования, чтобы определить код перекрытия для каждого кадра. В качестве альтернативы решение о переключении длины преобразования может выполняться независимо от решения о ширине перекрытия, и код перекрытия определяется на основе этих двух решений. На основе кода перекрытия для текущего кадра и кода перекрытия более раннего кадра осуществляется выбор последовательности окон для определенного перехода, на основе которого кодер, а также декодер работают синхронно друг с другом.
В дополнительном аспекте контроллер последовательности окон, препроцессор и конвертор спектра вместе составляют устройство для формирования кодированного сигнала, где три окна имеют участок с множественным перекрытием. Этот участок с множественным перекрытием, в котором не только два окна, как на известном уровне техники, а три окна перекрываются друг с другом, делает возможной идею очень малой задержки благодаря тому, что дополнительно сокращается необходимая задержка для упреждения перехода. Соответствующий декодер образуется из процессора декодера, временного конвертора и постпроцессора. Постпроцессор и препроцессор выполняют дополнительные операции по кадрированию, используя одно и то же вспомогательное окно на стороне кодера и на стороне декодера, чтобы можно было получить эффективную реализацию, в частности, в мобильных устройствах или дешевых устройствах, в которых необходимое ROM или RAM должно быть как можно меньше.
Предпочтительные варианты осуществления опираются на определенную последовательность окон и определенное взаимодействие окон, обладающих разными длинами, так что короткое окно "размещается" на переходе, чтобы избежать длинных опережающих или запаздывающих эхо. Для обеспечения того, что участок с множественным перекрытием не приводит к артефактам аудио или изображения, препроцессор на стороне кодера выполняет операцию по кадрированию с использованием вспомогательной оконной функции и операцию по предварительной обработке с использованием операции свертки, чтобы получить модифицированный участок с множественным перекрытием, который затем преобразуется в спектральную область, используя вносящее наложение преобразование. На стороне декодера соответствующий постпроцессор конфигурируется для выполнения операции развертки после соответствующих преобразований во временное представление, а после операции развертки выполняется кадрирование с использованием вспомогательной оконной функции и завершающее сложение с перекрытием с предыдущим блоком выборок, возникающим от оконной операции с длинным окном.
В варианте осуществления, в котором выполняется выбор перекрытия преобразования, получается улучшенное качество звучания или изображения.
В отличие от существующих систем кодирования, которые применяют только парный выбор ширины перекрытия преобразования (большая/максимальная либо малая), вариант осуществления предлагает набор из трех ширин перекрытия, из которого кодер может выбирать на основе кадра (или, при желании, на основе преобразования): максимальное перекрытие, половинное перекрытие или минимальное перекрытие. Максимальное перекрытие может быть равно длине кадра, как для длинных преобразований в AAC, то есть 50%-ное перекрытие, но также может быть равно половине длины кадра, то есть 33%-ное перекрытие, или меньше, что будет описываться в предпочтительном варианте осуществления. Соответственно, минимальное перекрытие может указывать нулевую ширину перекрытия, то есть отсутствие перекрытия, но также может представлять перекрытие больше нулевого со сверхмалым количеством временных выборок или миллисекунд, что продемонстрирует упомянутый предпочтительный вариант осуществления. В конечном счете половинное перекрытие могло бы составлять половину максимального перекрытия, но это не обязательно.
В частности, в соответствии с аспектом настоящего изобретения задается узел определения ширины перекрытия, который для каждого кадра (или, при желании, для каждого преобразования в кадре) выбирает одну из трех возможных ширин перекрытия. Точнее говоря, упомянутый узел определения ширины перекрытия в качестве входа получает выход узла обнаружения перехода, чтобы с достаточной точностью идентифицировать положение перехода в текущем кадре (или, при желании, в преобразовании в текущем кадре) и вывести ширину перекрытия, так что достигается по меньшей мере одна из двух целей:
- Ширина выбирается такой, что только одно из перекрывающихся преобразований содержит переход.
- Хорошо устраняются псевдо-переходы из-за наложенного по времени ограничения TNS ошибки кодирования.
Другими словами, ширина перекрытия определяется с целью предотвращения искажения в виде опережающего или запаздывающего эха возле кодированного по восприятию перехода, расположенного в данном кадре. Нужно отметить, что возможна некоторая степень свободы касательно средства определения точного местоположения перехода. Временной индекс или индекс субблока, обозначающий местоположение перехода, может быть равен началу (возникновению) того местоположения перехода, как в предпочтительном варианте осуществления, но также может быть местоположением максимальной энергии или амплитуды перехода, или центром энергии.
Кроме того, в отличие от схем кодирования известного уровня техники, которые выводят мгновенные перекрытия между преобразованиями из заданного выбора длин преобразования для пары кадров (то есть ширина перекрытия соответствует выходу узла определения размера преобразования), в соответствии с другим аспектом настоящего изобретения система кодирования при определенных условиях, рассматриваемых ниже в предпочтительном варианте осуществления, может управлять или выводить длину (длины) преобразования для использования для конкретного кадра, используя ширину перекрытия, связанную с тем кадром, и, при желании, ширину перекрытия предыдущего кадра (то есть размер преобразования соответствует данным от узла определения ширины перекрытия).
В дополнительном варианте осуществления, в котором используется участок с множественным перекрытием или применяется переключение длины преобразования, получается идея с очень малой задержкой.
Усовершенствование в схемах переключения блоков известного уровня техники является полезной модификацией преобразований перехода из фиг. 16, которая позволяет уменьшить вполовину дополнительное упреждение в кодере, необходимое для работы с устойчивым качеством во время нестационарностей сигнала. Как обсуждалось выше, начальные окна, предложенные Fraunhofer/Dolby или Samsung, отличаются наличием или отсутствием, соответственно, "неперекрывающейся части, имеющей длину". Вариант осуществления идет еще дальше и позволяет левому и правому наклонам перекрытия у окна перехода заходить друг на друга. Другими словами, модифицированное преобразование перехода показывает область "двойного перекрытия" ненулевой длины, в которой она перекрывается как с длинным преобразованием предыдущего кадра, так и следующим коротким преобразованием. Результирующая форма патентоспособного преобразования перехода иллюстрируется на фиг. 13. По сравнению с окном перехода от Samsung, показанным на фиг. 17, понятно, что в результате разрешения области "с двойным перекрытием" при преобразовании наклон короткого перекрытия с правой стороны преобразования можно сдвинуть влево на - и посредством этого необходимое упреждение в кодере можно уменьшить на - половину ширины перекрытия короткого преобразования. Уменьшенная длина такого модифицированного окна перехода дает три ключевых преимущества, которые упрощают реализацию, особенно на мобильных устройствах.
Ядро преобразования, то есть длина вектора коэффициентов, получающегося в результате временного/частотного преобразования внахлестку (предпочтительно – MDCT), составляет ровно половину ширины области перекрытия между двумя длинными преобразованиями. Учитывая, что упомянутая ширина длинного перекрытия обычно равна длине кадра или половине длины кадра, это подразумевает, что патентоспособное окно перехода и последующие короткие окна отлично помещаются в кадровую сетку, и что все размеры преобразований у результирующего кодека связаны целой степенью двух, как видно на фиг. 13.
- Оба местоположения перехода, изображенные на фиг. 17 и снова на фиг. 13, находятся вне преобразования перехода, поэтому временное "размывание" ошибки кодирования из-за переходов можно ограничить расширением первых двух коротких окон после преобразования. Поэтому, вопреки схемам Fraunhofer/Dolby и Samsung из известного уровня техники, вряд ли возникает слышимое опережающее эхо возле переходов при использовании патентоспособного подхода переключения блоков из фиг. 13.
- Как кодер, так и декодер могут использовать точно такие же окна для прямого и обратного преобразований. Соответственно, в устройстве связи, выполняющем кодирование и декодирование, нужно хранить только один набор данных окна в ROM. Кроме того, также можно избежать специальной предварительной или постобработки сигнала, которая потребовала бы дополнительного ROM и/или RAM для программы.
Традиционно окна перехода с сегментом "двойного перекрытия", как в настоящем изобретении, не использовались при кодировании речи, аудио или изображений, скорее всего потому, что они считались нарушающими некоторые принципы, которые обеспечивают точное восстановление формы волны при отсутствии квантования коэффициентов преобразования. Однако можно точно восстановить вход при использовании патентоспособного преобразования перехода, и кроме того, не требуется никакой специальной постобработки на стороне декодера, как в предложении France Telecom.
Дополнительно отметим, что использование упомянутого патентоспособного окна перехода может управляться посредством патентоспособного узла определения ширины перекрытия вместо узла определения длины преобразования или в дополнение к нему.
Далее обсуждаются и подробнее иллюстрируются предпочтительные варианты осуществления настоящего изобретения. Кроме того, приводится конкретная ссылка на зависимые пункты формулы изобретения, в которых задаются дополнительные варианты осуществления.
Кроме того, описание изобретения более точно иллюстрирует аспект, связанный с адаптивным к местоположению перехода переключением перекрытия, в частности, по отношению к фиг. 1a–7. Дополнительный аспект, связанный с участком с множественным перекрытием, иллюстрируется и описывается по отношению к фиг. 8a–15f. Эти отдельные аспекты можно реализовать независимо друг от друга, то есть переключение перекрытия может применяться без области с множественным перекрытием, или область с множественным перекрытием может применяться без адаптивного к местоположению перехода переключения перекрытия. Однако при реализации оба аспекта можно выгодно объединить, получая в результате идею кодирования/декодирования, содержащую адаптивное к местоположению перехода переключение перекрытия и область с множественным перекрытием. Такую идею можно дополнительно расширить процедурой переключения длины преобразования, опять зависимой от местоположения перехода в области упреждения перехода в кадре. Переключение длины преобразования может выполняться в зависимости от определения ширины перекрытия или независимо от переключения перекрытия.
Настоящее изобретение полезно не только для аудиосигналов, но также полезно для сигналов видео или сигналов изображения в целом. Например, при кодировании неподвижных изображений или так называемых I-кадров в AVC либо менее или более продвинутых технологиях настоящее изобретение может применяться для избегания блочных артефактов. Переход в поле изображения был бы резкой границей, а кадр соответствовал бы, например, макроблоку. Изображение затем кодируется, предпочтительно двумерно, с использованием вносящего наложение преобразования и соответствующего пространственного перекрытия. Это, с одной стороны, уменьшает блочные артефакты, а с другой стороны – уменьшает любые другие артефакты из-за участков перехода, то есть участков с резкими границами. Поэтому последующее раскрытие изобретения в равной степени применяется к сигналам изображения, хотя это не указывается особо на всем протяжении раскрытия изобретения.
Варианты осуществления и аспекты обсуждаются далее по отношению к прилагаемым чертежам, на которых:
Фиг. 1a иллюстрирует устройство для кодирования применительно к аспекту переключения перекрытия;
Фиг. 1b иллюстрирует устройство для декодирования для аспекта переключения перекрытия;
Фиг. 2a иллюстрирует последовательность окон с полным перекрытием между соседними окнами;
Фиг. 2b иллюстрирует последовательность окон с половинным перекрытием между двумя соседними окнами;
Фиг. 2c иллюстрирует последовательность окон с четвертным перекрытием между соседними окнами и половинным перекрытием между соседними окнами и последующим полным перекрытием между соседними окнами;
Фиг. 3a и 3c иллюстрируют разные ширины перекрытия для разных местоположений перехода для варианта осуществления с длиной преобразования 20 мс, например TCX 20;
Фиг. 4a–4g иллюстрируют выбор длин перекрытий преобразования для длины преобразования 10 мс, например TCX 10, в зависимости от местоположения перехода;
Фиг. 5a–5c иллюстрируют кодирование ширины перекрытия;
Фиг. 6a иллюстрирует кодирование ширины перекрытия и длины преобразования на основе положения перехода;
Фиг. 6b иллюстрирует таблицу решений длины преобразования;
Фиг. 7 иллюстрирует разные последовательности окон, зависимые от предыдущих и текущих кодов перекрытия;
Фиг. 8a иллюстрирует кодер применительно к участку с множественным перекрытием в варианте осуществления настоящего изобретения;
Фиг. 8d иллюстрирует декодер для аспекта участка с множественным перекрытием в варианте осуществления настоящего изобретения;
Фиг. 9a иллюстрирует процедуру в соответствии с предпочтительным вариантом осуществления, иллюстрирующим сторону кодера;
Фиг. 9b иллюстрирует блок-схему алгоритма предпочтительной процедуры, выполняемой на стороне кодера;
Фиг. 10a иллюстрирует вариант осуществления процедуры на стороне декодера;
Фиг. 10b иллюстрирует дополнительный вариант осуществления процедуры, выполняемой на стороне декодера;
Фиг. 11a иллюстрирует операции, выполняемые на стороне кодера в варианте осуществления;
Фиг. 11b иллюстрирует операции, выполняемые декодером в варианте осуществления настоящего изобретения;
Фиг. 12a и 12b иллюстрируют дополнительный вариант осуществления процедур для выполнения на стороне кодера/декодера применительно к аспекту множественного перекрытия в изобретении;
Фиг. 13 иллюстрирует разные последовательности окон, имеющие участок с множественным перекрытием;
Фиг. 14a иллюстрирует последовательность окон, имеющую переключаемую длину преобразования в зависимости от местоположения перехода;
Фиг. 14b иллюстрирует дополнительную последовательность окон, имеющую участок с множественным перекрытием;
Фиг. 15a–15f иллюстрируют разные последовательности окон и соответствующие участки упреждения и опережающие эхо;
Фиг. 16 иллюстрирует формы окон из известного уровня техники; и
Фиг. 17 иллюстрирует последовательности окон из известного уровня техники, образованные формами окон из фиг. 16.
Фиг. 1a иллюстрирует устройство для кодирования аудиосигнала 100. Устройство для кодирования аудиосигнала содержит управляемый модуль 102 кадрирования для кадрирования аудиосигнала 100, чтобы предоставить последовательность блоков кадрированных выборок по ссылке 103. Кроме того, декодер содержит конвертор 104 для преобразования последовательности 103 блоков кадрированных выборок в спектральное представление, содержащее последовательность кадров спектральных значений, указанную по ссылке 105. Кроме того, предоставляется детектор 106 местоположения перехода. Детектор конфигурируется для идентификации местоположения перехода в области упреждения перехода в кадре. Кроме того, контроллер 108 для управления управляемым модулем кадрирования конфигурируется для применения определенного окна, обладающего заданной длиной перекрытия, к аудиосигналу 100 в ответ на идентифицированное местоположение перехода, проиллюстрированное по ссылке 107. Кроме того, контроллер 108 в варианте осуществления конфигурируется для предоставления информации 112 об окнах не только управляемому модулю 102 кадрирования, но также выходному интерфейсу 114, который обеспечивает на выходе кодированный аудиосигнал 115. Спектральное представление, содержащее последовательность 105 кадров спектральных значений, вводится в кодирующий процессор 110, который может выполнять любой вид операции кодирования, например операцию предсказания, операцию временного ограничения шума, операцию квантования, предпочтительно по отношению к психоакустической модели или, по меньшей мере, по отношению к психоакустическим принципам, или может содержать операцию кодирования с уменьшением избыточности, например операцию кодирования Хаффмана или операцию арифметического кодирования. Выход кодирующего процессора 110 затем перенаправляется в выходной интерфейс 114, и выходной интерфейс 114 в конечном счете предоставляет кодированный аудиосигнал, имеющий ассоциированную с каждым кодированным кадром некоторую информацию 112 об окнах.
Контроллер 108 конфигурируется для выбора определенного окна из группы по меньшей мере из трех окон. Группа содержит первое окно, имеющее первую длину перекрытия, второе окно, имеющее вторую длину перекрытия, и третье окно, имеющее третью длину перекрытия либо отсутствие перекрытия. Первая длина перекрытия больше второй длины перекрытия, а вторая длина перекрытия больше нулевого перекрытия. Определенное окно выбирается управляемым модулем 102 кадрирования на основе местоположения перехода так, что одно из двух соседних по времени перекрывающихся окон имеет первые оконные коэффициенты в местоположении перехода, а другое из двух соседних во времени перекрывающихся окон имеет вторые оконные коэффициенты в местоположении перехода, и вторые оконные коэффициенты по меньшей мере в девять раз больше первых коэффициентов. Это обеспечивает, что переход значительно ослабляется первым окном, имеющим первые (небольшие) коэффициенты, и переход почти не затрагивается вторым окном, имеющим вторые оконные коэффициенты. Предпочтительно, чтобы первые оконные коэффициенты были равны 1 в пределах допуска плюс/минус 5%, например между 0,95 и 1,05, а вторые оконные коэффициенты были равны 0 или, по меньшей мере, меньше 0,05. Оконные коэффициенты с тем же успехом могут быть отрицательными, и в этом случае отношения и величины оконных коэффициентов относятся к абсолютной величине (модулю).
Фиг. 2a иллюстрирует последовательность окон только с первыми окнами, и первые окна имеют первую длину перекрытия. В частности, прошлый кадр имеет ассоциированное первое окно 200, текущий кадр имеет ассоциированное окно 202, и третий или следующий кадр имеет ассоциированное окно 204. В этом варианте осуществления соседние окна перекрываются на 50%, то есть на полную длину. Кроме того, кадры размещаются относительно окон, чтобы идентифицировать, какой участок аудиосигнала обрабатывается кадром. Это объясняется со ссылкой на текущий кадр. Текущий кадр имеет левый участок 205a и правый участок 205b. Соответственно, прошлый кадр имеет правый участок 204b и левый участок 204a. По аналогии следующий кадр имеет левый участок 206a и правый участок 206b. Лево/право относится к более раннему по времени и более позднему по времени, как проиллюстрировано на фиг. 2a. Когда формируется текущий кадр спектральных значений, используются аудиовыборки, полученные путем кадрирования с помощью окна 202. Аудиовыборки возникают из участков 204b–206a.
Как известно в области обработки MDCT, обычно при обработке с использованием вносящего наложение преобразования это вносящее наложение преобразование можно разделить на этап свертки и последующий этап преобразования, использующий некоторое не вносящее наложение преобразование. В примере фиг. 2a секция 204b свертывается в секцию 205a, а секция 206a свертывается в секцию 205b. Результат операции свертки, то есть взвешенная комбинация 205a, 204b с одной стороны и 206a и 205b, затем преобразуется в спектральную область с использованием некоего преобразования, например преобразования DCT. В случае MDCT применяется преобразование DCT IV.
2N
N
Впоследствии это иллюстрируется посредством ссылки на MDCT, но аналогичным образом можно применять другие вносящие наложение преобразования. В качестве преобразования внахлестку MDCT является немного необычным по сравнению с другими относящимися к Фурье преобразованиями в том, что оно имеет вдвое меньше выходов, чем входов (вместо одинакового количества). В частности, это линейная функция F: R→R (где R обозначает набор вещественных чисел). 2N вещественных чисел x0, …, x2N-1 преобразуются в N вещественных чисел X0, …, XN-1 в соответствии с формулой:
(Коэффициент нормализации впереди этого преобразования, здесь – единица, является произвольным соглашением и отличается между обработками. Ограничивается только произведение нормализаций MDCT и IMDCT, ниже).
Обратное преобразование
Обратное MDCT известно как IMDCT. Поскольку имеются разные количества входов и выходов, поначалу может показаться, что MDCT не должно быть обратимым. Однако полная обратимость достигается путем сложения перекрывающихся IMDCT соседних по времени перекрывающихся блоков, вызывая подавление ошибок и извлечение исходных данных; эта методика известна как компенсация наложения временной области (TDAC).
IMDCT преобразует N вещественных чисел X0, …, XN-1 в 2N вещественных чисел y0, …, y2N-1 в соответствии с формулой:
(Как и для DCT-IV, ортогонального преобразования, противоположность имеет такой же вид, как и прямое преобразование).
В случае кадрированного MDCT при обычной нормализации окон (см. ниже) коэффициент нормализации впереди IMDCT следует умножить на 2 (то есть становится 2/N).
В типичных применениях со сжатием сигнала свойства преобразования дополнительно улучшаются с использованием оконной функции wn (n=0, …, 2N-1), которая умножается на xn и yn в формулах MDCT и IMDCT выше, чтобы избежать разрывностей на границах n=0 и 2N путем принуждения функции постепенно перейти в ноль в тех точках. (То есть кадрируем данные до MDCT и после IMDCT). В принципе, x и y могли бы иметь разные оконные функции, и оконная функция также могла бы меняться от одного блока к следующему (особенно для случая, где объединяются блоки данных разных размеров), но для простоты рассмотрим общий случай идентичных оконных функций для блоков равного размера.
Преобразование остается обратимым (то есть работает TDAC), для симметричного окна wn=w2N-1-n при условии, что w удовлетворяет условию Принсена-Брэдли:
,
используются различные оконные функции. Окно, которое создает форму, известную как модулированное преобразование внахлестку [3][4], имеет вид
и используется для MP3 и MPEG-2 AAC, и
для Vorbis. AC-3 использует производное окно Кайзера-Бесселя (KBD), и MPEG-4 AAC также может использовать окно KBD.
Отметим, что окна, применяемые к MDCT, отличаются от окон, используемых для некоторых других типов анализа сигнала, поскольку они должны выполнять условие Принсена-Брэдли. Одна из причин для этого отличия состоит в том, что окна MDCT применяются дважды как для MDCT (анализ), так и для IMDCT (синтез).
Как видно при изучении определений, для четного N MDCT эквивалентно, по существу, DCT-IV, где вход сдвигается на N/2, и два N-блока данных преобразуются за раз. Рассматривая эту эквивалентность более тщательно, можно легко вывести важные свойства типа TDAC.
Чтобы задать точную взаимосвязь с DCT-IV, нужно представлять себе, что DCT-IV соответствует чередующимся четным/нечетным граничным условиям: четное на левой границе (возле n=−1/2), нечетное на правой границе (возле n=N−1/2), и так далее (вместо периодических границ, как для DFT). Это вытекает из идентичностей. Таким образом, если входы  и .
Таким образом, если входы являются массивом x с длиной N, то можем представить расширение этого массива до (x, −xR, −x, xR, …) и так далее, где xR обозначает x в обратном порядке.
Рассмотрим MDCT с 2N входами и N выходами, где разделим входы на четыре блока (a, b, c, d), каждый с размером N/2. Если мы сдвигаем их вправо на N/2 (от члена +N/2 в определении MDCT), то (b, c, d) выходят за окончание N входов DCT-IV, поэтому нужно "свернуть" их обратно в соответствии с описанными выше граничными условиями.
Таким образом, MDCT с 2N входами (a, b, c, d) полностью эквивалентно DCT-IV с N входами: (−cR−d, a−bR), где R обозначает обращение, как и выше.
Это иллюстрируется для оконной функции 202 на фиг. 2a. a является участком 204b, b является участком 205a, c является участком 205b, и d является участком 206a.
(Таким образом, любой алгоритм для вычисления DCT-IV можно легко применить к MDCT).
Аналогичным образом, формула IMDCT выше составляет точно 1/2 DCT-IV (которое является собственной противоположностью), где выход увеличивается (посредством граничных условий) до длины 2N и сдвигается обратно влево на N/2. Обратное DCT-IV просто возвращало бы входы (−cR−d, a−bR) выше. Когда это увеличивается посредством граничных условий и сдвигается, получаем:
IMDCT(MDCT(a, b, c, d)) = (a−bR, b−aR, c+dR, d+cR)/2.
Соответственно, половина выходов IMDCT является избыточной, так как b−aR = −(a−bR)R, и аналогично для двух последних членов. Если мы группируем вход в более крупные блоки A, B с размером N, где A=(a, b) и B=(c, d), то можем записать этот результат проще:
IMDCT(MDCT(A, B)) = (A−AR, B+BR)/2
Теперь можно понять, как работает TDAC. Предположим, что вычисляется MDCT соседних по времени 2N блоков (B, C), перекрытых на 50%. Тогда IMDCT даст, аналогично вышеупомянутому: (B−BR, C+CR)/2. Когда это складывается с предыдущим результатом IMDCT в перекрывающейся половине, противоположные члены сокращаются, и получаем просто B, восстанавливающий исходные данные.
Теперь ясно происхождение термина "компенсация наложения временной области". Использование входных данных, которые выходят за границы логического DCT-IV, заставляет данные накладываться точно так же, как частоты за пределами частоты Найквиста накладываются на более низкие частоты, за исключением того, что это наложение происходит во временной области вместо частотной области: нельзя отличить вклады a и bR в MDCT (a, b, c, d), или то же самое, что в результат IMDCT (MDCT(a, b, c, d)) = (a−bR, b−aR, c+dR, d+cR)/2. Комбинации c−dR и так далее имеют строго правильные знаки для сокращения комбинаций, когда они складываются.
Для нечетного N (что на практике используется редко) N/2 не является целым числом, поэтому MDCT не является просто сдвиговой перестановкой DCT-IV. В этом случае дополнительный сдвиг в половину выборки означает, что MDCT/IMDCT становится эквивалентным DCT-III/II, и анализ аналогичен вышеприведенному.
Выше мы наблюдали, что MDCT с 2N входами (a, b, c, d) эквивалентно DCT-IV с N входами (−cR−d, a−bR). DCT-IV спроектировано для случая, где функция на правой границе является нечетной, и поэтому значения возле правой границы близки к 0. Если входной сигнал ровный, то имеет место: крайние правые компоненты a и bR являются последовательными во входной последовательности (a, b, c, d), и поэтому их отличие небольшое. Посмотрим на середину интервала: если мы перепишем вышеприведенное выражение в виде (−cR−d, a−bR) = (−d, a)−(b,c)R, то второй член (b,c)R дает плавный переход в середине. Однако в первом члене (−d, a) существует возможная разрывность, где правый конец −d встречается с левым концом a. Это является причиной использования оконной функции, которая уменьшает компоненты возле границ входной последовательности (a, b, c, d) до 0.
Выше было доказано свойство TDAC для обычного MDCT, показывающее, что сложение IMDCT соседних по времени блоков в их перекрывающейся половине восстанавливает исходные данные. Выведение этого обратного свойства для кадрированного MDCT сложнее лишь незначительно.
R
R
Рассмотрим перекрывающиеся последовательные наборы с 2N входами (A,B) и (B,C) для блоков A, B, C размера N. Из вышеприведенного вспомним, что когда (A, B) и (B, C) подвергаются MDCT, IMDCT и складываются в их перекрывающейся половине, мы получаем (B+B)/2+(B-B)/2=B, исходные данные.
R
R
2
Теперь предположим, что мы умножаем входы MDCT и выходы IMDCT на оконную функцию с длиной 2N. Как и выше, мы предполагаем симметричную оконную функцию, которая поэтому имеет вид (W, W), где W является вектором длины N, а R обозначает обращение, как раньше. Тогда условие Принсена-Брэдли можно записать в виде W+W=(1, 1, …), причем возведения в квадрат и сложения выполняются поэлементно.
R
Поэтому вместо проведения MDCT для (A, B) выполняем теперь MDCT (WA,WB) со всеми умножениями, выполняемыми поэлементно. Когда это подвергается IMDCT и опять умножается (поэлементно) на оконную функцию, вторая половина N становится:
R
R
R
R
R
R
R
R
R
R
2
W⋅(WB+(WB))=W⋅(WB+WB)=WB+WWB
(Отметим, что больше нет умножения на 1/2, потому что нормализации IMDCT отличается в 2 раза в случае с кадрированием).
Аналогичным образом кадрированное MDCT и IMDCT (B,C) в первой половине N дает:
R
R
R
R
2
W⋅(WB-WB)=WB-WWB
Когда складываем эти две половины вместе, восстанавливаем исходные данные.
По аналогичной процедуре следующий кадр вычисляется с использованием участков 205b, 206a, 206b и первого участка следующего за следующим кадра на фиг. 2a. Таким образом, окна 200, 202, 204 соответствуют оконной функции, имеющей первую длину перекрытия из трех окон с разными длинами перекрытия, используемой управляемым модулем 102 кадрирования из фиг. 1a. Как указано, фиг. 2a иллюстрирует ситуацию, в которой никакие переходы не обнаруживаются в прошлом кадре, текущем кадре и следующем кадре, и в частности, в области упреждения для каждого кадра, указанной элементом 207 для прошлого кадра, 208 для текущего кадра и 209 для следующего кадра. Фиг. 2b иллюстрирует ситуацию, в которой переходы обнаруживаются в положениях 210, 211, 212, 213 переходов. Из-за того, что положение перехода, например, обнаруживается в 210, и из-за того, что 210 находится в области упреждения, начинающейся с 207 для прошлого кадра, контроллер 108 определяет, что нужно выполнить переключение с первого окна 201 на дополнительное окно 215. Из-за дополнительных переходов 211, и особенно 212/213, которые находятся в следующей области упреждения, текущий кадр дополнительно обрабатывается с использованием второго окна 216 со второй длиной перекрытия. Таким образом, окно 215 является разновидностью начального окна, переключающегося с окна с первой длиной перекрытия, указанного по ссылке 201, на второе окно, имеющее вторую длину перекрытия. Как проиллюстрировано, вторая длина перекрытия охватывает только восемь временных интервалов и поэтому составляет только половину первой длины перекрытия. Из-за того, что в области упреждения, начинающейся с 209, уже не обнаруживается никакого перехода, переключение выполняется обратно на длинное окно 201 с помощью своего рода "стопового окна 217". Снова отметим, что длина перекрытия, проиллюстрированная по ссылке 218 в текущем кадре, с одной стороны, и между текущим кадром и следующим кадром, с другой стороны, которая указывается по ссылке 218, составляет половину длины перекрытия на фиг. 2a для первого окна, которое равно 16 проиллюстрированным временным интервалам.
Таким образом, окно половинного перекрытия используется для переходов, которые обнаруживаются в областях 1 и 6 обнаружения. Как проиллюстрировано по ссылке 219, такая область обнаружения содержит два временных интервала. Таким образом, диапазон упреждения разделяется предпочтительно на восемь временных интервалов. Однако, с другой стороны, может выполняться более крупное или более мелкое подразделение. Однако в предпочтительных вариантах осуществления область упреждения подразделяется по меньшей мере на четыре временных интервала, а предпочтительно подразделяется на восемь временных интервалов, как проиллюстрировано на фиг. 2b и 2c и других фигурах.
Как проиллюстрировано, второе окно 216 имеет половинное перекрытие с обеих сторон, тогда как окно 215 имеет половинное перекрытие с правой стороны и имеет полное перекрытие с левой стороны, а окно 217 имеет половинное перекрытие с левой стороны и полное перекрытие с правой стороны.
Приводится ссылка на фиг. 2c. Фиг. 2c иллюстрирует ситуацию, в которой детектор перехода обнаруживает в области упреждения, начинающейся посередине прошлого кадра, что имеется переход во второй области 222 обнаружения перехода. Таким образом, выполняется переключение на четвертное перекрытие, чтобы обеспечить, что переход 223 всего лишь "размыт" в окне 224, но не включается в область, заданную окном 201, или в область, заданную окном 225. Кроме того, указывается последовательность, где выполняется переключение с четвертного перекрытия в прошлом кадре и текущем кадре на половинное перекрытие между текущим кадром и следующим кадром и обратно на полное перекрытие между следующим кадром и следующим за следующим кадром. Это обусловлено обнаруженными переходами. В области упреждения, начинающейся с 208, обнаруживаются переходы на участке один и участке шесть, тогда как на участке два и участке пять обнаруживаются переходы между прошлым кадром 207 и текущим кадром 208.
Таким образом, фиг. 2c иллюстрирует последовательность окон, где используется первое окно 201, имеющее полную или первую длину перекрытия, где используется второе окно, имеющее вторую длину перекрытия, указанную по ссылке 218, где второе окно может быть, например, окном 225 или окном 226, и где третье окно, имеющее третью длину перекрытия, иллюстрируется в качестве окна 224 или окна 225, которое с левой стороны имеет небольшую длину 229 перекрытия. Таким образом, иллюстрируется последовательность окон, переключающаяся с полного перекрытия на четвертное перекрытие, затем на половинное перекрытие, а затем на полное перекрытие. Поэтому первое окно, имеющее первую длину перекрытия, может быть асимметричным окном, имеющим отличное перекрытие от первого перекрытия с одной стороны и имеющее первую длину перекрытия с другой стороны. Однако в качестве альтернативы первое окно также может быть окном, имеющим первую длину перекрытия с обеих сторон, как проиллюстрировано по ссылке 216 на фиг. 2b. Кроме того, второе окно, имеющее вторую длину перекрытия, может быть симметричным окном, имеющим вторую длину перекрытия с обеих сторон, либо может быть асимметричным окном, имеющим вторую длину перекрытия с одной стороны и имеющим первую длину перекрытия или третью длину перекрытия, или любую другую длину перекрытия, с другой стороны. В конечном счете третье окно, имеющее третью длину перекрытия, может быть симметричным окном, имеющим третью длину перекрытия с обеих сторон, либо может быть окном, имеющим третью длину перекрытия с одной стороны и имеющим иную длину перекрытия с другой стороны.
Далее дополнительные варианты осуществления иллюстрируются по отношению к следующим фигурам. В целом обнаружение перехода и его местоположения может выполняться, например, с использованием способа или процедуры, аналогичной детектору перехода, описанному в Патенте США 6826525 B2, но с тем же успехом могут использоваться любые другие детекторы перехода.
Узел обнаружения перехода идентифицирует наличие и, если применимо, местоположение возникновения самого значительного перехода на новом участке сигнала заданного кадра, то есть без области перекрытия между текущим и предыдущим кадром. Разрешение индекса, описывающего местоположение перехода, на следующих фигурах составляет 1/8 от длины кадра, поэтому диапазоном индекса является 0–7. На последующих фигурах субблоки с индексами 0, …, 7 представляют новейшие 20 мс сигнала временной области, которые используются для кодирования в текущем кадре.
Фиг. 3a-3c иллюстрируют выбор ширины перекрытия преобразования для примерной длины преобразования, то есть для длины преобразования TCX20.
На фиг. 3a переход в текущем кадре отсутствует. Поэтому обнаруживается полное перекрытие 300.
Фиг. 3b, наоборот, иллюстрирует ситуацию, в которой обнаруживается переход в седьмом субблоке, так что контроллером 108 из фиг. 1a выбирается половинное перекрытие 302. Кроме того, фиг. 3c иллюстрирует ситуацию, в которой обнаруживается переход в шестом субблоке, и поэтому контроллером устанавливается минимальное перекрытие 304. Таким образом, детектор 106 местоположения перехода обнаруживает, имеется ли переход, и если нет, то выбирается ширина перекрытия или первая ширина 300 перекрытия. Однако, когда имеется переход в седьмом субблоке, как определено детектором 106 местоположения перехода из фиг. 1a, то контроллером устанавливается вторая длина 302 перекрытия, предпочтительно составляющая половину первой длины 300 перекрытия, а когда переход находится в субблоке 6, то устанавливается минимальное перекрытие. Фиг. 3c дополнительно показывает ситуацию, где вместо того, что обнаруживается переход в местоположении 6 или 7, все же сохраняется длина преобразования. Таким образом, длины преобразования у окон 301a, 301b, или 303a, или 303b, идентичны и равны первому окну, имеющему самую большую длину перекрытия, проиллюстрированному на фиг. 3a по ссылкам 301a и 301b. Как будет показано позже, предпочтительно не только управлять длиной перекрытия, но еще управлять и длиной преобразования, особенно в ситуациях, где переход обнаруживается в других субблоках. Таким образом, ширина перекрытия между текущим и следующим окном преобразования зависит от местоположения перехода. Однако перекрытие между текущим и предыдущим окном преобразования определялось при обработке предыдущего кадра.
Далее приводится ссылка на фиг. 4a–4g, чтобы показать выбор длины перекрытия преобразования для длины преобразования в 10 мс, то есть TCX10. Если, например, кодек ограничивается длиной преобразования в 10 мс, то перекрытие между двумя окнами TCX10 выбирается так, чтобы хорошо устранялись псевдо-переходы из-за наложенного по времени ограничения TNX ошибки кодирования. Также минимизируется размывание перехода больше чем на пять предыдущих и пять последующих субблоков. То есть опережающее эхо и запаздывающее эхо ограничиваются до 12,5 мс. Выбор перекрытия основывается на положении перехода.
Фиг. 4a иллюстрирует ситуацию, в которой переход обнаруживается в нулевом или первом субблоке. Тогда выбираются "первые окна" 401, 402, которые имеют максимальную или первую длину 403 перекрытия. Кроме того, с пояснительными целями полное перекрытие TCX20 с предыдущим и последующим окном иллюстрируется в виде ссылки 404. Таким образом, "полное перекрытие" соответствует, например, 50% окна 401, 402 или соответствует 33% окна 301a, 301b TCX20. Таким образом, длина 300 перекрытия на фиг. 3a и 403 на фиг. 4a идентична.
Фиг. 4b иллюстрирует ситуацию, в которой переход обнаруживается во втором субблоке, и контроллер тогда управляет последовательностью окон, чтобы выбиралось минимальное перекрытие 404, соответствующее "третьей длине перекрытия", проиллюстрированной по ссылке 229 на фиг. 2c. Таким образом, выбираются окна 406, 407, которые в этом варианте осуществления являются асимметричными окнами, имеющими короткую длину перекрытия, соответствующую "второму окну" на языке фиг. 1a и 1b. Кроме того, когда обнаруживается переход в третьем субблоке, выбирается вторая длина 405 перекрытия. Таким образом, окна 408, 409 соответствуют третьему окну, имеющему третью длину 405 перекрытия, но являются асимметричными окнами.
Кроме того, как проиллюстрировано на фиг. 4d, длина полного перекрытия определяется, когда переход находится на участке 4 перехода, и поэтому выбранными в этой ситуации окнами являются окна 401, 402, проиллюстрированные на фиг. 4a. При выборе перекрытия так, чтобы на одном из перекрывающихся преобразований содержался переход, как проиллюстрировано, на фиг. 4f или 4g соответственно проиллюстрирован случай, в котором переход находится во втором или третьем субблоке. Случаи, когда переход находится в нулевом или первом субблоке, затем рассматриваются отдельно, а также случаи, когда переход находится в четвертом или пятом субблоке. Поэтому приводится ссылка на фиг. 4e, иллюстрирующую ситуацию, в которой переход находится в нулевом субблоке, получается последовательность окон, которая проиллюстрирована на фиг. 4e, где имеется половинное перекрытие 405, которое затем переключается обратно на полное перекрытие 403. Это получается с помощью последовательности окон, образованной начальным окном 408, стоповым окном 409 и дополнительным окном 402 нормальной длины.
Фиг. 4f, с другой стороны, иллюстрирует ситуацию, в которой переход находится в первом субблоке, чтобы выбиралась короткая или третья длина 404 перекрытия, что возможно благодаря начальному окну 406 и стоповому окну 407, за которым идет окно 402 полного перекрытия. Таким образом, окно 408 или 409 на фиг. 4e иллюстрирует второе окно, имеющее вторую длину 405 перекрытия, а окно 406 и 407 соответствует третьему окну, имеющему третью длину 404 перекрытия.
Фиг. 4g иллюстрирует ситуацию, в которой переход обнаруживается в четвертом субблоке. Эта ситуация отражается первым окном 401, имеющим длину 403 полного перекрытия, и вторым окном 409, имеющим длину 405 половинного перекрытия, и дополнительным вторым окном 414, имеющим вторую длину 405 перекрытия. Однако правая сторона окна 414 зависит от длины перекрытия, определенной для следующего кадра, то есть в следующей области упреждения, начинающейся с момента времени, указанного номером 415 ссылки.
Таким образом, фиг. 4a-4g иллюстрируют ситуацию, в которой длина перекрытия определяется так, чтобы переход располагался только в одном окне, что обеспечивается тем, что в местоположении перехода, например в субблоке 4, оконные коэффициенты окна 414 равны 0, а оконные коэффициенты окна 409 равны 1.
Далее приводится ссылка на предпочтительный вариант осуществления, в котором длина преобразования выводится из ширины перекрытия. Фиг. 5a, 5b, 5c иллюстрируют три разных длины 403, 405, 404 перекрытия, где длина полного перекрытия определяется двумя первыми окнами, указанными по ссылкам 501 и 502. Кроме того, длина половинного перекрытия получается с помощью двух вторых окон, имеющих вторую длину перекрытия, проиллюстрированных по ссылкам 503 и 504, а третья длина 404 перекрытия получается с помощью двух третьих окон 505 и 506, имеющих третью длину 404 перекрытия. Полное перекрытие предпочтительно кодируется с использованием бита "0", половинное перекрытие кодируется с использованием битовой комбинации "11", а минимальное перекрытие кодируется с использованием битовой комбинации "10".
Таким образом, это кодирование полезно при определении ширины перекрытия и выборе длины преобразования, когда может использоваться TCX-20 и комбинация кадров TCX-5 и TCX-10.
В отличие от схем кодирования, которые выводят мгновенные перекрытия между преобразованиями из заданного выбора длин преобразования для пары кадров, то есть ширина перекрытия соответствует результату определения длины преобразования, предпочтительный вариант осуществления настоящего изобретения относится к системе кодирования, которая может управлять или выводить длину (длины) преобразования для использования для конкретного кадра, используя ширину перекрытия, связанную с тем кадром, и, при желании, ширину перекрытия предыдущего кадра, то есть длина преобразования соответствует данным от узла определения ширины перекрытия или, по отношению к фиг. 1a, с помощью взаимодействия детектора 106 местоположения перехода и контроллера 108. Фиг. 6a иллюстрирует таблицу кодирования, а фиг. 6b иллюстрирует соответствующую таблицу решений. На фиг. 5a, 5b и 5c сплошная линия представляет правую половину окна последнего преобразования в текущем кадре, а пунктирная линия представляет левую половину окна первого преобразования в следующем кадре.
Фиг. 6a иллюстрирует кодирование перекрытия и длины преобразования на основе положения перехода. В частности, решение о коротком/длинном преобразовании кодируется с использованием 1 бита, как указано в столбце 600, а перекрытие с первым окном следующего кадра кодируется с использованием кода переменной длины с 1 или 2 битами, как проиллюстрировано в столбце 602. Код 600 для решения о коротком/длинном преобразовании, с одной стороны, и двоичный код для ширины перекрытия в столбце 602 объединяются для получения так называемого кода перекрытия в столбце 603. Кроме того, перекрытие с первым окном следующего кадра определяется контроллером 108 в зависимости от индекса положения перехода в столбце 604, который определен детектором 106 перехода. В отличие от более ранних иллюстраций индекс положения перехода имеет увеличенный диапазон упреждения, начинающийся с двух более ранних временных интервалов, указанных -1 и -2, и для этой ситуации дополнительно сигнализируется полное перекрытие в этом варианте осуществления.
Таким образом, полное перекрытие сигнализируется для "отсутствия перехода" или положения перехода между -2 и 1. Кроме того, половинное перекрытие сигнализируется столбцом 605 для положений 2, 3 и 7 переходов, а минимальное перекрытие сигнализируется для положений 4, 5, 6 переходов.
Таким образом, индекс "-2" на фиг. 6a означает, что в предыдущем кадре в положении 6 был переход, а "-1" означает, что в предыдущем кадре в положении 7 был переход. Как указано, "отсутствует" означает, что никакого перехода не было обнаружено в области упреждения перехода.
Как указано, решение о коротком/длинном преобразовании и ширина перекрытия кодируются вместе с использованием кода перекрытия. Код перекрытия состоит из 1 бита для решения о коротком/длинном преобразовании и двоичного кода для ширины перекрытия, кодированного 1 или 2 битами. Код является кодом переменной длины, где автоматически обнаруживается, где начинается кодовое слово и заканчивается более раннее кодовое слово. Коды для решения о коротком/длинном преобразовании и для ширины перекрытия задаются на фиг. 6a. Например, когда решение о коротком/длинном преобразовании дает 1, и выбирается минимальное перекрытие, то есть двоичный код равен 10, код перекрытия равен 110.
Кроме того, фиг. 6a иллюстрирует ситуацию, в которой решение о коротком преобразовании принимается для всех положений переходов между -2 и 5, и длинное преобразование выбирается для отсутствия перехода или перехода в положении 6 или 7. Таким образом, фиг. 6a иллюстрирует ситуацию, в которой детектор местоположения перехода может обнаружить некоторый переход в некотором положении, и где независимо друг от друга или параллельно могут определяться решение о коротком/длинном преобразовании и перекрытие с первым окном следующего кадра, то есть можно вывести код 603 полного перекрытия. Подчеркивается, что специалисты в данной области техники поймут, что могут использоваться любые другие коды для кодирования разных коротких/длинных преобразований и разных перекрытий. Кроме того, может определяться и сигнализироваться более двух, то есть три или даже более длин преобразования, и вместе с тем может определяться и кодироваться более трех перекрытий, например четыре или пять разных длин перекрытия. Все это определяется, например, в ответ на работу детектора местоположения перехода по меньшей мере на четырех разных разделениях на кадр, или, как в варианте осуществления, работу на восьми разделениях на кадр, или, для более точного решения, работу на еще большем количестве разделений, например шестнадцати разделениях кадра.
На основе кода перекрытия для текущего кадра и для предыдущего кадра принимается решение для комбинации длины преобразования к использованию, как проиллюстрировано на фиг. 6b. Таким образом, фиг. 6b иллюстрирует решение о длине преобразования на основе предыдущего кода перекрытия и текущего кода перекрытия. Например, если предыдущий код перекрытия и текущий код перекрытия равны "00", то используется окно, например 401. Если предыдущий код перекрытия был равен 10, а текущий код перекрытия равен 00, то выбирается такое же окно. Однако, если предыдущий код равен 111, означая код половинного перекрытия, а текущий код перекрытия равен 00, то выбирается, например, окно 409 из фиг. 4c. Для предыдущего кода перекрытия 110 и текущего кода перекрытия 00 снова выбирается длинное преобразование, но с окном, аналогичным окну 407, и такая же ситуация повторяется для предыдущего кода перекрытия 010 и текущего кода перекрытия 00, то есть выбирается окно 407 из фиг. 4f. В конечном счете для предыдущего кода перекрытия 011 и для текущего кода перекрытия 00 выбирается окно, например 409 на фиг. 4e.
Другие окна выбираются для других комбинаций, и это более точно иллюстрируется по отношению к фиг. 7. Таким образом, фиг. 7 иллюстрирует некоторые из комбинаций длины преобразования вместе с положением перехода в текущем кадре и с кодами перекрытия для текущего и для предыдущего кадров. 110/010 – 111 на фиг. 7 означает, что предыдущий код перекрытия равен 110 или 010, а текущий код перекрытия равен 111. Поэтому фиг. 7 иллюстрирует разные комбинации. Например, верхнее левое изображение на фиг. 7 иллюстрирует минимальное перекрытие в начале последовательности из двух преобразований TCX-5 и последующее преобразование TCX-10, имеющее полное перекрытие. В отличие от этого изображение ниже того изображения иллюстрирует минимальное перекрытие с последующими четырьмя окнами TCX-5, где четвертое окно из окон TCX-5 имеет половинное перекрытие, и так далее. Таким образом, номера 700, 701 ссылок иллюстрируют последовательность из двух TCX-5 или двух коротких окон с последующим средним окном. Аналогичным образом номера 702, 703, 704, 705, 706, 707 ссылок иллюстрируют ситуацию с четырьмя короткими длинами преобразования или преобразованиями "TCX-5", тогда как номера 708, 709, 710, 711 ссылок иллюстрируют ситуацию, в которой в первый раз, то есть в начале последовательности, встречается окно со средней длиной преобразования, например окно TXC 10, с последующими двумя TCX-5 или окнами с короткой длиной преобразования. Последовательности с 700 по 711 на фиг. 7 можно представить другими такими последовательностями, или TCX-20, или окнами с большой длиной преобразования, имеющими разные перекрытия, например короткие перекрытия по ссылкам 700, 702, среднее перекрытие по ссылке 704 или длинные перекрытия по ссылкам 708 или 710. Вместе с тем последовательность может сопровождаться дополнительными такими последовательностями или может сопровождаться TCX-20, то есть окнами с длинным преобразованием, но с разной длиной перекрытия. Таким образом, последовательность 700, например, оканчивается длинным перекрытием, а последовательность 702, например, оканчивается средним перекрытием, или последовательность 706, например, оканчивается небольшой длиной перекрытия.
Как проиллюстрировано на фиг. 1a, информация об окнах, то есть код 603 перекрытия из фиг. 6a, проиллюстрированная по ссылке 112 на фиг. 1a, может ассоциироваться с каждым кодированным кадром с помощью выходного интерфейса 114.
Кроме того, преобразование, применяемое в конверторе 104, может быть MDCT или MDST, или иным вносящим наложение преобразованием, которое отличается тем, что количество спектральных значений в блоке спектральных значений меньше количества кадрированных выборок в блоке кадрированных выборок, введенном в преобразование, либо, по отношению к стороне декодера, в котором количество выходных выборок временной области больше количества спектральных значений, введенных в такое уменьшающее наложение или обратное преобразование.
Как проиллюстрировано на всех фиг. с 2 по 7, поддерживается постоянный растр кадра. Таким образом, контроллер 108 обеспечивает, что даже если выполняется переключение на более короткие длины преобразования, как проиллюстрировано, например, на фиг. 7, то всегда поддерживается один и тот же постоянный растр кадра. Это обеспечивается с использованием только таких особых окон, которые всегда приводят к аналогичной длине преобразования для каждого класса окон применительно к правильному размеру перекрытия. Таким образом, каждая длина преобразования TCX-5 задается имеющей такую область перекрытия и постоянную область между двумя областями перекрытия, что преобразование приводит к N/4 спектральным значениям, где N – количество спектральных значений в кадре. Форма и размер, и особенно длины перекрытия, у окон преобразования TCX 20 дополнительно проектируются таким образом, что это окно приводит к N спектральным выборкам после преобразования.
Фиг. 1c иллюстрирует предпочтительную реализацию управляемого конвертора 158 на стороне декодера. В частности, управляемый конвертор 158 содержит частотно-временной конвертор 170, подключенный после него модуль 172 синтезирующего кадрирования и завершающий модуль 174 сложения с перекрытием. В частности, частотно-временной конвертор выполняет преобразование, например преобразование DCT-IV, и последующую операцию развертки, чтобы выход частотно-временного конвертора 170 для первого или длинного окна содержал 2N выборок, хотя входом в частотно-временной конвертор были, например, N спектральных значений. С другой стороны, когда входом в частотно-временной конвертор являются N/8 спектральных значений, то выходом являются N/4 значений временной области, например, для операции MDCT.
Затем выход частотно-временного конвертора 170 вводится в модуль синтезирующего кадрирования, который применяет окно синтеза, которое предпочтительно точно такое же, как окно на стороне кодера. Таким образом, каждая выборка перед выполнением сложения с перекрытием кадрируется на два окна, чтобы результирующее "полное кадрирование" было квадратом соответствующих оконных коэффициентов, чтобы выполнялось условие Принсена-Брэдли, которое обсуждалось раньше.
В конечном счете модуль 174 сложения с перекрытием выполняет соответствующее правильное сложение с перекрытием, чтобы в конечном счете получить декодированный аудиосигнал на выходе 175. В частности, частотно-временной конвертор 170, модуль 172 синтезирующего кадрирования и модуль 174 сложения с перекрытием являются управляемыми и управляются, например, кодом 603 перекрытия, обсуждаемым применительно к фиг. 6a, или любой другой информацией, относящейся к ситуации, обсуждаемой применительно к фиг. 6b. Однако предпочтительно, чтобы соответствующая длина преобразования для частотно-временного конвертора определялась на основе предыдущего кода перекрытия и текущего кода перекрытия, используя таблицу решений длины преобразования. Кроме того, размер/форма окна также определяется на основе предыдущего кода перекрытия и текущего кода перекрытия, и то же самое справедливо для модуля сложения с перекрытием, чтобы модуль сложения с перекрытием применял максимальное перекрытие, среднее перекрытие или минимальное перекрытие, которое сигнализировано.
Таким образом, предпочтительно, чтобы контроллер 180 в декодере на фиг. 1c принимал коды перекрытия, то есть предыдущий код 606 перекрытия и текущий код 607 перекрытия, и из этой информации определял перекрытие и окно для блока спектральных значений.
Таким образом, определяется каждое окно и соответствующий размер преобразования, ассоциированный с тем окном. В предпочтительных вариантах осуществления, где MDCT используется в качестве преобразования, а обратное MDCT используется для обратного преобразования, размер окна в два раза больше длины преобразования, или длина преобразования составляет половину размера окна.
Фиг. 1d иллюстрирует дополнительный вариант осуществления настоящего изобретения, реализованный с помощью мобильного устройства, где это мобильное устройство содержит, с одной стороны, кодер 195, а с другой стороны, декодер 196. Кроме того, в соответствии с предпочтительным вариантом осуществления настоящего изобретения кодер 105 и декодер 106 извлекают одинаковую информацию об окнах только из одного запоминающего устройства 197, поскольку используемые в кодере 195 окна и используемые в декодере 196 окна идентичны друг другу. Таким образом, декодер содержит постоянное запоминающее устройство 197 или оперативное запоминающее устройство, или в общем, любое запоминающее устройство 197, в котором хранится только один набор последовательностей окон или окон для использования в кодере и в декодере. Это выгодно из-за того, что разные оконные коэффициенты для разных окон не нужно сохранять дважды, как при наличии одного набора для кодера и одного набора для декодера. Вместо этого благодаря тому, что в соответствии с настоящим изобретением в кодере и декодере используются идентичные окна и последовательности окон, нужно хранить только один набор оконных коэффициентов. Поэтому использование памяти у патентоспособного мобильного устройства, проиллюстрированного на фиг. 1d, существенно уменьшается относительно другой идеи, в которой кодер и декодер имеют разные окна, или в которой выполняется некоторая постобработка с обработкой помимо операций по кадрированию.
Далее приводится ссылка на дополнительный предпочтительный вариант осуществления относительно варианта осуществления с переключением преобразования/длины преобразования.
Схема преобразования и адаптивного к длине перекрытия кодирования, указанная выше, была реализована в тракте кодированного возбуждения с преобразованием (TCX) в кодере LD-USAC, разновидности xHE-AAC [5] с малой задержкой, при длине кадра в 20 мс и проверена на монофоническом сигнале 48 кбит/с. При этой конфигурации LD-USAC работает в режиме "только TCX" с базовой длиной кадра в 512 выборок и перекрытием длинного преобразования в 256 выборок, то есть 33%, в условиях (псевдо-)стационарного входа. Кодер включает в себя узел обнаружения перехода, чей выход вводится в узел определения длины преобразования и в патентоспособный узел определения ширины перекрытия. Для кодирования доступны три длины преобразования: длина TCX-20 с 512 коэффициентами MDCT, длина TCX-10 с 256 коэффициентами MDCT и специальная длина TCX-5 со 128 коэффициентами MDCT. Соответственно, на каждый кадр может использоваться и передаваться одна из трех ширин перекрытия: максимальное перекрытие из 256 базовых выборок (10 мс), половинное перекрытие из 128 базовых выборок (5 мс) и минимальное перекрытие из 16 выборок (0,6 мс). Для каждого кадра длины преобразования должны выбираться так, что сумма длин всех преобразований в том кадре равна базовой длине кадра, то есть 512 выборок.
В предпочтительном варианте осуществления патентоспособной системы кодирования кодер работает следующим образом:
1. Узел обнаружения перехода идентифицирует наличие и, если применимо, местоположение возникновения самого значительного перехода на новом участке сигнала заданного кадра (то есть без области перекрытия между текущим и предыдущим кадром). Разрешение индекса, описывающего местоположение перехода, составляет 1/8 от длины кадра, поэтому диапазоном индекса является 0, …, 7.
2. Если не обнаружено никакого перехода, или если индекс местоположения перехода равен 6 или 7, то соответствующий кадр кодируется с использованием преобразования TCX-20 по решению узла определения длины преобразования. В противном случае используется комбинация преобразований TCX-10 и/или TCX-5: либо 2x TCX-10, либо 4x TCX-5, либо TCX-10 с последующими 2x TCX-5, либо 2x TCX-5 с последующим TCX-10.
3. Узел определения ширины перекрытия теперь управляет формами перекрытия у преобразований, используемых в текущем кадре (исключая уже выбранное перекрытие с прошлым кадром), в соответствии с перечисленными выше целями, так что выбираются самые длинные возможные перекрытия, которые не противоречат упомянутым целям. В частности, если кадр является TCX-20, и индекс местоположения перехода равен 6 или 7, то узел перекрытия возвращает минимальное или половинное перекрытие соответственно. Если никакой нестационарности сигнала не присутствует в кадре, то используется максимальное перекрытие.
4. Кроме того, если комбинация TCX-10/-5 возвращена узлом определения длины преобразования для (нестационарного) кадра, то узел определения ширины перекрытия управляет точным составом длин преобразования в том кадре. В частности, если максимальное перекрытие используется в предыдущем, а также в текущем кадре, то в текущем кадре применяются 2x TCX-5 с последующим TCX-10, причем первое из преобразований TCX-5 является патентоспособным преобразованием перехода с двойным перекрытием. Если ширина перекрытия либо прошлого кадра, либо текущего кадра меньше максимальной, то также используется одна из смешанных TCX-10/-5 конфигураций. Если прошлый и текущий кадр имеют перекрытие меньше максимального, то используются 4x TCX-5.
5. Теперь кодер переходит к кадрированию сигнала и фактическим MDCT для кадра. Особое внимание нужно обратить на порядок операций по кадрированию при наличии патентоспособного окна перехода с двойным перекрытием, чтобы добиться точного восстановления после декодирования. Оставшаяся часть процесса кодирования аналогична xHE-AAC. При желании к отдельным преобразованиям применяется TNS, и может выполняться группирование двух наборов коэффициентов MDCT TCX-5 в один TCX-10-подобный набор (перемеженных) коэффициентов, чтобы сэкономить дополнительную информацию. Для каждого кадра декодеру передается одно значение ширины перекрытия, а также один 1-битовый признак, указывающий кодирование TCX-20 или не TCX-20.
Как и кодер, подходящий декодер в соответствии с предпочтительным вариантом осуществления отличает узел определения ширины перекрытия, интерпретирующий переданные значения ширины перекрытия для управления длиной и кадрированием в обратных MDCT, чтобы кодер и декодер были полностью синхронизированы в отношении используемых преобразований. Как и в кодере, порядок операций по кадрированию и свертке после отдельных MDCT важен для получения полного восстановления сигнала.
Далее дополнительный вариант осуществления изобретения обсуждается и иллюстрируется применительно к фиг. 8–15f. Этот аспект, который также называется "аспектом множественного перекрытия", можно объединить с вариантом осуществления переключения ширины перекрытия и длины преобразования, обсуждаемым по отношению к фиг. 1–7, или можно реализовать отдельно от этого аспекта.
Изобретение на стороне кодера иллюстрируется на фиг. 8a, а сторона декодера иллюстрируется на фиг. 8b. В частности, устройство для формирования кодированного сигнала или кодер, проиллюстрированное на фиг. 8a, содержит контроллер последовательности окон для формирования информации 809 о последовательности окон, перенаправляемой, например, препроцессору 802, конвертору 804 спектра или выходному интерфейсу 810, как проиллюстрировано на фиг. 8a. Информация о последовательности окон указывает первую оконную функцию для формирования первого кадра спектральных значений, вторую оконную функцию и одну или несколько третьих оконных функций для формирования второго кадра спектральных значений. Первая оконная функция, вторая оконная функция и одна или несколько третьих оконных функций перекрываются в области с множественным перекрытием.
Эта область с множественным перекрытием проиллюстрирована, например, по ссылке 1300 на фиг. 13 или фиг. 14b, или фиг. 15e, или фиг. 15f. Таким образом, в этой области 1300 с множественным перекрытием по меньшей мере три оконные функции, то есть первая оконная функция, проиллюстрированная по отношению к фиг. 15f по ссылке 1500, вторая оконная функция 1502 и третья оконная функция 1503, перекрывают друг друга в области 1300 с множественным перекрытием. Также может быть и большее перекрытие, например перекрытие четырех, пяти или даже более окон. В качестве альтернативы фиг. 15e иллюстрирует ситуацию, в которой опять имеем первую оконную функцию 1500, вторую оконную функцию 1502, но теперь четыре третьих оконных функции 1503 в отличие от одной третьей оконной функции 1503 из фиг. 15f.
Чтобы правильно обрабатывать эту область с множественным перекрытием, которая приводит к значительному сокращению задержки, необходимой для области упреждения перехода, предоставляется препроцессор 102. Препроцессор конфигурируется для кадрирования второго блока выборок, соответствующего второму окну и одной или нескольким третьим оконным функциям, используя вспомогательную оконную функцию, чтобы получить второй блок кадрированных выборок. Кроме того, препроцессор конфигурируется для предварительной обработки второго блока кадрированных выборок, используя операцию свертки участка второго блока, перекрывающегося с первым блоком, в участок с множественным перекрытием, чтобы получить предварительно обработанный второй блок кадрированных выборок, имеющий модифицированный участок с множественным перекрытием. Кроме того, конвертор 804 спектра конфигурируется для применения вносящего наложение преобразования к первому блоку выборок, используя первое окно, чтобы получить первый кадр спектральных значений. Кроме того, конвертор спектра конфигурируется для применения вносящего наложение преобразования к первому участку предварительно обработанного второго блока кадрированных выборок, используя вторую оконную функцию, чтобы получить первый участок спектральных выборок второго кадра, и применения вносящего наложение преобразования ко второму участку предварительно обработанного второго блока кадрированных выборок, используя одну или несколько третьих оконных функций, чтобы получить второй участок спектральных выборок второго кадра. Кроме того, процессор 806, указанный как "кодирующий процессор", предоставляется в кодере из фиг. 8a для обработки первого кадра и второго кадра спектральных значений, чтобы получить кодированные кадры аудиосигнала на выходе 807 блока 806. Таким образом, кодирующий процессор может быть идентичен или отличаться от кодирующего процессора 110 из фиг. 1a и может выполнять любое из общеизвестных MPEG или AMR или любые другие возможности кодирования в данной области техники.
Далее приводится ссылка на фиг. 13. Фиг. 13 еще раз иллюстрирует вторую половину первой оконной функции 1500, вторую оконную функцию 1502 и, на втором изображении фиг. 13, две третьи оконные функции 1503. В отличие от этого верхняя иллюстрация на фиг. 13 снова иллюстрирует первую оконную функцию 1500, вторую оконную функцию 1502 и, в отличие, например, от фиг. 15f и почти аналогично фиг. 15e, четыре третьих оконных функции 1503. В качестве альтернативы количество третьих оконных функций также может быть равно трем, пяти или около этого.
Кроме того, фиг. 13 дополнительно иллюстрирует ситуацию с другой первой оконной функцией 1500’, другой второй оконной функцией 1502’ и такой же третьей оконной функцией 1503. Отличие между 1500 и 1500’ состоит в том, что длина перекрытия у функций 1500’ и 1502’ составляет половину относительно окон 1500, 1502. Таким образом, ситуация с оконным функциями 1500’ и 1502’ заключается в том, что длина перекрытия является половинным перекрытием, проиллюстрированным по ссылке 218, например на фиг. 2d, тогда как длина полного перекрытия соответствует полному кадру, который проиллюстрирован, например, по ссылке 203 на фиг. 2a или фиг. 13. Поэтому оконные функции 1500’ и 1502’, проиллюстрированные на этой фигуре, представляют комбинацию аспекта множественного перекрытия и аспекта определения ширины перекрытия.
Чтобы лучше объяснить процедуру в препроцессоре 802 на стороне кодера, приводится ссылка на иллюстрацию на фиг. 11a, с одной стороны, и блок-схемы алгоритмов на фиг. 9a, 9b, с другой стороны. Касательно декодера приводится ссылка на соответствующие иллюстрации на фиг. 8b, фиг. 10a, 10b и иллюстрацию на фиг. 11b. Кроме того, кодер также иллюстрируется на фиг. 12a, а декодер иллюстрируется на фиг. 12b.
В частности, фиг. 11a иллюстрирует еще раз первую оконную функцию 1500 и по меньшей мере участок второй оконной функции 1502, и либо четыре третьих оконных функции 1503, либо одну третью оконную функцию 1503. В частности, фиг. 11a дополнительно иллюстрирует вспомогательную оконную функцию 1100. Вспомогательная оконная функция 1100 содержит первый участок 1100a, совпадающий с первым возрастающим участком 1500a первой оконной функции 1500. Кроме того, вспомогательная оконная функция 1100 содержит вторую неперекрывающуюся часть 1100b, предпочтительно имеющую оконные коэффициенты, равные единице, и третий участок 1100c, соответствующий убывающему, или понижающемуся, или правому участку одной или нескольких третьих оконных функций. Таким образом, вспомогательная оконная функция 1100 охватывает вторую половину более раннего кадра, проиллюстрированного по ссылке 1102, первую половину текущего кадра i, указанную по ссылке 1103, вторую половину текущего кадра i, указанную по ссылке 1104, и первый небольшой участок 1105, охваченный частью 1100c вспомогательной оконной функции. Как становится понятно из фиг. 11a, вспомогательная оконная функция рассматривается как "начальная последовательность окон" или соответствует такой "начальной последовательности окон", как если бы в кадр i + 1 нужно было вставить последовательность коротких окон. Однако важно, что последовательность коротких окон уже вставлена в текущий кадр, а не в предстоящий кадр i + 1.
Функциональные возможности препроцессора затем иллюстрируются на фиг. 11a. Препроцессор предварительно обрабатывает второй блок кадрированных выборок, полученный путем кадрирования с использованием вспомогательной оконной функции, использующей в работе голосование, указанное как "начальное наложение свертки, кадр i". Таким образом, свертывается крайний левый участок второго блока кадрированных выборок, указанный по ссылке 1110. Этот участок 1110 является участком второго блока кадрированных выборок, перекрывающимся с предыдущей первой оконной функцией 1500, то есть участком второго блока кадрированных выборок, соответствующим периоду времени 1102 и находящимся в предыдущем кадре i–1. Из-за того, что эта операция свертки участка 1110 теперь влияет на область 1300 перекрытия, выполняемая препроцессором операция свертки приводит к модифицированному участку с множественным перекрытием. Теперь конвертор спектра применяет операцию, проиллюстрированную на линии из фиг. 11a, указанной как "наложения внутренней свертки". В частности, конвертор спектра применяет вносящее наложение преобразование к первому блоку выборок, используя первую оконную функцию, проиллюстрированную для кадра i–1. Вносящее наложение преобразование содержит операцию свертки, проиллюстрированную по ссылке 1120, и, например, последующее преобразование DCT-IV, указанное по ссылке 1122. С этой целью необходима первая оконная функция 1500, чтобы получить форму перед операцией 1120 свертки для кадра i–1. Кроме того, конвертор спектра применяет вносящее наложение преобразование к первому участку, указанному элементом 1131 на фиг. 11a. Это выполняется с использованием второй оконной функции 1502, в частности, правого участка второй оконной функции 1502. Эта операция приводит к первому участку спектральных выборок второго кадра, полученных путем преобразования 1132, где преобразование 1132 еще раз представляет операцию DCT-IV, которая вместе с соответствующей операцией свертки составляет вносящее наложение преобразование, но теперь только на правом перекрывающемся участке блока 1131.
Кроме того, конвертор спектра конфигурируется для применения вносящего наложение преобразования ко второму участку 1133 предварительно обработанного второго блока 1130, используя одну или несколько третьих оконных функций 1503 для получения второго участка 1135 спектральных выборок второго кадра. Таким образом, чтобы получить второй участок 1135 спектральных выборок, можно применить четыре преобразования DCT-IV N/8 или одно преобразование DCT-IV N/2. Количество преобразований и длины зависят от количества третьих оконных функций. Как правило, длина, преобразование или количество спектральных выборок на втором участке 1135 равно количеству спектральных выборок в кадре минус длина преобразования 1132, и результат затем делят на количество используемых третьих оконных функций.
Таким образом, препроцессор 802 обычно действует для кадрирования 902 (фиг. 9a) аудиосигнала, используя вспомогательную оконную функцию 1100 для получения второго блока кадрированных выборок. Затем процессор 904 предпочтительно применяет операцию свертки, указанную по ссылке 1110 на фиг. 11a, чтобы получить предварительно обработанный второй блок кадрированных выборок с модифицированным участком 1300 с множественным перекрытием. Затем конвертор 906 применяет преобразования с использованием первой, второй и третьей оконных функций, чтобы получить первый кадр спектральных значений 1122, первый участок 1132 второго кадра и второй участок 1135 второго кадра или кадра i в нотации фиг. 11a.
В предпочтительном варианте осуществления, проиллюстрированном по отношению к фиг. 9b, вспомогательная оконная функция определяется (этап 910) путем ссылки на первую оконную функцию, и для примера путем выбора первого участка 1500a первой оконной функции в качестве первого участка 1100a вспомогательной оконной функции 1100. Кроме того, определяется неперекрывающаяся часть 1100b (ее оконные коэффициенты принимаются за соответствующую длину), а затем определяется третья часть 1100c, опять взяв для примера вторую часть короткой оконной функции.
Затем аудиосигнал кадрируется (этап 912) с помощью этой вспомогательной оконной функции в правильном отношении к предыдущем или первому кадру i–1, проиллюстрированному на фиг. 11a. Затем, как проиллюстрировано по ссылке 914 на фиг. 9b, свертывается левый участок 1110 и, предпочтительно, правый участок 1111. На этапе 916 выполняется свертка перекрывающихся участков, проиллюстрированная заштрихованными линиями в элементе e) или f) во внутренней области. Кроме того, как проиллюстрировано по ссылке 918, если имеется больше третьих оконных функций, как на фиг. 11a, фрагмент e) изображения, то также выполняется свертка перекрывающихся участков третьих оконных функций. Однако, если имеется только одна третья оконная функция, как проиллюстрировано на фиг. 11a, фрагмент f) изображения, то управление переходит от этапа 916 к этапу 920 напрямую без этапа 918. На этапе 920 операции DCT выполняются с использованием более коротких ядер DCT, чем ядро DCT для первого кадра. Ядром DCT для фрагмента e) изображения является N/2 для второй оконной функции и N/8 для третьих оконных функций. В отличие от этого, когда имеется только одна третья оконная функция, ядро преобразования равно N/2 для второй оконной функции и равно N/2 для одной третьей оконной функции.
Таким образом, становится понятно, что область 1300 с множественным перекрытием кадрируется два раза. Первое кадрирование выполняется первым участком 1100a вспомогательного окна, а второе кадрирование выполняется второй половиной первой третьей оконной функции 1503, как проиллюстрировано на фрагменте e) или f) изображения на фиг. 11a.
Снова приводится ссылка на фиг. 13. Как обсуждалось применительно к фиг. 1a или применительно к фиг. 8a, контроллер последовательности окон формирует определенные формы окон. В варианте осуществления контроллер последовательности окон конфигурируется содержащим детектор 106 местоположения перехода. Когда обнаруживается переход на участках 0 или 1 обнаружения перехода, кодер управляется для перехода в режим участка с множественным перекрытием, чтобы эти переходы, указанные по ссылке 1305, ограничивались нахождением только в одном третьем окне или в двух соседних третьих окнах. В частности, левый переход 1305 ограничивается нахождением только в первой короткой оконной функции, где правый переход из переходов 1305 находится в оконных функциях с первой по третью. Однако, когда определяется, что переходы располагаются в области, отличной от 0, например в области 1, 2, 3 или вроде этого, то может выполняться обработка без области с множественным перекрытием, например, аналогично обсуждаемой применительно к фиг. 6a, фиг. 6b, фиг. 7 или вроде них.
Однако, в отличие от этого, обработка области с множественным перекрытием также может выполняться применительно к приложению переключения окон, где еще больший набор коротких окон можно переключить для текущего кадра, когда обнаруживается переход, чтобы для кадрирования использовалось либо длинное окно, либо заданное количество коротких окон, предпочтительно в одном и том же растре блока или кадра. Первое окно соответствует окну 1500, например на фиг. 13, второе окно соответствует окну 1502, и переключение выполняется без обращения к некоторому местоположению перехода на некоторое количество третьих оконных функций, только когда где-нибудь в текущем кадре обнаруживается переход, не зная о том, где точно в кадре располагается переход.
Однако для поддержания количества третьих оконных функций как можно меньше предпочтительно, чтобы переключение в режим участка с множественным перекрытием, и дополнительное переключение перекрытия преобразования и выбор длины преобразования выполнялись в зависимости от определенного местоположения перехода в кадре, то есть в одном из, предпочтительно, четырех или даже восьми разных участков кадра или временного участка, соответствующего кадру, где этот временной участок тогда равен половине размера длинного окна, например длинного окна 1500 из фиг. 13. Предпочтительно, чтобы участок с множественным перекрытием располагался, как видно на фиг. 13, до начала 208 области упреждения (проиллюстрированного на фиг. 2, с одной стороны, и на фиг. 13, с другой стороны).
На стороне декодера выполняется аналогичная обработка. В варианте осуществления устройства для декодирования кодированного аудиосигнала 821, который содержит кодированный первый кадр и кодированный второй кадр, необходим декодирующий процессор 824 из фиг. 8b для обработки первого кодированного кадра и второго кодированного кадра, чтобы получить первый кадр спектральных значений и второй кадр спектральных значений, причем первый и второй кадры содержат участки наложения. Временной конвертор 826 подключается к декодирующему процессору 824, и временной конвертор 826 конфигурируется для применения преобразования к этому первому кадру с использованием первой оконной функции, чтобы получить первый блок выборок. Кроме того, временной конвертор 826 конфигурируется для применения преобразования к первому участку второго кадра с использованием второй оконной функции и применения преобразования ко второму участку второго кадра с использованием одной или нескольких третьих оконных функций, чтобы получить второй блок выборок. Как обсуждалось применительно к фиг. 1a, первая оконная функция 1500, вторая оконная функция 1502 и одна или несколько третьих оконных функций 1503 вместе содержат область 1300 с множественным перекрытием.
Кроме того, декодер содержит постпроцессор 828 для постобработки второго блока выборок, используя операцию развертки, чтобы получить постобработанный второй блок выборок, имеющий участок второго блока выборок, перекрывающийся с первым блоком выборок в области с множественным перекрытием. Кроме того, постпроцессор 828 конфигурируется для кадрирования постобработанного второго блока выборок с использованием вспомогательной оконной функции, обсуждаемой применительно к фиг. 8a и фиг. 11a. Постпроцессор 828 выполняет сложение с перекрытием кадрированного постобработанного второго блока выборок и первого блока выборок, чтобы получить декодированный аудиосигнал, указанный по ссылке 829 из фиг. 8b или в блоке 175 из фиг. 1c. Таким образом, постпроцессор 828 из фиг. 8b в основном может обладать функциональными возможностями модуля 172 синтезирующего кадрирования по отношению к вспомогательной оконной функции и модулю 174 сложения с перекрытием.
Далее функциональные возможности постпроцессора в сотрудничестве с временным конвертором обсуждаются относительно иллюстрации на фиг. 11b, которая иллюстрирует обратную обработку по отношению к иллюстрации кодера на фиг. 11a. Первый кадр 1142 спектральных значений вводится в N-размерное обратное преобразование 1161, а первый участок 1152 второго кадра вводится в обратное преобразование 1162 N/2, и в зависимости от количества третьих оконных функций второй участок 1155 второго кадра вводится либо в четыре коротких преобразования 1163 N/8, либо в одно преобразование 1162 N/2, аналогично первому участку 1152 второго кадра.
Эта процедура выполняется временным конвертором. Временной конвертор дополнительно использует первую оконную функцию для выполнения кадрирования вместе с выполненной раньше операцией развертки, проиллюстрированной по ссылке 1170 на фиг. 11b. Кроме того, вторая оконная функция используется при применении процедур к первому участку 1152, проиллюстрированных по ссылке 1172. В частности, выполняется развертка крайнего правого участка 1173 второй оконной функции и второе последующее кадрирование, тогда как на левой стороне кадра не выполняется никакой внутренней развертки. Кроме того, преобразование выполняет определенную развертку и последующее кадрирование, и дополнительное сложение с перекрытием не только с первым участком 1152 второго кадра, но также со вторым участком 1155 второго кадра, как проиллюстрировано по ссылке 1172 на фиг. 11b. Если имеется только одна третья оконная функция, проиллюстрированная на фрагменте f) изображения на фиг. 11b, то выполняются только одна операция развертки с обеих сторон вместе с кадрированием, используя правый участок второй оконной функции и левый участок третьей оконной функции, и последующее сложение с перекрытием в перекрывающемся диапазоне 1174.
Затем постпроцессор применяет постобработку с использованием операции развертки, проиллюстрированной по ссылке 1175, с первым участком из результата процедуры 1172, чтобы получить участок 1176a, заходящий в предыдущий кадр, и предпочтительно участок 1176b, заходящий в следующий кадр. Затем выполняется кадрирование с развернутым участком 1176a, 1176b и, конечно, с участком в текущем кадре i с использованием вспомогательной оконной функции, чтобы получить состояние, проиллюстрированное по ссылке 1175. Затем завершающее сложение с перекрытием кадрированного вспомогательной оконной функцией и постобработанного второго блока выборок и первого блока выборок выполняется в перекрывающемся диапазоне 1180, чтобы получить окончательный декодированный аудиосигнал, соответствующий этому перекрывающемуся диапазону 1180. Кроме того, эта процедура дополнительно приводит к последующему участку декодированных выборок 1181 аудиосигнала из-за того, что отсутствует перекрытие, и следующая секция 1182 получается путем перекрытия с соответствующей частью оконной функции для кадра i+1, следующего во времени за кадром i.
Таким образом, как проиллюстрировано на фиг. 10a, способ на стороне декодера содержит применение 1000 преобразования к первому кадру с использованием первой оконной функции, применение 1010 преобразования к первому участку второго кадра с использованием второй оконной функции и применение 1020 преобразования ко второму участку второго кадра с использованием третьей оконной функции (функций). Затем на этапе 1030 выполняется операция развертки, и на этапе 1040 выполняется кадрирование с использованием вспомогательной оконной функции, и в конечном счете на этапе 1050 выполняется сложение с перекрытием кадрированного постобработанного второго блока и первого блока, чтобы получить декодированный аудиосигнал в конце проиллюстрированной, например, на фиг. 11b обработки.
Как проиллюстрировано на фиг. 10b, предпочтительные варианты осуществления содержат выполнение операции обратного DCT для каждого участка второго кадра, то есть выполнение нескольких операций DCT с более короткими длинами относительно предыдущего кадра i–1, где использовалось длинное окно 1500. На этапе 1070 развертка участков внутреннего наложения выполняется в виде операции, проиллюстрированной по ссылке 1172, и развертка предпочтительно является зеркальным отображением на соответствующей границе, проиллюстрированной вертикальными линиями на линии, указанной ссылкой 1172 на фиг. 11b. Затем на этапе 1080 выполняется кадрирование с использованием второй и третьей оконных функций в блоке 1184, и в этом блоке выполняется последующее сложение с перекрытием результата кадрирования, как проиллюстрировано по ссылке 1090. Затем, как указано по ссылке 192, выполняется развертка левого/правого или, другими словами, более раннего/более позднего участков наложения в результате сложения с перекрытием, чтобы получить участки 1176a, заходящие в предыдущий кадр, и участок 1176b, заходящий в следующий кадр. Однако представление по ссылке 1175 вытекает только из кадрирования с использованием вспомогательной оконной функции, проиллюстрированной по ссылке 1094. Затем на этапе 1906 сложение с перекрытием с первым блоком выборок выполняется после кадрирования с использованием вспомогательной оконной функции.
Далее приводится ссылка на фиг. 12a и фиг. 12b. Элемент a на фиг. 12a соответствует процедуре на первой линии фиг. 11a. Процедура на фрагменте b) изображения соответствует процедуре, выполняемой на второй и третьей линиях фиг. 11a, а процедуры, проиллюстрированные в элементе c) на фиг. 12a, соответствуют процедурам на последних двух линиях фиг. 11a. По аналогии представление на стороне декодера соответствует фиг. 12b. В частности, первые две линии фиг. 11b соответствуют фрагменту f) изображения на фиг. 12b. Третья и четвертая линии соответствуют элементу e) на фиг. 12b, и последняя линия на фиг. 12b соответствует последней линии на фиг. 11b.
Фиг. 14a иллюстрирует ситуацию, в которой контроллер последовательности окон на стороне кодера или элементы 824, 826, 828 на стороне декодера конфигурируются для переключения между ситуацией без множественного перекрытия, как на фиг. 14a, и ситуацией с множественным перекрытием, проиллюстрированной на фиг. 14b. Таким образом, когда переход обнаруживается на участке 0 перехода, одна процедура состоит не в применении участка с множественным перекрытием, а в переключении с окон TCX-20 на короткие окна TCX-10 с одиночным перекрытием. Однако предпочтительно, чтобы переключение на участок с множественным перекрытием выполнялось путем применения последовательности окон, содержащей первое окно 1400, второе окно 1402 и одно или, в варианте осуществления из фиг. 14b, два третьих окна 1403.
Перекрытия и размеры окон из фиг. 14b несколько отличаются от иллюстрации на фиг. 13, но становится понятно, что общие процедуры касательно стороны кодера на фиг. 11a или стороны декодера на фиг. 11b происходят точно так же.
Далее обсуждается фиг. 15. В частности, фиг. 15 иллюстрирует в виде черных прямоугольников упреждение 1590 обнаружения перехода и длительность результирующего опережающего эха 1595. Фиг. 15a иллюстрирует традиционную последовательность типа высокоэффективного AAC, содержащую длинное начальное окно, восемь коротких окон, длинное стоповое окно и так далее. Необходимое упреждение большое и достигает N + N/2 + N/16, но опережающее эхо 1595 небольшое. По аналогии фиг. 15b иллюстрирует традиционную процедуру обнаружения перехода типа AAC с малой задержкой, приводящую к последовательности окон, содержащей длинную последовательность, длинное начальное окно, окно с малым перекрытием и длинное стоповое окно. Упреждение обнаружения перехода такое же, как на фиг. 15a, но длительность опережающего эха больше, чем на фиг. 15a. Однако с другой стороны эффективность выше из-за того, что чем короче используются окна, тем ниже эффективность передачи битов.
Фиг. 15c и 15d иллюстрируют реализацию процедуры высокоэффективной AAC или AAC с малой задержкой с уменьшенным упреждением обнаружения перехода в N/16 выборок, и показаны только длинные последовательности, возможные при уменьшенном упреждении обнаружения перехода в N/16 выборок. Если последовательность состоит из длинного окна, длинного окна, длинного начального окна, длинного стопового окна и так далее, как проиллюстрировано на фиг. 15d, то уменьшается только запаздывающее эхо по сравнению с фиг. 15c, а опережающее эхо 1595 такое же. Поэтому фиг. 15c, d иллюстрируют короткое упреждение, аналогичное патентоспособным фиг. 15e и 15f. Если реализовать участок с множественным перекрытием, как на фиг. 15c и 15e, то можно использовать только последовательности, как на тех фигурах, но любое переключение на короткое окно невозможно. Таким образом, участок с множественным перекрытием допускает либо переключение на короткие окна, чтобы уменьшить опережающие/запаздывающие эхо, либо использование короткой задержки упреждения, или обе возможности, чтобы уменьшить задержку и уменьшить опережающие/запаздывающие эхо.
Фиг. 15e иллюстрирует последовательность высокоэффективной AAC с уменьшенным упреждением обнаружения перехода в N/16 выборок и предпочтительной областью 1300 с множественным перекрытием. Последовательность содержит длинное окно, дополнительное длинное окно 1500, дополнительную начальную последовательность 1502, четыре коротких последовательности 1503 и длинное стоповое окно 1504. Как становится понятно, упреждение небольшое, как и опережающее эхо. Аналогичная ситуация получается для фиг. 15f, иллюстрирующей такую же конфигурацию, как на фиг. 15e, но только с одной третьей оконной функцией вместо четырех коротких последовательностей.
Хотя настоящее изобретение описано применительно к блок-схемам, где блоки представляют реальные или логические аппаратные компоненты, настоящее изобретение также можно реализовать с помощью реализуемого компьютером способа. В последнем случае блоки представляют соответствующие этапы способа, где эти этапы обозначают функциональные возможности, реализуемые соответствующими логическими или физическими аппаратными блоками.
Хотя некоторые аспекты описаны применительно к устройству, понято, что эти аспекты также представляют собой описание соответствующего способа, где блок или устройство соответствует этапу способа или признаку этапа способа. По аналогии аспекты, описанные применительно к этапу способа, также представляют собой описание соответствующего блока или элемента либо признака соответствующего устройства. Некоторые или все этапы способа могут выполняться аппаратным устройством (или с его использованием), например микропроцессором, программируемым компьютером или электронной схемой. В некоторых вариантах осуществления какой-нибудь один или несколько самых важных этапов способа могут выполняться таким устройством.
Патентоспособный переданный или кодированный сигнал может храниться на цифровом носителе информации или может передаваться по передающей среде, например беспроводной передающей среде или проводной передающей среде, такой как Интернет.
В зависимости от некоторых требований к реализации варианты осуществления изобретения можно реализовать в аппаратных средствах или в программном обеспечении. Реализация может выполняться с использованием цифрового носителя информации, например дискеты, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM или флэш-памяти, имеющего сохраненные на нем электронно считываемые управляющие сигналы, которые взаимодействуют (или допускают взаимодействие) с программируемой компьютерной системой так, что выполняется соответствующий способ. Поэтому цифровой носитель информации может быть машиночитаемым.
Некоторые варианты осуществления в соответствии с изобретением содержат носитель данных, имеющий электронно считываемые управляющие сигналы, которые допускают взаимодействие с программируемой компьютерной системой так, что выполняется один из способов, описанных в этом документе.
Как правило, варианты осуществления настоящего изобретения могут быть реализованы как компьютерный программный продукт с программным кодом, причем программный код действует для выполнения одного из способов, когда компьютерный программный продукт выполняется на компьютере. Программный код может храниться, например, на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для выполнения одного из описанных в этом документе способов, сохраненную на машиночитаемом носителе.
Другими словами, вариант осуществления патентоспособного способа поэтому является компьютерной программой, имеющей программный код для выполнения одного из описанных в этом документе способов, когда компьютерная программа выполняется на компьютере.
Дополнительный вариант осуществления патентоспособного способа поэтому является носителем данных (или постоянным носителем информации, например цифровым носителем информации или машиночитаемым носителем), содержащим записанную на нем компьютерную программу для выполнения одного из способов, описанных в этом документе. Носитель данных, цифровой носитель информации или записанный носитель обычно являются материальными и/или постоянными.
Дополнительный вариант осуществления изобретательского способа поэтому является потоком данных или последовательностью сигналов, представляющих компьютерную программу для выполнения одного из способов, описанных в этом документе. Поток данных или последовательность сигналов могут конфигурироваться, например, для передачи по соединению передачи данных, например по Интернету.
Дополнительный вариант осуществления содержит средство обработки, например компьютер или программируемое логическое устройство, сконфигурированные или приспособленные для выполнения одного из способов, описанных в этом документе.
Дополнительный вариант осуществления содержит компьютер, имеющий установленную на нем компьютерную программу для выполнения одного из способов, описанных в этом документе.
Дополнительный вариант осуществления в соответствии с изобретением содержит устройство или систему, сконфигурированные для передачи приемнику (например, электронно или оптически) компьютерной программы для выполнения одного из способов, описанных в этом документе. Приемник может быть, например, компьютером, мобильным устройством, запоминающим устройством или т. п. Устройство или система могут, например, содержать файл-сервер для передачи компьютерной программы приемнику.
В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться для выполнения некоторых или всех функциональных возможностей способов, описанных в этом документе. В некоторых вариантах осуществления программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором, чтобы выполнить один из способов, описанных в этом документе. Как правило, способы предпочтительно выполняются любым аппаратным устройством.
Вышеописанные варианты осуществления являются всего лишь пояснительными для принципов настоящего изобретения. Подразумевается, что модификации и изменения компоновок и подробностей, описанных в этом документе, будут очевидны другим специалистам в данной области техники. Поэтому есть намерение ограничиться только объемом предстоящей формулы изобретения, а не определенными подробностями, представленными посредством описания и объяснения вариантов осуществления в этом документе.
Источники информации
[1] Международная организация по стандартизации, ISO/IEC 14496-3 2009, "Information Technology – Coding of audio-visual objects – Part 3 Audio", Женева, Швейцария, август 2009.
[2] Инженерная группа по развитию Интернета (IETF), RFC 6716, "Definition of the Opus Audio Codec", предложенный стандарт, сентябрь 2012. Доступен по ссылке http://tools.ietf.org/html/rfc6716.
ой
[3] C. R. Helmrich, "On the Use of Sums of Sines in the Signal Windows", по материалам 13 международной конференции по цифровым аудиоэффектам (DAFx-10), Грац, Австрия, сентябрь 2010.
ой
[4] J. Herre и J. D. Johnston, "Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shaping (TNS)", по материалам 101 конвенции AES, LA, USA, ноябрь 1996
ой
[5] M. Neuendorf и др., "MPEG Unified Speech and Audio Coding – The ISO/MPEG Standard for High-Efficiency Audio Coding of All Content Types", по материалам 132 конвенции AES, Будапешт, Венгрия, апрель 2012. Также в Журнале AES, 2013.