ВЕЩЕСТВЕННОЕ-В-КОМПЛЕКСНОЕ ПРЕОБРАЗОВАНИЕ С МАЛОЙ ЗАДЕРЖКОЙ В БАНКАХ ФИЛЬТРОВ С ПЕРЕКРЫТИЕМ ДЛЯ ЧАСТИЧНО КОМПЛЕКСНОЙ ОБРАБОТКИ
REAL-IN-COMPLEX TRANSFORMATION WITH A SMALL DELAY IN BANK FILTERS WITH OVERLAPPING FOR PARTIALLY INTEGRATED TREATMENT

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка испрашивает приоритет предварительной патентной заявки США № 61/602848, поданной 24 февраля 2012, и предварительной патентной заявки США № 61/622389, поданной 10 апреля 2012, настоящим включенных в данный документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение, раскрытое в документе, в целом относится к цифровой обработке сигналов. Более конкретно оно относится к конфигурации банков фильтров с перекрытием для обработки представления в частотной области для одного или более аудиосигналов.
УРОВЕНЬ ТЕХНИКИ
В области техники цифровой обработки сигналов существует много приложений, где два фильтра взаимодействуют однонаправлено или двунаправлено. В однонаправленной взаимосвязи один фильтр может принимать выход другого и выполнять операции над ним. В качестве одного примера, преобразование «вещественное-в-комплексное» представления в частотной области для сигнала может происходить в виде этапа синтеза «частота-время», за которым следует анализ «время-частота». Поскольку фильтр преобразования по своему характеру вносит ненулевую задержку, конфигурации из двух или большего числа фильтров могут иметь значительную полную задержку, которая в некоторых ситуациях может вызывать неудобство. По этой и другим причинам были предложены альтернативные решения, включая преобразование вещественное-в-комплексное, описанное в патенте США №6980933 Заявителя. Будет желательным, однако, предложить дополнительные альтернативы в дополнение к этому подходу.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Варианты осуществления изобретения теперь будут описаны со ссылкой на сопроводительные чертежи, на которых:
фиг. 1 и 2 - обобщенная блок-схема фильтров с конечной импульсной характеристикой (КИХ, FIR), действующих в качестве фильтров синтеза в системах обработки аудио;
фиг. 3a - упрощенная схема сигналов, показывающая в различные моменты времени содержимое двух буферов, выдающих промежуточный сигнал (y) на основании входного сигнала, и, кроме того, выдающих выходной сигнал на основании промежуточного сигнала;
фиг. 3b показывает примерное окно анализа, подлежащего применению в связи с обработкой, иллюстрируемой на фиг. 3a;
фиг. 4 и 5 показывают FIR-фильтры, действующие в качестве фильтров анализа в системах обработки аудио;
фиг. 6а, 6b, 7 и 8a, 8b показывают системы обработки аудио, в которых могут использоваться варианты осуществления изобретения; и
фиг. 9 - структурная схема способа обработки аудио в соответствии с вариантом осуществления изобретения.
Все чертежи являются схематичными и, в общем, показывают только части, которые являются необходимыми для того, чтобы пояснить изобретение, тогда как другие части могут опускаться или просто предполагаться. Если не указано иное, одинаковые ссылочные позиции относятся к одинаковым частям на различных чертежах.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
I. КРАТКОЕ ОПИСАНИЕ
Настоящее изобретение предлагает, среди прочего, способы и устройства, дающие возможность эффективной операции вещественное-в-мнимое над коэффициентами в представлении в частотной области аудиосигнала. Операция вещественное-в-мнимое может происходить с помощью этапа синтеза «частота-время», за которым следует анализ «время-частота». Примеры осуществления изобретения представляют способ для обеспечения частично комплексного представления в частотной области аудиосигнала на основе вещественного представления сигнала в частотной области, а также систему обработки аудио и компьютерный программный продукт для выполнения этого способа с признаками, изложенными в независимых пунктах формулы изобретения.
Первый пример осуществления изобретения обеспечивает систему обработки аудио, в общем содержащую следующие компоненты:
каскад синтеза,
каскад анализа, коммуникативно соединенный с выходом каскада синтеза, и
процессор.
Как процессор, так и каскад синтеза принимают первый субполосный диапазон первого представления в частотной области сигнала в качестве входного. Процессор объединяет первое представление в частотной области и выход каскада анализа, чтобы сформировать комплексное представление в частотной области сигнала в первом субполосном диапазоне. Процессор может далее принимать представление в частотной области второго субполосного диапазона сигнала в качестве входного, при этом процессор может быть сконфигурирован для объединения обоих представлений сигнала в первом субполосном диапазоне и втором субполосном диапазоне сигнала в частично комплексное представление сигнала в частотной области. Предпочтительно второй субполосный диапазон является дополнением первого субполосного диапазона, так что оба диапазона выдают первое представление в частотной области для сигнала.
Выход каскада анализа называется вторым представлением сигнала в частотной области. Каждое представление в частотной области сегментируется на временные блоки (или временные интервалы), содержащие число N выборок. Число выборок на один блок может быть переменным. Однако предпочтительно иметь постоянное число выборок на один блок. Первое представление в частотной области далее сегментируется на первые составляющие спектра, представляющие спектральный состав сигнала в первом субполосном диапазоне, выраженном в первом подпространстве многомерного пространства. Второе представление в частотной области сегментируется на вторые составляющие спектра, представляющие спектральный состав сигнала в первом субполосном диапазоне, выраженном во втором подпространстве многомерного пространства, которое включает часть многомерного пространства, не включенного в первое подпространство. Первое и второе представления в частотной области могут быть синусным и косинусным представлением, или наоборот.
1
1
В этом первом примере осуществления каскад синтеза разрешает каскаду анализа осуществлять доступ к приближенному значению промежуточного представления во временной области во временном блоке, расположенном на d≥1 временных блока впереди своего выходного временного блока. Приближенное значение вычисляется на основе любых доступных временных блоков первого представления в частотной области, другие временные блоки заменяются временными блоками «по умолчанию», такими как временной блок, имеющий все свои выборки равными нулю или нейтральному значению, представляющему отсутствие энергии сигнала (нет возбуждения датчика). Как используется в настоящем документе, в данный момент времени, выходной временной блок каскада синтеза является самым ранним временным блоком, в котором набор временных блоков первого представления в частотной области, являющийся достаточным для точного вычисления того же (то есть, самого раннего) временного блока, будет доступным в нормальной работе каскада синтеза. Другими словами, будет возможным уточнять приближенное значение в точное значение той же величины (временного блока) после истечения времени, соответствующего d временным блокам, в предположении, что временные блоки первого представления в частотной области принимаются нормальным или ожидаемым образом. С помощью доступных данных в этот момент, также будет возможным вычислять точное значение заранее вместо уточнения имеющегося приближенного значения. Ясно, что разновидности этого примера осуществления могут быть сконфигурированы с возможностью выводить два или большее число приближенных значений, таких как приближенные значения для последовательности временных блоков.
В этом первом варианте осуществления, кроме того, упомянутое приближенное значение вносит вклад во второе представление в частотной области для сигнала, поскольку каскад анализа использует приближенное значение в качестве входного или одного из множества входных, чтобы вычислять второе представление в частотной области. Это означает, что каскад анализа способен вычислять данный временной блок для второго представления в частотной области, по меньшей мере, на один временной блок ранее, что уменьшает время прохода многополосного фильтра.
n
n
n
В примере осуществления каскад синтеза является FIR-фильтром с импульсной характеристикой , где каждый коэффициент является N-вектором последовательных значений. На основании входной последовательности  FIR-фильтр выводит выходной временной блок . В настоящем документе  обозначает поэлементное матричное умножение (произведение Адамара), и суммирование также является поэлементным. N-векторы  формируются из субблоков x. Полагается, что FIR-фильтр является нетривиальным в том смысле, что первый блок коэффициентов является ненулевым, , так что выходной временной блок y нельзя вычислять, пока не будет введен самый ранний входной временной блок x.
s
Необходимо отметить, что FIR-фильтр имеет порядок L.
s
s
1
В дальнейшем развитии предыдущего примера осуществления FIR-фильтр содержит один или более выходных буферов для сохранения приближенных значений различных временных блоков промежуточного представления во временной области. Буферы обновляются в каждом случае, когда FIR-фильтр принимает новый временной блок первого представления в частотной области для сигнала. Обновление состоит в приращении буфера на новый временной блок, предварительно умноженный на соответствующие коэффициенты импульсной характеристики. (Как используется в этом раскрытии, предварительное умножение не относится к намеченному порядку следования блока значений и блоков коэффициентов; в действительности, поэлементное умножение является коммутативной операцией). Следовательно, буферы, принявшие относительно большее число обновлений, хранят более надежные приближенные значения, чем буферы, принявшие относительно меньшее число обновлений. После того, как буфер подвергся полному числу L+1 обновлений после последнего сброса (или очистки), он содержит точное значение интересующего временного блока. В этом варианте осуществления, однако, приближенное значение временного блока выдается только после L+1-d обновлений. Другими словами, вклады от остающихся, еще недоступных временных кадров являются такими, как если бы эти временные кадры были установлены в нуль.
1
s
1
В примере осуществления FIR-фильтр содержит один или более входных буферов для сохранения принятых недавних временных блоков для первого представления в частотной области. Блок взвешенного суммирования отвечает за выработку приближенного значения для временного блока, расположенного на d временных блоков впереди своего нормального времени вывода. С этой целью блок взвешенного суммирования извлекает L+1-d буферных значений, предварительно умножает их на соответствующие блоки коэффициентов (коэффициенты импульсной характеристики) и суммирует результаты поэлементно.
В примере осуществления точность вычисления приближенного значения обеспечивается требованием, что оно включает в себя применение блоков коэффициентов импульсной характеристики, представляющих, по меньшей мере, 50% от полной массы импульсных характеристик (откликов). Следовательно, в предположении использования коэффициентов  для вычисления приближенного значения, тогда, предпочтительно
1
1
Более высокое процентное отношение будет в нормальных условиях повышать точность. Предпочтительно, полная масса примененных блоков коэффициентов составляет, по меньшей мере, 60%, 70% или 80% от полной массы. Здесь, p является числом, которое зависит от d. В некоторых вариантах осуществлениях можно иметь p=d.
В разновидности предыдущего примера осуществления блоки коэффициентов импульсной характеристики, применяемые для того, чтобы вычислять приближенное значение, составляют последовательность из последовательных временных блоков, которая включает в себя локальный абсолютный максимум импульсной характеристики. Абсолютный максимум может относиться к блоку коэффициентов с наибольшей массой или блоку коэффициентов, содержащему единственный коэффициент с наибольшим абсолютным значением.
В примере осуществления каскад анализа содержит FIR-фильтр, совместно использующий структурные и/или функциональные возможности, описанные выше в связи с каскадом синтеза.
В примере осуществления система обработки аудио содержит, по меньшей мере, одну линию задержки, выполненную между точкой входа многополосного фильтра и входом процессора, чтобы формировать частично комплексное представление в частотной области для сигнала. Одна или несколько линий задержки содействуют формированию частично комплексного представления в частотной области путем обеспечения синхронности. Задержка может осуществляться способом, по сути известным в области техники, например, временным запоминанием, маркировкой отметкой времени и/или включением в составную структуру данных.
Зависимые пункты формулы изобретения определяют дополнительные примеры осуществления изобретения. Отмечается, что изобретение относится ко всем комбинациям признаков, даже если они изложены в разных пунктах формулы изобретения.
II. ПРИМЕРЫ ОСУЩЕСТВЛЕНИЯ
Фиг. 6a кратко представляет в форме блок-схемы систему 600 обработки сигналов, в которой могут быть реализованы варианты осуществления настоящего изобретения. Начиная слева, временной сигнал (например, представление во временной области аудиосигнала, полученное посредством возбуждения акустической волной акустического преобразователя, который выводит цифровой сигнал), подается на косинусно-модулированный банк 660 фильтров, который может соответствовать типу QMF или псевдо-QMF. Банк 660 фильтров обеспечивает столько выходных сигналов, сколько диапазонов частот (или частотных элементов сигнала) у него имеется. Поскольку банк 660 фильтров является косинусно-модулированным, выходные сигналы традиционно называются вещественными составляющими спектра. Как входной временной сигнал, так и выходные частотные сигналы могут сегментироваться на временные блоки и/или на один или более каналов. Из выходных сигналов от банка 660 фильтров первое подмножество подается на каскад 611 преобразования вещественное-в-комплексное, который конвертирует вещественные составляющие спектра в комплексные составляющие спектра путем добавления мнимой части, соответствующей синусоидальной модуляции исходного временного сигнала. Комплексные спектральные коэффициенты подаются на каскад 640 частично комплексной обработки. Остающиеся выходные сигналы (второе подмножество) от банка 660 фильтров задерживаются в линии 630 задержки, чтобы поступать на каскад 640 частично комплексной обработки синхронно с комплексными составляющими спектра из первого подмножества. Первое и второе подмножества образуют частично комплексное представление в частотной области для исходного сигнала, которое может подвергаться специфической для приложения обработке в каскаде 640 обработки. Специфическая для приложения обработка может включать в себя операции, которые, как известно или ожидается, будут касаться проблем наложения спектров (или других трудностей, возникающих в связи с обработкой критически дискретизированных сигналов) в частотном диапазоне, который соответствует первому подмножеству частотных диапазонов. Поскольку представление в частотной области включает в себя полные комплексные спектральные коэффициенты в этом частотном диапазоне, схема обработки с этими функциями обычно будет менее чувствительной к проблемам наложения спектров и/или искажениям (артефактам), которые могут иначе снизить воспринимаемое качество аудио- или видеосигнала.
Система 600 обработки аудио может быть описана на более абстрактном уровне, как на фиг. 6b, причем за каскадом 691 обработки перекрытия-и-сложения следует каскад 693 обработки блока, расположенный после такового по ходу обработки. При условии постоянного размера блока из N выборок, обработка 691 перекрытия-и-сложения включает в себя формирование подпоследовательностей из K последовательных блоков каждая (содержащих K×N выборок) и применение к ним оконной функции. Последовательные окна перекрываются, так что данный блок будет включен более чем в одно окно, в различных позициях относительно оконной функции. Последовательные окна накладываются одно на другое и прибавляются, чтобы получать блоки промежуточного сигнала, причем подразумевается, что данный блок промежуточного сигнала не будет точно известным до тех пор, пока входной сигнал не прошел настолько, что все входные блоки, которые вносят вклад через временные окна, частью которых они являются, являются доступными. В каскаде 693 обработки блока, подпоследовательности из K' последовательных блоков (K'×N выборок каждая) промежуточного сигнала используются в качестве входных для операции обработки, имеющей один блок (N выборок) в качестве выходного. Число K блоков, обрабатываемых одновременно каскадом 691 обработки перекрытия-и-сложения, может отличаться от числа K' блоков, обрабатываемых в каскаде 693 обработки блока (см. фиг. 3a). Альтернативно, эти числа могут быть равными, K=K' (см. фиг. 6). Обработка блока может быть многофазной реализацией субдискретизированного однородно модулированного банка фильтров. Один блок выходных данных будет закончен, когда вклад будущих блоков станет нулевым вследствие конечной длины окна. Иначе говоря, каждый выходной блок из N выборок вычисляется из K'×N входных выборок (размер окна), и для каждых N входных выборок имеются N (законченных) выходных выборок.
Один аспект изобретения относится к каскаду 692 снижения задержки, расположенному между каскадом 691 обработки перекрытия-и-сложения и каскадом 693 обработки блока. Каскад 692 снижения задержки пересылает аппроксимации блоков промежуточного сигнала от каскада 691 обработки перекрытия-и-сложения на каскад 693 обработки блока, который, следовательно, может инициировать обработку данного блока ранее чем, если бы использовал его точное значение. В таких исполнениях, где обработка 691 перекрытия-и-сложения требует последовательных приращений порции памяти, которая во времени будет содержать аппроксимации, которые постепенно (хотя не обязательно монотонно) приближают точное значение данного выходного блока, каскад 692 снижения задержки может быть сконфигурирован, чтобы делать некоторые из этих аппроксимаций доступными для каскада 693 обработки блока. Другими словами, приближенные значения, которые в обычных исполнениях остаются внутренне доступными для каскада 691 обработки перекрытия-и-сложения, только выборочно пересылаются каскадом 692 снижения задержки на каскад 693 обработки блока.
Фиг. 7 является обобщенной блок-схемой, показывающей систему 700 обработки аудио с наличием многополосного фильтра 770 в соответствии с примером осуществления настоящего изобретения. Многополосный фильтр 770 принимает вещественное представление аудиосигнала в частотной области и выводит частично комплексное представление сигнала в частотной области. В многополосном фильтре 770 имеются по существу два параллельных тракта обработки, из которых первый тракт обработки отвечает за режим обработки первого субполосного диапазона (который может быть представлен составляющими спектра, относящимися к первому подмножеству частотных элементов сигнала), и второй тракт обработки отвечает за второй субполосный диапазон частот. На фиг. 7 второй тракт обработки представлен верхней входной линией к процессору 740, а именно линией 730 задержки. Первый тракт обработки, как представлено нижними линиями, проходящими к процессору 740, дополнительно подразделяется на два параллельных пути, из них один путь является линией 750 задержки в чистом виде, так что процессор 740 принимает и необработанный экземпляр первого субполосного диапазона представления в частотной области для аудиосигнала, и обработанный экземпляр того же сигнала, однако задержанного настолько, что его синхронно принимает процессор 740. Обработанный экземпляр сигнала получают преобразованием вещественное-в-мнимое, осуществляемым последующими каскадами 710 синтеза частота-время и анализа 720 время-частота. Следовательно, из исходного представления аудиосигнала в частотной области, которое относится к вещественным (например, косинусно-модулированным) составляющим спектра, через промежуточное представление во временной области получают представление с мнимыми (например, синусно-модулированными) составляющими. В альтернативном примере осуществления каскад 710 синтеза принимает мнимое представление, и каскад 720 анализа выводит вещественное представление. В любом случае процессор 740 конфигурируется для объединения соответствующих мнимых составляющие спектра и вещественных составляющих спектра, причем каждые принимаются из линии 750 задержки с тем, чтобы получить комплексное представление аудиосигнала в первом субполосном диапазоне. Комплексное представление далее объединяется в процессоре 740 с необработанным представлением второго субполосного диапазона, полученного из линии 730 задержки, так что частично комплексное представление получают на выходе процессора 740.
Каскады 710, 720 синтеза и анализа могут быть осуществлены в виде последовательных реализаций обработки перекрытия-и-сложения и обработки (оконным методом) блоков, к которым изобретение может применяться, как изложено ниже. Работающий традиционно каскад 720 анализа выполняет обработку блока, чтобы вычислять выходной временной блок на основе точных значений K входных временных блоков. Согласно примеру осуществления, каскад 720 анализа основывается на вычислении приближенных значений L≥1 временных блоков и точных значений K-L блоков промежуточного сигнала временной области. Чтобы сделать это возможным, каскад 710 синтеза выдает приближенные значения, которые были вычислены на основе каких-либо доступных временных блоков первого субполосного диапазона для первого представления в частотной области, для использования каскадом 720 анализа. Таким образом, каскад 720 анализа может инициировать вычисления, приводящие к данному выходному временному кадру в более ранний момент времени. Поскольку выходной временной кадр базируется частично на приближенных значениях L временных блоков, его точность и/или надежность снижается до некоторой степени. Обычно существует обратная зависимость между выходной точностью и числом L приближенных временных блоков, заменявших точные временные блоки.
Работа банка фильтров с перекрытием, представляющая пример осуществления изобретения, теперь будет описана на более конкретном уровне, причем сигналы моделируются в виде функций дискретного времени. Напоминается, что этот пример осуществления и его математическое описание предназначены для пояснения изобретения под новым углом, а не для ограничения его объема; изучив и поняв описание этого примера осуществления, специалист в данной области техники сможет предложить дополнительные варианты осуществления, которые могут отличаться по используемой записи, распределения и очередности некоторых вычислительных задач, но которые все еще используют не являющиеся родовыми идеи из описанного примера осуществления, такие как использование приближенных значений в качестве входных для второго банка фильтров.
s
k
k
Временным шагом является N, и коэффициент перекрытия задан целым числом K>1. (Следовательно, K=L+1). Переменной дискретного времени является t. Окно синтеза (или фильтр-прототип) h(t) длиной NK выборок полагается нулевым вне временного интервала {0, 1, …, NK-1}. Для k-го временного интервала (или временного кадра) банка фильтров сигнал x(t) с поддержкой длины NK создается из вектора субполосных выборок. Требуемыми операциями обычно являются преобразование частота-время, за которым следуют расширения на основании повторения и переключений времени. Полагается, что сигнал x(t) является нулевым вне временного интервала {0, 1, …, NK-1}.
Полный синтез для вывода y(t) временной области описывается согласно
Вследствие перекрытия, имеются K вкладов в каждое выходное значение. Частичным синтезом, который может создаваться из временных интервалов при , является
Разностью между полным и частичным синтезом является
И можно видеть, что эта сумма, в общем случае, исчезает, если и только если . Это означает, что полностью синтезированный выход является доступным из  только до выборки с временным индексом .
Работа банка фильтров анализа основывается на окне g(t), которое полагается в документе для простоты имеющим такую же поддержку, как h(t) (K=K'). Во временном интервале m сигнал, подлежащий анализу, рассматривается на интервале  и загружается в буфер анализа. Для случая сигнала  этим буфером анализа является
Этот буфер затем обрабатывается методом окна g(t):
,
и обработанный методом окна буфер затем подвергается преобразованию время-частота. Обычно, NK временных выборок преобразовываются в N выборок частотной области посредством матрицы модуляции, структура которой поддается эффективной пошаговой реализации. Это требует первого этапа операций периодизации и свертки, что обеспечивает меньший блок временных выборок и быстрое преобразование на этом меньшем блоке. Результатом является вектор частотной области, представляющий m-й временной интервал анализа.
Чтобы буфер a(t) состоял из сегмента полностью синтезированного сигнала , необходимо чтобы . Это означает, что входные временные интервалы вплоть до  должны обрабатываться банком фильтров синтеза, чтобы быть способными осуществлять доступ к временному интервалу m последующего анализа. Это налагает опорную задержку в K-1 временных интервалов в этой модельной системе синтеза, за которым следует анализ.
Согласно этому примеру осуществления достаточная аппроксимация для анализа может быть получена с уменьшенной задержкой. Буфер  приближенного анализа извлекает частично восстановленный сигнал при , а именно
где  является снижением задержки во временных интервалах относительно опорного случая, где  и  После анализа оконной функцией с  ошибка, вносимая в приближенный анализ, составляет
Эта ошибка является малой, когда произведения сдвинутых окон  для  являются малыми. В предпочтительном варианте осуществлении значениями являются  и , и произведение сдвинутых окон является незначительным для .
С помощью явного обращения к индексу m временного интервала, обновление буфера  в традиционном анализе может быть описано, как изложено ниже
Другими словами, наиболее давний временной интервал стирается на первом конце буфера, один временной интервал копируется из синтеза во второй конец буфера, и содержимое, относящееся к промежуточным кадрам в буфере анализа, сдвигается к первому концу. (Ссылка на "концы" является просто понятийной и предусматривается в специфических исполнениях, которые используют кольцевой буфер, или буфер обеспечивается виртуальной цикличностью, достигаемой надлежащей адресацией указателя.) Буфер анализа согласно этому варианту осуществления обновляется с более большим соотношением считывания из (буфера) синтеза, а именно
Буфером синтеза для индекса n временного интервала является
Обновление этого буфера является таким же, как для обычного случая и случая по изобретения, а именно
Следовательно, этот пример осуществления отличается от обычного, упомянутого выше способа в том, что более большая часть, чем лишь содержимое первого временного блока {0, 1, …, N-1} буфера синтеза, делается доступной для последующего каскада анализа.
s
A
На Фиг. 3a иллюстрируется содержимое буфера в конфигурации из двух взаимодействующих фильтров, первого фильтра (синтеза), содержащего K=L+1 отводов (для обеспечения промежуточного сигнала y на основе входного сигнала x), и второго фильтра (анализа), содержащего K'=L+1 отводов (для обеспечения выходного сигнала z на основе промежуточного сигнала y). Сигналы вычерчены в виде трех различных моментов времени. Здесь белый цвет указывает уже существующие данные (из предшествующей итерации), более светлая штриховка указывает новые приближенные данные, и более темная штриховка указывает новые точные данные.
Первый фильтр, связанный с фильтром-прототипом (импульсной характеристикой) h, сконфигурирован для замены своих последних  входных временных блоков нулевыми блоками, так что его  наиболее недавних выходных блоков будут состоять из приближенных значений. На Фиг. 3b показывается пример реального фильтра-прототипа для блока размером N=8 выборок и окна длиной в K=10 блоков. Второй фильтр, который связан с фильтром-прототипом , сконфигурирован для использования  последних выходных блоков из первого фильтра. Общая задержка схемы фильтра уменьшается на  блоков. В эталонном исполнении с несимметричными прототипами задержка снижается от  блоков до  блоков. Фильтры-прототипы g и h вычерчены на фиг. 3a в том же масштабе времени, что и буферы.
Между t=0 и t=1 буфер синтеза (Buffer1) в первом фильтре увеличивается на кадр данных, который включает в себя последний по времени временной блок. Во время t=1 затем, наиболее давний блок (по отношению к самому левому) содержит точные промежуточные данные сигнала, готовые подлежать выводу в обычном фильтре. Между t=1 и t=2, L наиболее давних временных блоков копируются из буфера синтеза в буфер анализа (Buffer2) во втором фильтре, и содержимое буфера синтеза сдвигается на один временной блок. Буфер анализа подготовлен к приему скопированных временных блоков из буфера синтеза, будучи сдвинутым, между t=0 и t=1, на один блок (сравните знак сноски), тогда как дополнительные L-1 блоков данных отбрасываются или маркируются свободными, чтобы подлежать повторной записи. При t=1 в буфере анализа будут L доступных пространств временного блока.
2
2
1
В разновидности этого, причем точность несколько уменьшается, чтобы дополнительно снизить общую задержку, второй фильтр может использовать в качестве входных блоков точные старые и новые выходные блоки из первого фильтра (наиболее давняя порция ввода), приближенные выходные блоки из первого фильтра (промежуточная порция) и, в дополнение к этому, d блоков из нулей (последняя по времени порция). Для каждого дополнительного блока из нулей, который используется в качестве входного, полная задержка уменьшится на один временной блок. Этот подход, можно сказать, распределит усилия по снижению задержки по обоим фильтрам. Это может повлечь потенциальную выгоду, поскольку потеря точности меньше, чем в случае, где снижение задержки затрагивает только один фильтр, например, путем установки d=0 и d в завышенное значение.
Фиг. 9 является структурной схемой, иллюстрирующей итерацию операций, подлежащих выполнению над аудиосигналом, в соответствии с этим примером осуществления. В течение этих операций способ обработки буфера снижает задержку двух взаимодействующих банков фильтров, банка фильтров синтеза, связанного с буфером синтеза (Buffer1), и банка фильтров анализа, связанного с буфером анализа (Buffer2). Банк фильтров синтеза работает согласно инициированию позиции в Buffer1 и затем увеличению ее содержимого взвешенными новыми значениями сигнала, предпочтительно поблочным образом, пока буфер не будет содержать точные результирующие данные, готовые подлежать выводу. Обработка в банке фильтров анализа может соответствовать последовательности многофазной фильтрации (оконным методом) и операции матрицы модуляции, и свои входные значения берет из Buffer2.
Отмечается, что буферы являются кольцевыми буферами длины , N является размером блока, и начальными позициями считывания-записи являются показанные в Таблице 1.
Таблица 1
Начальные позиции считывания-записи в буферах
Buffer1
считывание
0
запись
0
Buffer2
считывание
0
запись
(K-L)×N
Число L будет определено ниже. Подчеркивается, кроме того, что структурная схема иллюстрирует ситуацию 'теплый старт', в которой буферы содержат значения, полученные в результате обработки на предыдущих итерациях.
На первом этапе 902 новый блок временных выборок из косинусно-модулированного представления в частотной области для аудиосигнала получают с использованием косинусоидальной (де-)модуляции. На втором этапе 904 формируется массив из K временных блоков путем свертки нового блока из N временных выборок K раз периодически и взвешивания на третьем этапе 906 согласно прототипу синтеза общего типа, показанного на фиг. 3b. Затем, на четвертом и пятом этапе 908, 910, позиции считывания-записи (указатели) в Buffer1 увеличивают на N (причем значения переполнения осуществляют циклический переход благодаря цикличности), и обрабатываемый методом окна K-блочный массив добавляется к значениям, уже присутствующим в Buffer1. После этих этапов Buffer1 будет содержать один блок точных значений и K-1 блоков значений, полученных согласно различным приближениям. На шестом этапе 912 число L≥2 блоков копируется из Buffer1 в Buffer2 (с записью поверх предшествующего содержимого в Buffer2), так что, по меньшей мере, один приближенный блок внесет вклад в фильтрацию анализа, приводя к снижению задержки (L-1)×N выборками. Итерация продолжается, на седьмом этапе 914, повторной установкой N выборок в Buffer1; место N выборок повторной установки в буфере после пятого этапа следующей итерации будет содержать самое начальное приближение. Затем фильтр анализа обрабатывает скопированные L блоков вместе с K-L существующими блоками, чтобы получить блок представления аудиосигнала в частотной области. Более точно, на восьмом, девятом и десятом этапе 916, 920, 922, K блоков извлекаются из Buffer2, взвешиваются согласно прототипу анализа, и затем обрабатываются в блок представления аудиосигнала в частотной области операцией матрицы синусоидальной модуляции. На заключительном одиннадцатом этапе 918, позиции считывания и записи, ссылающиеся на Buffer2, увеличиваются на N выборок каждая. Это завершает итерацию, и банки фильтров могут переходить к следующей итерации.
Как поймет специалист в данной области техники на основе описания, относящегося к фиг. 9, можно модифицировать алгоритм несколькими путями, все еще получая при этом такой же результат. Например, обработка позиций считывания-записи буфера может выполняться в другом порядке, как также проиллюстрировано двойными стрелками, выходящими из прямоугольников, представляющих третий и восьмой этапы 906, 916; порядок этих операций не является критичным по отношению к алгоритму при условии, что выборы делаются согласованно во всех итерациях.
На Фиг. 8a показана структура, в которой может выполняться алгоритм по фиг. 9. Вместе фигуры фиг. 8a и 8b также иллюстрируют архитектуру обработки, которая потенциально может извлечь пользу из настоящего изобретения. Ссылка в целом делается на фиг. 7, которая иллюстрирует систему 700 обработки аудио, являющуюся подобной по структуре и функциям. На фиг. 8a между левой точкой входа и входами на каскад 860 обработки, сигналы подвергаются преобразованию из чисто вещественного представления в частотной области в частично комплексное представление. Как в системе обработки 700, мнимое представление в частотной области, которое будет суммироваться с чисто вещественным представлением в частотной области, получают синтезом с последующим анализом, в банках фильтров 810, 820, и каскад 815 снижения задержки делает приближенные значения синтеза доступными для использования банком 820 фильтров анализа. Каскад 830 задержки обеспечивает, что необработанное чисто вещественное представление в частотной области подается на каскад 860 обработки синхронно с результатами обработки. Каскад 860 обработки затем выполняет специфическую для приложения обработку, например обработку, предполагаемую оказать требуемый эффект в конкретном случае использования. Поскольку каскад 860 обработки работает на основе улучшенного, частично комплексного представления сигнала, имеется хорошая устойчивость к наложению спектров, и таким образом, характер специфической для приложения обработки может быть разным. Каскад 860 обработки может работать на одном временном блоке (N выборок) за один раз или на многих временных блоках.
Фиг. 8b показывает возможную последующую по обработке часть компонентов, показанную на фиг. 8a. Часть, показанная на фиг. 8b, осуществляет преобразование комплексное-в-вещественное относительно представления аудиосигнала в частотной области после обработки каскадом 860 обработки. По существу, банк 870 фильтров синтеза и последующий банк 880 фильтров анализа выполняют преобразование мнимое-вещественное на той порции спектра, где аудиосигнал представляется мнимыми спектральными данными в дополнение к вещественным спектральным данным. Более точно, если часть на фиг. 8a содержала косинусно-модулированный фильтр 810 синтеза, за которым следует синусно-модулированный фильтр 820 анализа, часть на фиг. 8b будет содержать банк 870 синусно-модулированных фильтров синтеза, за которым следует банк 880 косинусно-модулированных фильтров анализа. Банк 880 фильтров анализа по фиг. 8b может дополнительно осуществлять повторное масштабирование спектральных данных, так что вещественные спектральные данные, полученные таким образом, становятся сравнимыми с вещественными спектральными данными, пересланными от каскада 860 обработки линией 890 задержки. Это позволяет последующему каскаду 840 суммирования обновлять вещественные данные в представлении обработанного аудиосигнала таким образом, что любые нежелательные побочные эффекты наложения спектров могут быть удалены из сигнала. В отличие от банков фильтров 810, 820, 870, 880, каскад 840 суммирования может оперировать над одним временным блоком за один раз. В этом примере осуществления последовательные банки 870, 880 фильтров по фиг. 8b подвергают снижению 875 задержки, а именно делая приближенные выходы из банка 870 фильтров синтеза доступными банку 880 фильтров анализа.
В заключение, несколько примеров исполнений FIR-фильтра будут обсуждены со ссылкой на фигуры фиг. 1, 2, 4 и 5. Как в разделе Краткого описания выше, эти фигуры будут использовать блок-ориентированную нотацию, которая относится к нотации временной зависимости, как изложено ниже. Символ  обозначает матричный блок, образуемый всеми выборками  при . Подобным образом, полагая  блок  формируется из , и блок  формируется из . Используя эту нотацию, получают
Кроме того,  …, обозначают приближенные блоки, задаваемые для  согласно
Установка p=0 возвращает точное значение
Фильтр 100, показанный на фиг. 1, включает в себя выходные буферы для вычисления приближенных значений. На фиг. 1 буфер вычерчен символически в виде кольцевого буфера, хотя цикличность обычно реализуется посредством адресации указателя (циклическая адресация на шаге приращения). Положение стрелки, помеченной "RESET" (сброс), подсказывает, что буферное пространство 105 должно быть очищено или перезаписано прежде, чем оно примет новые данные в последующем временном кадре, когда оно занимает позицию буферного пространства 101. Окна из N×K входных значений  подаются через входную линию 111 и добавляются к буферным пространствам 101-105 после покомпонентного умножения на блоки  коэффициентов фильтра. Блок точных выходов  фильтра получают на выходной линии 112. (Отмечается, что последний выходной буфер 105 может быть заменен простой схемой суммирования, поскольку все данные, необходимые для вычисления выхода, являются уже доступными в начале этого временного блока, в котором самый ранний входной временной блок принимается фильтром. Другими словами, строго не требуется временно сохранять (буферизовать) такие значения, которые подлежат сложению, чтобы обеспечивать выходное значение.) В буферах 101-104, расположенных в направлении против часовой стрелки от последнего выходного буфера 105, находятся приближенные значения. Два из этих приближенных значений  могут извлекаться через линии 121, 122 короткого доступа фильтром, последующим относительно фильтра, показанного на фиг. 1, с тем, чтобы снизить общую задержку обработки.
n
В отличие от этого, фильтры на фиг. 2, 4 и 5 используют входные буферы в комбинации с выделенными блоками взвешенного суммирования для вывода приближенных значений. В показанном на фиг. 2 фильтре входное окно x N×K-выборок принимается по входной линии 211 и распределяется блоком 201 в виде одиночных блоков  на блоки взвешенного суммирования. Один блок взвешенного суммирования подает через выходную линию 212, точный выходной временной блок  Последующий блок взвешенного суммирования поставляет приближенный временной блок  через линию 221 короткого доступа.
n
В примерах осуществления изобретения фильтр анализа, соединенный на стороне выхода фильтра, показанного на фиг. 2, может использовать и точный, и приближенный временной блок в качестве входных, чтобы вычислять выходной временной блок z.
Фиг. 4 показывает фильтр 400, приспособленный располагаться после фильтра типа, показанного на фиг. 1. Размером вывода фильтра является K блоков . Фильтр 400 сохраняет текущие входные блоки  и предшествующие  в буферах 401-404. Они используются в качестве входных для операции, посредством которой получают последние K-2 блоков выхода фильтра. Первые два блока вычисляются в этом фильтре 400 на основе приближенных значений  подаваемых через переопределяемые входные линии 431, 432. Приближенные значения могут быть равными значениям  обсужденным выше в связи с фильтром по фиг. 1, где они извлекаются из линий 121, 122 короткого доступа.
4
Все сумматоры со взвешиванием не требуют включения полного набора входных линий; например, на фиг. 4, блок коэффициентов g=0, вот почему эта входная линия к блоку 421 взвешенного суммирования отсутствует в соответствующей входной линии от входного буфера 403.
Подобным образом фильтр, назначенный подлежащим всегда использоваться для получения приближенного значения (как может быть в случае каскада анализа), не требует включения выходной линии для обеспечения точного значения, как иллюстрируется фиг. 4.
0
Фиг. 5 показывает фильтр, подобный таковому на фиг. 4. Здесь буфер не является кольцевым. Вместо этого входная линия 511 соединяется через селектор 543, который отвечает за запись новых входных данных в позицию буфера, в текущий момент содержащую наиболее давние данные. На стороне выхода буфера переключатель 542 пересылает релевантные данные из позиций в буфере на различные входы блока взвешенного суммирования. Фильтр, показанный на фиг. 5, включает в себя одну входную переопределяемую линию, а именно для обеспечения значения  подлежащего умножению на блок коэффициентов g.
Фильтры на фиг. 4 и 5 отличаются относительно своего числа входных переопределяемых линий. Меньшее число входных линий может вести к более простой структуре аппаратных средств или, в программной реализации - к меньшему количеству данных, перемещаемых внутренне. Когда одна входная переопределяемая линия является доступной, заданное приближенное значение  используется и для вычисления n-помеченных выводов в текущем временном интервале и, после сдвига буфер, для вычисления (n+1)-помеченных выходов в последующем временном интервале. Использование двух входных переопределяемых линий является усложненным подходом, но обладают преимуществами относительно точности. Когда используются две входные переопределяемые линии 431 432, как показано на фиг. 4, приближенное значение  (подаваемое через вторую входную переопределяемую линию 432) уточняется в приближенное значение  первого порядка (подаваемое через первую входную переопределяемую линию 431) в последующем кадре. Принцип, лежащий в основе изобретения, состоит в том, чтобы сделать приближенные значения от этапа обработки доступными досрочно в качестве входных на второй каскад обработки, расположенный позднее в прохождении обработки. Этот принцип является применимым к взаимодействующим банкам фильтров также вне области обработки аудиосигналов. По существу, с повторной ссылкой на фиг. 7, пример осуществления обеспечивает конфигурацию банков 700 фильтров с перекрытием, содержащую:
каскад 710 синтеза, принимающий первый сигнал, сегментированный на временные блоки, и выводящий на его основании промежуточный сигнал; и
каскад 720 анализа, принимающий промежуточный сигнал и выводящий на его основании второй сигнал, сегментированный на временные кадры,
причем каскад синтеза выполнен с возможностью выпуска приближенного значения промежуточного сигнала во временном блоке, расположенном на  временных блоков впереди его выходного блока, причем приближенное значение вычисляется на основе любых доступных временных блоков первого сигнала; и при этом упомянутое приближенное значение вносит вклад в каскаде анализа во второй сигнал.
III. ЭКВИВАЛЕНТЫ, РАСШИРЕНИЯ, АЛЬТЕРНАТИВЫ И ПРОЧЕЕ
Хотя изобретение было описано со ссылкой на его конкретные примерные варианты осуществления, множество различных изменений, модификаций и подобного станет очевидным специалистам в данной области техники после изучения этого описания. Описанные примерные варианты осуществления, следовательно, не подразумевают ограничение объема изобретения, который определяется только прилагаемой формулой изобретения.