Настоящее изобретение относится к кодеру и декодерам звука и кодированию звука, в общем, а в частности, к кодированию звука, дающему возможность звуковым сигналам быть закодированными с коротким временем задержки.
Способ сжатия звука, наиболее известный на данный момент, - это MPEG-1 Layer III. С помощью этого способа сжатия выборка или звуковые значения звукового сигнала кодируются в кодированный сигнал методом без потерь. Говоря по-иному, нерелевантность и избыточность исходного звукового сигнала уменьшается или в идеале устраняется при сжатии. Чтобы достичь этого, одновременная и временная маскировка распознается посредством психоакустической модели, т.е. изменяющийся во времени порог маскировки в зависимости от звукового сигнала вычисляется или определяется, указывающий, с какой громкости тоны определенной частоты воспринимаются человеческим слухом. Эта информация, в свою очередь, используется для кодирования сигнала посредством квантования спектральных значений звукового сигнала более точным способом, или менее точным способом, или вообще без точности, в зависимости от порога маскировки, и интегрирования их в кодированный сигнал.
Способы сжатия звука, такие как, например, формат MP3, испытывают ограничение своей применимости, когда звуковые данные должны передаваться посредством ограниченного по скорости канала передачи, с одной стороны, сжатым способом, но, с другой стороны, с минимально возможным временем задержки. В некоторых вариантах применения время задержки не играет роли, например, при архивировании звуковой информации. Кодеры звука с небольшой задержкой, которые иногда упоминаются как "кодеры со сверхнизкой задержкой", однако, являются необходимыми, когда должны передаваться критичные по времени звуковые сигналы, как, например, при организации телеконференций, в беспроводных громкоговорителях или микрофонах. Для этих областей применения статья Schuller G. и др. "Perceptual Audio Coding using Adaptive Pre- and Post-Filters and Lossless Compression", IEEE Transactions on Speech and Audio Processing, том 10, номер 6, сентябрь 2002 года, стр. 379-390, предлагает кодирование звука, когда уменьшение нерелевантности и уменьшение избыточности выполняются не в одном преобразовании, а в двух отдельных преобразованиях.
Принцип будет описан далее со ссылкой на фиг. 12 и 13. Кодирование начинается со звукового сигнала 902, который уже дискретизирован и, таким образом, уже присутствует в качестве последовательности 904 звуковых значений или значений 906 выборок, при этом временной порядок звуковых значений 906 указывается стрелкой 908. Порог прослушивания вычисляется посредством психоакустической модели для последовательных блоков звуковых значений 906, характеризующейся нумерацией по возрастанию на "блок №". Фиг. 13, например, показывает схему, на которой относительно частоты f графика a иллюстрирует спектр блока сигналов из 128 звуковых значений 906, а b иллюстрирует порог маскировки, вычисленный посредством психоакустической модели, в логарифмических единицах. Порог маскировки указывает, как уже упоминалось, вплоть до какой интенсивности частоты остаются неслышимыми для человеческого уха, а именно все тона ниже порога маскировки b. На основе порогов прослушивания, вычисленных для каждого блока, уменьшение нерелевантности достигается посредством управления параметризуемым фильтром, после которого следует квантователь. Для параметризуемого фильтра параметризация вычисляется таким образом, чтобы его частотная характеристика соответствовала инверсии модуля порога маскировки. Эта параметризация указывается на фиг. 12 как x#(i).
После фильтрации звуковых значений 906 выполняется квантование с постоянным размером шага, такое как, например, операция округления до следующего целого. Шум квантования, вызываемый этим, - это белый шум. В декодере фильтрованный сигнал снова "повторно преобразуется" посредством параметризуемого фильтра, передаточная функция которого задается равной модулю самого порога маскировки. Не только фильтрованный сигнал декодируется посредством этого, но и шум квантования в декодере также корректируется до формы или конфигурации порога маскировки. Чтобы шум квантования соответствовал порогу маскировки как можно точнее, значение усиления a#, применяемое к фильтрованному сигналу до квантования, вычисляется в кодере для каждого набора параметров или каждой параметризации. Чтобы повторное преобразование было выполнено в декодере, значение усиления a и параметризация x передаются в кодер как дополнительная информация 910 отдельно от фактических основных данных, а именно квантованных отфильтрованных звуковых значений 912. Для уменьшения 914 избыточности эти данные, т.е. дополнительная информация 910 и основные данные 912, подвергаются сжатию без потерь, а именно энтропийному кодированию, посредством чего получается кодированный сигнал.
Вышеупомянутая статья предлагает размер в 128 значений 906 выборок в качестве размера блока. Это обеспечивает относительно небольшую задержку в 8 мс с частотой дискретизации в 32 кГц. Ссылаясь на подробную реализацию, статья также заявляет, что для повышения эффективности кодирования дополнительной информации передается только дополнительная информация, т.е. коэффициенты x# и a#, если имеются достаточные изменения по сравнению с набором параметров, переданным до этого, т.е. если изменения превышают некоторое пороговое значение. Помимо этого описывается, что реализация предпочтительно осуществляется таким образом, чтобы текущий набор параметров применялся не напрямую ко всем значениям выборок, принадлежащим соответствующему блоку, а чтобы использовалась линейная интерполяция коэффициентов фильтрации x# для того, чтобы избежать слышимых помех. Чтобы выполнить линейную интерполяцию коэффициентов фильтрации, предлагается решетчатая структура фильтра для того, чтобы избежать возникновения нестабильности. Для случая, когда необходим кодированный сигнал с контролируемой скоростью передачи в битах, статья также предлагает избирательное умножение или ослабление отфильтрованного сигнала, масштабированного с помощью зависимого от времени коэффициента усиления a, на коэффициент, не равный 1, с тем чтобы возникали слышимые помехи, но скорость передачи в битах могла быть уменьшена в местах звукового сигнала, которые трудны для того, чтобы кодировать.
Хотя вышеупомянутая схема кодирования звука, описанная в статье, уже уменьшает время задержки для многих вариантов применения до достаточной степени, проблема в вышеуказанной схеме заключается в том, что вследствие обязательной необходимости передавать порог маскировки или передаточную функцию фильтра в кодере, далее упоминаемого как предварительный фильтр, канал передачи загружается в относительно высокой степени, даже когда должны быть переданы только коэффициенты фильтрации, когда заранее определенный порог превышается.
Еще один недостаток вышеописанной схемы кодирования заключается в том, что вследствие того факта, что порог маскировки или его инверсия должна быть сделана доступной в декодере посредством набора параметров x#, который должен быть передан, должен быть найден компромисс между наименьшей возможной скоростью передачи в битах или высоким коэффициентом сжатия, с одной стороны, и наиболее точной возможной аппроксимацией или параметризацией порога маскировки или его инверсии, с другой стороны. Таким образом, неизбежно шум квантования, откорректированный до порога маскировки посредством вышеупомянутой схемы кодирования, превысит порог маскировки в некоторых частотных диапазонах и, таким образом, приведет к слышимым звуковым помехам для слушателя. Фиг. 13, например, показывает параметризованную частотную характеристику параметризуемого фильтра декодера посредством графика c. Как можно увидеть, есть области, где передаточная функция фильтра декодера, далее упоминаемого как пост-фильтр, превышает порог маскировки b. Проблема усугубляется тем фактом, что параметризация передается только периодически при достаточном изменении между параметризациями и интерполируется между ними. Интерполяция коэффициентов фильтрации x#, которая предлагается в статье, сама приводит к слышимым помехам, когда значение усиления a# остается постоянным от узла к узлу или от новой параметризации к новой параметризации. Даже если интерполяция, предлагаемая в статье, также применяется к значению дополнительной информации a#, т.е. переданному значению усиления, слышимые звуковые помехи могут оставаться в звуковом сигнале, поступающем в декодер.
Другая проблема со схемой кодирования согласно фиг. 12 и 13 заключается в том, что фильтрованный сигнал может вследствие частотно-избирательной фильтрации принять непредсказуемую форму, когда, в частности, вследствие произвольного наложения многих отдельных гармонических волн одно или несколько звуковых значений кодированного сигнала суммируется до очень высоких значений, что, в свою очередь, приводит к худшему коэффициенту сжатия при дальнейшем уменьшении избыточности вследствие их нечастого появления.
Цель настоящего изобретения - предоставить более эффективную схему кодирования звука.
Эта цель достигается посредством способа по п. 8 или 10 и устройства по п. 1 или 9.
Изобретаемое кодирование звукового сигнала последовательности звуковых значений в кодированный сигнал включает в себя определение первого порога прослушивания для первого блока звуковых значений последовательности звуковых значений и второго порога прослушивания для второго блока звуковых значений последовательности звуковых значений; вычисление версии первой параметризации параметризуемого фильтра, так чтобы его передаточная функция примерно соответствовала инверсии модуля первого порога прослушивания, и версии второй параметризации параметризуемого фильтра, так чтобы его передаточная функция примерно соответствовала инверсии модуля второго порога прослушивания; фильтрацию заранее определенного блока звуковых значений последовательности звуковых значений с помощью параметризуемого фильтра с использованием заранее определенной параметризации, которая заранее определенным образом зависит от версии второй параметризации, чтобы получить блок фильтрованных звуковых значений, соответствующих заранее определенному блоку; квантование фильтрованных звуковых значений для того, чтобы получить блок квантованных фильтрованных звуковых значений; формирование комбинации версии первой параметризации и версии второй параметризации, включающей в себя, по меньшей мере, разность между версией первой параметризации и версией второй параметризации; и интеграцию информации, из которой могут быть получены фильтрованные квантованные звуковые значения и версия первой параметризации и которая включает упомянутую комбинацию в кодированный сигнал.
Основная идея настоящего изобретения заключается в том, что более высокий коэффициент сжатия может быть получен посредством передачи разностей последовательных параметризаций.
Дополнительно, если передача параметризаций выполняется только в случае, когда существует достаточная разность между ними, преимущества настоящего изобретения, в частности, также будут заключаться в том, что хотя разность параметризаций не падает ниже минимальной величины разности, тем не менее, передача разностей между двумя параметризациями обеспечивает повышение сжатия, взамен параметризации, более чем компенсация за дополнительную сложность вычисления разности в кодере и вычисления суммы в декодере.
Согласно варианту осуществления настоящего изобретения передается чистая разность между последовательными параметризациями, тогда как согласно другому варианту осуществления минимальный порог, начиная с которого будут передаваться параметризации новых узлов, вычитается из этих разностей.
Далее описываются предпочтительные варианты осуществления настоящего изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 - это принципиальная блок-схема звукового кодера согласно варианту осуществления настоящего изобретения;
Фиг. 2 иллюстрирует блок-схему последовательности операций режима функционирования звукового кодера по фиг. 1 при вводе данных;
Фиг. 3 иллюстрирует блок-схему последовательности операций режима функционирования звукового кодера по фиг. 1 в отношении оценки входящего звукового сигнала посредством психоакустической модели;
Фиг. 4 иллюстрирует блок-схему последовательности операций режима функционирования звукового кодера по фиг. 1 в отношении применения параметров, полученных посредством психоакустической модели, к входящему звуковому сигналу;
Фиг. 5a иллюстрирует схематическое представление входящего звукового сигнала, последовательность звуковых значений, из которых он состоит, и этапы работы по фиг. 4 в отношении звуковых значений;
Фиг. 5b иллюстрирует схематическое представление настройки кодированного сигнала;
Фиг. 6 иллюстрирует блок-схему последовательности операций режима функционирования звукового кодера по фиг. 1 в отношении окончательной обработки до кодированного сигнала;
Фиг. 7a иллюстрирует схему, на которой показан вариант осуществления функции этапа квантования;
Фиг. 7a иллюстрирует схему, на которой показан другой вариант осуществления функции этапа квантования;
Фиг. 8 иллюстрирует принципиальную блок-схему звукового кодера, который может декодировать звуковой сигнал, закодированный звуковым кодером по фиг. 1, согласно варианту осуществления настоящего изобретения;
Фиг. 9 иллюстрирует блок-схему последовательности операций режима функционирования декодера по фиг. 8 при вводе данных;
Фиг. 10 иллюстрирует блок-схему последовательности операций режима функционирования декодера по фиг. 8 в отношении буферизации предварительно декодированных квантованных и отфильтрованных звуковых данных и обработки звуковых блоков без соответствующей дополнительной информации;
Фиг. 11 иллюстрирует блок-схему последовательности операций режима функционирования декодера по фиг. 8 в отношении фактической обратной фильтрации;
Фиг. 12 иллюстрирует схематическое представление традиционной схемы звукового кодирования, имеющей небольшое время задержки; и
Фиг. 13 иллюстрирует схему, на которой показаны в качестве примера спектр звукового сигнала, порог его прослушивания и передаточная функция пост-фильтра в декодере.
Фиг. 1 иллюстрирует звуковой кодер согласно варианту осуществления настоящего изобретения. Звуковой кодер, который, в общем, указан цифрой 10, включает в себя ввод 12 данных, где он принимает звуковой сигнал, который должен быть закодирован, который, как подробнее описывается со ссылкой на фиг. 5a, состоит из последовательности звуковых значений или значений выборок, и вывод данных, где выводится кодированный сигнал, информационное содержимое которого подробнее описывается со ссылкой на фиг. 5b.
Звуковой кодер 10 по фиг. 1 делится на часть 16 уменьшения нерелевантности и часть 18 уменьшения избыточности. Часть 16 уменьшения нерелевантности включает в себя средство 20 определения порога прослушивания, средство 22 вычисления значения усиления, средство 24 вычисления параметризации, средство 26 сравнения узлов, квантователь 28 и параметризуемый предварительный фильтр 30 и входной FIFO- (первым-вошел-первым-вышел) буфер 32, буфер или запоминающее устройство 38 и умножитель или средство 40 умножения. Часть 18 уменьшения избыточности включает в себя средство сжатия (компрессор) 34 и контроллер 36 скорости передачи в битах.
Часть 16 уменьшения нерелевантности и часть 18 уменьшения избыточности соединены последовательно в этом порядке между вводом 12 данных и выводом 14 данных. В частности, ввод 12 данных соединен с вводом данных средства 20 определения порога прослушивания и вводом данных входного буфера 32. Вывод данных средства 20 определения порога прослушивания соединен с вводом средства 24 вычисления параметризации и вводом данных средства 22 вычисления значения усиления для того, чтобы передавать порог прослушивания, определенный для него. Средства 22 и 24 вычисляют параметризацию или значение усиления на основе порога прослушивания и соединены со средством 26 сравнения узлов для того, чтобы передавать эти результаты ему. В зависимости от результата сравнения средство 26 сравнения узлов, как описывается далее, передает результаты, вычисленные средством 22 и 24, в качестве входного параметра или параметризации параметризуемому предварительному фильтру 30. Параметризуемый предварительный фильтр 30 подключен между выводом данных входного буфера 32 и вводом данных буфера 38. Умножитель 40 подключен между выводом данных буфера 38 и квантователем 28. Квантователь 28 передает фильтрованные звуковые значения, которые могут быть умножены или масштабированы, но всегда квантуются, в часть 18 уменьшения избыточности, более точно, во ввод данных средства 34 сжатия. Средство 26 сравнения узлов передает информацию, из которой входные параметры, переданные параметризуемому предварительному фильтру 30, могут быть получены части 18 уменьшения избыточности, более точно, в другой ввод данных средства 34 сжатия. Контроллер скорости передачи в битах соединен с управляющим входом умножителя 40 посредством управляющего соединения для того, чтобы предоставлять квантованные фильтрованные звуковые значения, принимаемые из предварительного фильтра 30, которые должны быть умножены умножителем 40 на соответствующий сомножитель, что подробнее описывается ниже. Контроллер 36 скорости передачи в битах подключен между выводом данных средства 34 сжатия и выводом 14 данных звукового кодера 10 для того, чтобы определять сомножитель для умножителя 40 надлежащим способом. Когда каждое звуковое значение проходит через квантователь 40 в первый раз, сомножитель сначала задается равным надлежащему коэффициенту масштабирования, например, 1. Тем не менее, буфер 38 продолжает сохранение каждого фильтрованного звукового значения для того, чтобы дать возможность контроллеру 36 скорости передачи в битах, описываемому далее, изменения сомножителя для другой передачи блока звуковых значений. Если это изменение не указано контроллером 36 скорости передачи в битах, буфер 38 может очистить память, занимаемую этим блоком.
После того как настройка звукового кодера по фиг. 1 описана выше, далее описывается его режим функционирования со ссылкой на фиг. 2-7b.
Как можно видеть на фиг. 2, звуковой сигнал, когда достигает звукового входа 12, уже получен посредством дискретизации 50 звуковых сигналов из аналогового звукового сигнала. Дискретизация звуковых сигналов выполняется на заранее определенной частоте дискретизации, которая обычно составляет от 32 до 48 кГц. Следовательно, на вводе 12 данных присутствует звуковой сигнал, состоящий из последовательности выборок или звуковых значений. Хотя кодирование звукового сигнала не выполняется на основе блоков, как станет очевидно из последующего описания, звуковые значения на вводе 12 данных сначала объединяются для того, чтобы сформировать звуковые блоки на этапе 52. Объединение для того, чтобы формировать звуковые блоки, выполняется только для целей определения порога прослушивания, как станет очевидно из последующего описания, и выполняется на входном этапе средства 20 определения порога прослушивания. В настоящем варианте осуществления для примера предполагается, что 128 последовательных звуковых значений объединяются для того, чтобы сформировать звуковые блоки, и что объединение выполняется таким образом, чтобы, с одной стороны, последовательные блоки не перекрывались, а с другой стороны, являлись соседями друг друга. Это на примере вкратце описывается со ссылкой на фиг. 5a.
На фиг. 5a позиция 54 указывает последовательность значений выборок, при этом каждое значение выборки проиллюстрировано прямоугольником 56. Значения выборок нумеруются для целей иллюстрации, тогда как для ясности, в свою очередь, только некоторые значения выборок последовательности 54 показаны. Как указано фигурными скобками над последовательностью 54, 128 последовательных значений выборки объединяются для того, чтобы сформировать блок согласно настоящему варианту осуществления, в котором непосредственно последовательные 128 значений выборок формируют следующий блок. Только в качестве меры предосторожности следует указать, что объединение для того, чтобы сформировать блоки, также может быть выполнено по-иному, например, посредством перекрывающихся блоков или разнесенных блоков, имеющих другой размер блока, хотя размер блока в 128, в свою очередь, является предпочтительным, поскольку представляет оптимальный компромисс между высоким качеством звука, с одной стороны, и наименьшим возможным временем задержки, с другой стороны.
Тогда как звуковые блоки, объединенные в средстве 20 на этапе 52, поблочно обрабатываются в средстве 20 определения порога прослушивания, входящие звуковые значения буферизуются 54 во входном буфере 32 до тех пор, пока параметризуемый предварительный фильтр 30 не получит входные параметры из средства 26 сравнения узлов для того, чтобы выполнить предварительную фильтрацию, как описывается далее.
Как можно видеть из фиг. 3, средство 20 определения порога прослушивания начинает свою обработку сразу после того, как достаточно звуковых значений принято на входе 12 данных для того, чтобы сформировать звуковой блок или чтобы сформировать следующий звуковой блок, который средство 20 отслеживает посредством контроля на этапе 60. Если нет полностью обрабатываемого звукового блока, средство 20 подождет. Если полный звуковой блок, который должен быть обработан, присутствует, средство 20 определения порога прослушивания вычисляет порог прослушивания на этапе 62 на основе надлежащей психоакустической модели на этапе 62. Для иллюстрации порога прослушивания снова обратимся к фиг. 12 и, в частности, к графику b, полученному на основе психоакустической модели, например, в отношении текущего звукового блока со спектром a. Порог маскировки, который определен на этапе 62, - это частотно-зависимая функция, которая может варьироваться для последовательных звуковых блоков и также может значительно варьироваться от одного звукового сигнала к другому, например, от фрагментов рок-музыки до классической музыки. Порог прослушивания указывает для каждой частоты пороговое значение, ниже которого человеческий слух не может воспринимать помехи.
На следующем этапе 64 средство 24 и средство 22 вычисляют из вычисленного порога прослушивания M(f) (f показывает частоту) значение усиления или набор из N параметров x(i) (i=1,..., N). Параметризация x(i), которую средство 24 вычисляет на этапе 64, предусмотрена для параметризуемого предварительного фильтра 30, который, например, осуществлен в структуре адаптивного фильтра, которая используется в LPC-кодировании (LPC - линейное предиктивное кодирование). Например, пусть s(n), n=0,..., 127, - это 128 звуковых значений текущего звукового блока, а s' (n) - это результирующие фильтрованные 128 звуковых значений, тогда фильтр примерно реализован таким образом, чтобы применялось следующее уравнение:
где K - порядок фильтрации, at k, k = 1,..., K, - это коэффициенты фильтрации, а индекс t предназначен для того, чтобы проиллюстрировать то, что коэффициенты фильтрации изменяются в последовательных звуковых блоках. Средство 24 затем вычисляет параметризацию at k с тем, чтобы передаточная функция H(f) параметризуемого предварительного фильтра 30 примерно равнялась инверсии модуля порога маскировки M(f), т.е. так, чтобы применялось следующее:
при этом зависимость от t, в свою очередь, служит для того, чтобы проиллюстрировать, что порог маскировки M(f) меняется для различных звуковых блоков. При реализации предварительного фильтра 30 в качестве вышеупомянутого адаптивного фильтра коэффициенты фильтрации at k получаются следующим образом: обратное дискретное преобразование Фурье |M(f, t)|2 над частотой блока в момент времени t приводит к целевой функции автокорреляции rt mm(i). Затем at k получается посредством решения системы линейных уравнений:
Чтобы не возникало нестабильности между параметризациями при линейной интерполяции, подробнее описанной ниже, предпочтительно используется решетчатая структура для фильтра 30, при этом коэффициенты фильтрации для решеточной структуры повторно параметризируются для того, чтобы сформировать коэффициенты отражения. В отношении дополнительных подробностей структуры предварительного фильтра, вычисления коэффициентов и повторной параметризации делается ссылка на статью Schuller и др., упомянутую во введении описания, и в частности, на страницу 381, раздел III, которая содержится в данном документе по ссылке.
Тогда как последовательно средство 24 вычисляет параметризацию для параметризуемого предварительного фильтра 30 таким образом, что его передаточная функция равна инверсии порога маскировки, средство 22 вычисляет предел мощности шума на основе порога прослушивания, а именно предел, указывающий то, какую мощность шума квантователю 28 разрешено вводить в звуковой сигнал, отфильтрованный предварительным фильтром 30 для того, чтобы шум квантования в декодере был ниже порога прослушивания M(f) или точно равен ему после пост- и обратной фильтрации. Средство 22 вычисляет этот предел мощности шума как область ниже квадрата модуля порога прослушивания M, т.е. как Σ|M(f)|2. Средство 22 вычисляет значение a усиления из предела мощности шума посредством вычисления корня части мощности шума квантования, поделенной на предел мощности шума. Шум квантования - это шум, вызываемый квантователем 28. Шум, вызываемый квантователем 28 - это, как описано ниже, белый шум, и он, таким образом, является частотно-независимым. Мощность шума квантования - это мощность шума квантования.
Из вышеприведенного описания очевидно, что средство 22 также вычисляет предел мощности шума отдельно от значения усиления a. Хотя средство 26 сравнения узлов может повторно вычислить предел мощности шума из значения усиления a, полученного из средства 22, также средство 22 может передать определенный предел мощности шума средству 26 сравнения узлов отдельно от значения усиления a.
После вычисления значения усиления и параметризации средство 26 сравнения узлов проверяет на этапе 66, отличается ли только что вычисленная параметризация более чем на заранее заданный порог от текущей последней параметризации, переданной параметризуемому предварительному фильтру. Если проверка на этапе 66 имеет такой результат, что только что вычисленная параметризация отличается от текущей на более чем заранее определенный порог, только что вычисленные коэффициенты фильтрации и только что вычисленное значение усиления или предел мощности шума буферизуются в средстве 26 сравнения узлов для интерполяции, которая будет описана, и средство 26 сравнения узлов передает предварительному фильтру 30 коэффициенты фильтрации, только что вычисленные на этапе 68, и значение усиления, только что вычисленное на этапе 70. Тем не менее, если этого не происходит и только что вычисленная параметризация не отличается от текущей более чем на заранее определенный порог, средство 26 сравнения узлов передает предварительному фильтру 30 на этапе 72, вместо только что вычисленной параметризации, только параметризацию текущего узла, т.е. ту параметризацию, которая последняя привела к положительному результату на этапе 66, т.е. отличается от параметризации предыдущего узла более чем на заранее определенный порог. После этапов 70 и 72 процесс фиг. 3 возвращается к обработке следующего звукового блока, т.е. к запросу 60.
В случае, когда только что вычисленная параметризация не отличается от параметризации текущего узла и, следовательно, предварительный фильтр 30 на этапе 72 снова получает параметризацию узла, уже полученную для, по меньшей мере, последнего звукового блока, предварительный фильтр 30 применяет параметризацию этого узла ко всем значениям выборок этого звукового блока в FIFO 32, как подробнее описано ниже, т.е. то, как этот текущий блок получается из FIFO 32 и квантователь 28 принимает результирующий звуковой блок предварительно фильтрованных звуковых значений.
Фиг. 4 подробнее иллюстрирует режим работы параметризуемого предварительного фильтра 30 для случая, когда он принимает только что вычисленную параметризацию и только что вычисленное значение усиления, поскольку они существенно отличаются от параметризации текущего узла. Как описано со ссылкой на фиг. 3, нет обработки согласно фиг. 4 для каждого из последовательных звуковых блоков, а только для звуковых блоков, где соответствующая параметризация существенно отличалась от параметризации текущего узла. Другие звуковые блоки, как только что было описано, предварительно фильтруются посредством применения соответствующей параметризации текущего узла и связанного соответствующего текущего значения усиления ко всем значениям выборок этих звуковых блоков.
На этапе 80 параметризуемый предварительный фильтр 30 проверяет, была ли выполнена передача только что вычисленных коэффициентов фильтрации из средства 26 сравнения узлов или из более старых операций параметризации узлов. Предварительный фильтр 30 выполняет проверку 80 до тех пор, пока эта передача не осуществится.
Как только передача произошла, параметризуемый предварительный фильтр 30 начинает обработку текущего звукового блока звуковых значений только в буфере 32, т.е. в том, для которого только что была рассчитана параметризация. На фиг. 5a, например, проиллюстрировано, что все звуковые значения 56 перед звуковым значением с номером 0 уже обработаны и, таким образом, уже прошли запоминающее устройство 32. Обработка блоков звуковых значений до звукового значения с номером 0 инициирована, поскольку параметризация, вычисленная для звукового блока перед блоком 0, т.е. x0(i), отличалась от параметризации узла, переданной ранее в предварительный фильтр 30, более чем на заранее определенный порог. Таким образом, параметризация x0(i) - это параметризация узла, описанная в настоящем изобретении. Обработка звуковых значений в звуковом блоке перед звуковым значением 0 выполнена на основе набора параметров a0, x0(i).
На фиг. 5a предполагается, что вычислена параметризация для блока 0 со звуковыми значениями 0-127, отличавшаяся меньше чем на заранее определенный порог от параметризации x0(i), которая относилась к блоку впереди. Таким образом, этот блок 0 также получен из FIFO 32 посредством предварительного фильтра 30, в равной степени обработан в отношении всех значений выборок 0-127 посредством параметризации x0(i), примененной на этапе 72, как указано стрелкой 81, описанной как "прямое применение", и затем передан в квантователь 28.
Параметризация, вычисленная для блока 1, по-прежнему размещенного в FIFO 32, тем не менее, наоборот, отличается, согласно иллюстративному примеру фиг. 5a, на более чем заранее определенный порог от параметризации x0(i), и таким образом, передается на этапе 68 в предварительный фильтр 30 как параметризация x1(i) вместе со значением усиления a1 (этап 70) и, если применимо, связанный предел мощности шума, при этом индексы a и x на фиг. 5 должны быть индексом для узлов, которые используются в интерполяции, которая должна быть описана ниже, которая выполняется в отношении значений выборок 128-255 в блоке 1, обозначенная стрелкой 82 и реализованная посредством этапов после этапа 80 на фиг. 4. Таким образом, обработка на этапе 80 должна начаться с появления звукового блока с номером 1.
В момент времени, когда передан набор параметров a1, x1, только звуковые значения 128-255, т.е. текущий звуковой блок после последнего звукового блока 0, обработанного предварительным фильтром 30, находятся в запоминающем устройстве 32. После определения передачи параметров x1(i) узла на этапе 80 предварительный фильтр 30 определяет предел q1 мощности шума, соответствующий значению a1 усиления на этапе 84. Это может выполняться посредством средства 26 сравнения узлов, передающего это значение в предварительный фильтр 30, или посредством предварительного фильтра 30, повторно вычисляющего это значение, как описано выше со ссылкой на этап 64.
После этого индекс j инициализируется как значение выборки на этапе 86 для того, чтобы указывать на самое старое значение выборки, оставшееся в запоминающем устройстве 32 FIFO, или первое значение выборки текущего звукового блока "блок 1", т.е. в настоящем примере фиг. 5 значение выборки 128. На этапе 88 параметризуемый предварительный фильтр осуществляет интерполяцию между коэффициентами x0 и x1 фильтрации, при этом в данном случае параметризация x0 выступает в качестве узла, имеющего номер звукового значения 127 предыдущего блока 0, а параметризация x1 выступает в качестве узла, имеющего номер звукового значения 255 текущего блока 1. Эти позиции 127 и 255 звуковых значений далее упоминаются как узел 0 и узел 1, при этом операции параметризации узлов, относящиеся к узлам на фиг. 5a, указываются стрелками 90 и 92.
На этапе 88 параметризуемый предварительный фильтр 30 выполняет интерполяцию коэффициентов x0, x1 фильтрации между двумя узлами в виде линейной интерполяции для того, чтобы получить интерполированные коэффициенты фильтрации в позиции выборки j, т.е. x(tj) (i), i = 1,..., N.
После этого, т.е. на этапе 90 параметризуемый предварительный фильтр 30 выполняет интерполяцию между пределом мощности шума q1 и q0, чтобы получить интерполированный предел мощности шума в позиции j выборки, т.е. q(tj).
На этапе 92 параметризуемый предварительный фильтр 30 далее вычисляет значение усиления для позиции j выборки на основе интерполированного предела мощности шума и мощности шума квантования и предпочтительно также интерполированных коэффициентов фильтрации, т.е. например, в зависимости от корня в котором для этой ссылки сделано в описании этапа 64 фиг. 3.
На этапе 94 параметризуемый предварительный фильтр 30 затем применяет значение усиления, вычисленные и интерполированные коэффициенты фильтрации к значению выборки в позиции j выборки для того, чтобы получить фильтрованное значение выборки для этой позиции выборки, т.е. s'(tj).
На этапе 96 параметризуемый предварительный фильтр 30 в таком случае проверяет, достигла ли позиция j выборки текущего узла, т.е. узла 1, в случае фиг. 5a позиции 255 выборки, т.е. значения выборки, для которого параметризация, переданная параметризуемому предварительному фильтру 30, плюс значение усиления должны быть допустимыми напрямую, т.е. без интерполяции. Если это не так, параметризуемый предварительный фильтр 30 увеличит или прирастит индекс j на 1, при этом этапы 88-96 повторяются. Тем не менее, если проверка на этапе 96 является положительной, параметризуемый предварительный фильтр применяет на этапе 100 последнее значение усиления, переданное из средства 26 сравнения узлов и последние коэффициенты фильтрации, переданные от средства 26 сравнения узлов непосредственно без интерполяции для значения выборки в новом узле, посредством чего текущий блок, т.е. в данном случае блок 1, обработан, и процесс выполняется снова на этапе 80 в отношении следующего блока, который должен быть обработан, которым в зависимости от того, отличается ли параметризация следующего звукового блока, блока 2, в существенной степени от параметризации x1(i), может быть следующий звуковой блок, блок 2, или более дальний звуковой блок.
Перед дополнительной процедурой, когда будет описана обработка фильтрованных значений s' выборок со ссылкой на фиг. 5, далее описывается назначение и исходные данные процедуры фиг. 3 и 4. Назначение фильтрации - это фильтрация звукового сигнала на входе 12 с помощью адаптивного фильтра, передаточная функция которого непрерывно регулируется к инверсии порога прослушивания до наилучшей возможной степени, которая также изменяется во времени. Причина этого заключается в том, что в декодере обратная фильтрация, передаточная функция которой соответствующим образом корректируется до конфигурации порога прослушивания, формирует белый шум квантования, вводимый посредством квантования фильтрованного звукового сигнала, т.е. частотно-постоянный шум квантования, посредством адаптивного фильтра, а именно, корректирует его до формы порога прослушивания.
Применение значения усиления на этапах 94 и 100 в предварительном фильтре 30 - это умножение звукового сигнала или фильтрованного звукового сигнала, т.е. значений выборки или фильтрованных значений выборки s', на коэффициент усиления. Назначение заключается в том, чтобы задать посредством этого шум квантования, вводимый в фильтрованный звуковой сигнал посредством квантования, подробнее описанного ниже, который корректируется посредством обратного квантования в декодере до формы порога прослушивания как можно выше без превышения порога прослушивания. Это может быть проиллюстрировано примером посредством формулы Парсеваля, согласно которой квадрат модуля функции равен квадрату модуля преобразования Фурье. Когда в декодере умножение звукового сигнала в предварительном фильтре посредством значения усиления снова обращается посредством деления фильтрованного звукового сигнала на значение усиления, мощность шума квантования также уменьшается, т.е. на коэффициент a-2, который является значением усиления. Следовательно, мощность шума квантования может быть задана до оптимально высокой степени посредством применения значения квантования в предварительном фильтре 30, что является синонимичным увеличению размера шага квантования и, таким образом, уменьшению числа шагов квантования, которые должны быть закодированы, что, в свою очередь, увеличивает сжатие дальнейшей части уменьшения избыточности.
Говоря по-иному, эффект предварительного фильтра может рассматриваться как нормализация сигнала до порога маскировки (маскирования), так чтобы уровень помех квантования мог быть сохранен постоянным по времени и частоте. Поскольку звуковой сигнал находится во временной области, квантование, таким образом, может быть выполнено пошагово с помощью единообразного постоянного квантования, как описывается ниже. Таким образом, в идеале любая возможная нерелевантность устраняется из звукового сигнала, и схема сжатия без потерь может быть также использована для того, чтобы устранить оставшуюся избыточность в предварительно фильтрованном и квантованном звуковом сигнале, как описано ниже.
Ссылаясь на фиг. 5a, снова нужно указать в явной форме, что, разумеется, используемые коэффициенты фильтрации и значения усиления a0, a1, x0, x1 должны быть доступны в декодере как дополнительная информация, что сложность передачи их, тем не менее, уменьшается посредством просто не использования новых коэффициентов фильтрации и новых значений усиления для каждого блока. Вместо этого осуществляется проверка 66 порогового значения для того, чтобы передавать только параметризации в качестве дополнительной информации с достаточным изменением параметризации и в противном случае не передавать дополнительной информации или параметризации. Интерполяция от старой к новой параметризации выполняется в звуковых блоках, для которых переданы параметризации. Интерполяция коэффициентов фильтрации выполняется способом, описанным выше со ссылкой на этапе 88. Интерполяция в отношении усиления выполняется посредством обходного пути, т.е. посредством линейной интерполяции 90 предела мощности шума q0, q1. В сравнении с прямой интерполяцией посредством значения усиления линейная интерполяция приводит к более оптимальному результату прослушивания или меньшим слышимым помехам в отношении предела мощности шума.
Далее описывается дополнительная обработка предварительно фильтрованного сигнала со ссылкой на фиг. 6, которая, по сути, включает в себя квантование и уменьшение избыточности. Сначала фильтрованные значения выборки, выводимые параметризуемым предварительным фильтром 30, сохраняются в буфере 38 и в то же время проходят из буфера 38 в умножитель 40, где они, поскольку это их первый проход, сначала передаются неизмененными, т.е. с коэффициентом масштабирования один, посредством умножителя 40 в квантователь 28. Далее фильтрованные звуковые значения выше верхнего предела обрезаются на этапе 110 и затем квантуются на этапе 112. Два этапа 110 и 112 исполняются квантователем 28. В частности, два этапа 110 и 112 предпочтительно исполняются квантователем 28 в одном этапе посредством квантования фильтрованных звуковых значений s' с помощью функции шага квантования, которая привязывает фильтрованные значения выборки s', к примеру, представленные в иллюстрации с плавающей запятой, до множества целых значений или индексов этапа квантования, и которая имеет плоский курс для фильтрованных значений выборки от некоторого порогового значения, с тем чтобы фильтрованные значения выборки, большие порогового значения, квантовались до одного и того же шага квантования. Пример этой функции шага квантования проиллюстрирован на фиг. 7a.
Квантованные фильтрованные значения выборки указаны как a' на фиг. 7a. Функция шага квантования - это предпочтительно функция шага квантования с размером шага, который постоянно ниже порогового значения, т.е. переход к следующему шагу квантования всегда осуществляется через постоянный промежуток вдоль входных значений S'. В реализации размер шага к пороговому значению корректируется таким образом, что число шагов квантования предпочтительно соответствует степени 2. Сравнивая с иллюстрацией с плавающей запятой входящих фильтрованных значений выборки s', пороговое значение меньше, с тем чтобы максимальное значение иллюстрируемой области иллюстрации с плавающей запятой превышало пороговое значение.
Причина такого порогового значения заключается в том, что было выявлено, что фильтрованный звуковой сигнал, выводимый предварительным фильтром 30, иногда содержит звуковые значения, складывающиеся до очень высоких значений вследствие нежелательного накопления гармонических волн. Дополнительно, было выявлено, что обрезание этих значений, которое выполняется посредством функции шага квантования, показанной на фиг. 7a, приводит к существенному уменьшению данных и только с незначительным ухудшением качества звука. Наоборот, эти случайные размещения в фильтрованном звуковом сигнале формируются искусственно посредством частотно-избирательной фильтрации в параметризуемом фильтре 30, с тем чтобы их обрезание ухудшало качество звука в незначительной степени.
В некоторой степени более показательным примером функции шага квантования, показанной на фиг. 7a, будет тот, который округляет все фильтрованные значения выборки s' до следующего целого числа вплоть до порогового значения и от него квантует все фильтрованные значения выборки выше до наивысшего шага квантования, к примеру, 256. Этот случай проиллюстрирован на фиг. 7a.
Другой пример возможной функции шага квантования - это пример, показанный на фиг. 7b. До порогового значения функция шага квантования фиг. 7b соответствует функции фиг. 7a. Вместо наличия прерывистого плоского направления значений выборки s' выше порогового значения, однако, функция шага квантования продолжает с крутизной, меньшей крутизны в зоне ниже порогового значения. Говоря по-иному, размер шага квантования выше порогового значения. Посредством этого достигается аналогичный эффект, как и посредством функции квантования по фиг. 7a, но, с одной стороны, с большей сложностью вследствие различных размеров шага квантования функции шага квантования выше и ниже порогового значения и, с другой стороны, улучшенным качеством звука, поскольку очень высокие фильтрованные звуковые значения s' не обрезаются полностью, а только квантуются с большим размером шага квантования.
Как описано выше, в декодере должны быть доступны не только квантованные и фильтрованные звуковые значения a', но также и входные параметры предварительного фильтра 30, что является основой фильтрации этих значений, т.е. параметризации узла, включающей рекомендацию по связанному значению усиления. На этапе 114 средство 34 сжатия, таким образом, выполняет первую попытку сжатия и, таким образом, сжимает дополнительную информацию, содержащую значения усиления a0 и a1 в таких узлах, как, например, 127 и 255, и коэффициенты фильтрации x0 и x1 в узлах, и квантованные фильтрованные значения выборки σ', до временно фильтрованного сигнала. Средством 34 сжатия, таким образом, является кодер, работающий в режиме без потерь, такой как, например, кодер Хаффмана или арифметический кодер с или без предсказания и/или адаптации.
Запоминающее устройство 38, через которое проходят фильтрованные значения выборки σ', выступает в качестве буфера для надлежащего размера блока, с помощью которого средство 34 сжатия обрабатывает квантованные, фильтрованные и также масштабированные, как описано ранее, звуковые значения a', выводимые квантователем 28. Размер блока может отличаться от размеров звуковых блоков, которые используются средством 20.
Как упоминалось выше, контроллер 36 скорости передачи в битах контролировал умножитель 40 посредством сомножителя 1 для первой попытки сжатия, так чтобы фильтрованные значения шли неизмененными из предварительного фильтра 30 в квантователь 28 и оттуда как квантованные фильтрованные звуковые значения в средство 34 сжатия. Средство 34 сжатия отслеживает на этапе 116, был ли конкретный размер блока кодирования, т.е. конкретное число квантованных фильтрованных звуковых значений, закодирован во временный кодированный сигнал, или должны ли дополнительные квантованные фильтрованные звуковые значения σ'быть закодированы во временный кодированный сигнал. Если размер блока сжатия не достигнут, средство 34 сжатия продолжает выполнение текущего сжатия 114. Тем не менее, если размер блока сжатия достигнут, контроллер 36 скорости передачи в битах проверяет на этапе 118, больше ли количество бит, требуемое для сжатия, количества бит, диктуемого требуемой скоростью передачи в битах. Если нет, контроллер 36 скорости передачи в битах проверяет на этапе 120, меньше ли требуемое количество бит количества бит, диктуемого требуемой скоростью передачи в битах. Если да, контроллер 36 скорости передачи в битах заполняет кодированный сигнал на этапе 122 заполняющими битами до тех пор, пока количество бит, диктуемое требуемой скоростью передачи в битах, не достигнуто. Далее кодированный сигнал выводится на этапе 124. Как альтернатива этапу 122, контроллер 36 скорости передачи в битах может передать блок сжатия фильтрованных звуковых значений σ', все еще хранящихся в запоминающем устройстве 38, на которых было основано последнее сжатие, в форме, умноженной на сомножитель больше 1 посредством умножителя 40, в квантователь 28 для дальнейшего прохождения этапов 110-118 до тех пор, пока количество бит, диктуемое требуемой скоростью передачи в битах, не будет достигнуто, что проиллюстрировано этапом 125, показанным пунктиром.
Тем не менее, если проверка на этапе 118 приводит к тому, что требуемое количество бит больше количества, диктуемого требуемой скоростью передачи в битах, контроллер 36 скорости передачи в битах изменяет сомножитель 40 на коэффициент исключительно между 0 и 1. Это выполняется на этапе 126. После этапа 126 контроллер 36 скорости передачи в битах предоставляет запоминающее устройство 38 для того, чтобы снова вывести последний блок сжатия или фильтрованные звуковые значения σ', на которых основано сжатие, при этом они далее умножаются на коэффициент, заданный на этапе 126, и повторно предоставляются в квантователь 28, после чего этапы 110-118 выполняются снова до тех пор, когда временной кодированный сигнал не ликвидирован.
Следует отметить, что при повторном выполнении этапов 110-116 на этапе 114, разумеется, коэффициент, используемый на этапе 126 (или этапе 125), также интегрируется в кодированный сигнал.
Назначение процедуры после этапа 126 - это увеличение эффективного размера шага квантователя 28 посредством коэффициента. Это означает, что результирующий шум квантования находится постоянно выше порога маскировки, что приводит к слышимым помехам или слышимому шуму, но приводит к уменьшенной скорости передачи в битах. Если после повторного прохождения этапов 110-116 снова определено на этапе 118, что требуемое количество бит больше количества бит, диктуемого требуемой скоростью передачи в битах, коэффициент вновь уменьшается на этапе 126, и т.д.
Если данные в итоге выводятся на этапе 124 как кодированный сигнал, следующий блок сжатия выполняется из последующих квантованных фильтрованных звуковых значений σ'.
Также следует отметить, что заранее инициализированное значение, отличное от 1, может быть использовано в качестве коэффициента умножения, к примеру, 1. В таком случае при любой ситуации сначала выполняется масштабирование, т.е. на самом верху фиг. 6.
Фиг. 5b снова иллюстрирует результирующий кодированный сигнал, который, в общем, указывается как 130. Кодированный сигнал включает в себя дополнительную информацию и основные данные между ней. Дополнительная информация включает в себя, как упоминалось выше, информацию, из которой может быть извлечено, для конкретных звуковых блоков, т.е. звуковых блоков, где значительное изменение коэффициентов фильтрации привело к последовательности звуковых блоков, значение усиления и значение коэффициентов фильтрации. При необходимости дополнительная информация включает в себя дополнительную информацию, относящуюся к значению усиления, используемому для контроллера бит. Вследствие взаимной зависимости значения усиления и предела q мощности шума дополнительная информация может необязательно, помимо значения a# усиления для узла #, также включать в себя предел q# мощности шума или только последнее. Дополнительная информация предпочтительно размещается внутри кодированного сигнала, с тем чтобы дополнительная информация для коэффициентов фильтрации и связанного значения усиления или связанного предела мощности шума размещалась перед основными данными в звуковом блоке квантованных фильтрованных звуковых значений σ', из которого эти коэффициенты фильтрации со связанными значениями усиления или связанным пределом мощности шума выведены, т.е. дополнительная информация a0, x0(i) после блока -1 и дополнительная информация a1, x1(i) после блока 1. Говоря по-иному, основные данные, т.е. квантованные фильтрованные звуковые значения σ', начиная, за исключением звукового блока типа, где существенное изменение в последовательности звуковых блоков привело к коэффициентам фильтрации, до, включительно, следующего звукового блока этого типа. На фиг. 5, например, звуковые значения σ' (t0)-σ' (t255) всегда размещаются между блоком 132 дополнительной информации для первого из двух этих звуковых блоков (блок -1) и другим блоком 134 дополнительной информации для второго из двух звуковых блоков (блок 1). Звуковые значения σ' (t0)-σ' (t127) являются декодируемыми или, как упоминалось выше со ссылкой на фиг. 5a, получаются только посредством дополнительной информации 132, тогда как звуковые значения σ' (t128)-σ' (t255) получены посредством интерполяции с использованием дополнительной информации 132 в качестве опорных значений в узле со значением выборки номер 127 и с использованием дополнительной информации 134 в качестве опорных значений в узле со значением выборки номер 255, и, таким образом, являются декодируемыми только посредством обоих элементов дополнительной информации.
Помимо этого, дополнительная информация, касающаяся значения усиления или предела мощности шума и коэффициентов фильтрации в каждом блоке 132 и 134 дополнительной информации, не всегда интегрирована независимо друг от друга. Наоборот, эта дополнительная информация передается в разностях с предыдущим блоком дополнительной информации. На фиг. 5b, например, блок 132 дополнительной информации содержит значение a0 усиления и коэффициенты x0 фильтрации в отношении узла в момент времени t-1. В блоке 132 дополнительной информации эти значения могут быть выведены из самого блока. Из блока 134 дополнительной информации, тем не менее, дополнительная информация, касающаяся узла в момент времени t255, может не выводиться только из этого блока. Наоборот, блок 134 дополнительной информации включает в себя только информацию о разностях значения a1 усиления узла в момент времени t255 и значения усиления узла в момент времени t0 и разности коэффициентов x1 фильтрации и коэффициентов x0 фильтрации. Следовательно, блок 134 дополнительной информации содержит только информацию о a1-a0 и x1(i)-x0(i). Тем не менее, в периодические моменты времени коэффициенты фильтрации и значение усиления или предел мощности шума должны быть передаваемы полностью и не только как разность с предыдущим узлом, к примеру, каждую секунду для того, чтобы дать возможность приемному устройству или декодеру фиксации выполняющегося потока данных кодирования, как описано ниже.
Этот тип интегрирования дополнительной информации в блоки 132 и 134 дополнительной информации предлагает преимущество возможности более высокой скорости сжатия. Причина этого заключается в том, что хотя дополнительная информация должна при возможности передаваться только в том случае, если получилось достаточное изменение коэффициентов фильтрации в сравнении с коэффициентами фильтрации предыдущего узла, сложность вычисления разности в кодере или вычисления суммы в декодере компенсируется полностью, поскольку итоговая разность является небольшой, несмотря на запрос этапа 66, чтобы таким образом, предоставлять недостатки в энтропийном кодировании.
После того как выше описан вариант осуществления звукового кодера, далее описывается вариант осуществления звукового декодера, который подходит для декодирования кодированного сигнала, генерируемого звуковым кодером 10 фиг. 1, до декодированного воспроизводимого или обрабатываемого звукового сигнала.
Настройка этого декодера показана на фиг. 8. Декодер, в общем указанный как 210, включает в себя средство 212 распаковки, запоминающее устройство 214 FIFO, умножитель 216 и параметризуемый пост-фильтр 218. Средство 212 распаковки, запоминающее устройство 214 FIFO, умножитель 216 и параметризуемый пост-фильтр подключены в этом порядке между вводом 220 данных и выводом 222 данных декодера 210, при этом кодированный сигнал принимается во вводе 220 данных, а декодированный звуковой сигнал, только отличный от исходного звукового сигнала во вводе 12 данных звукового кодера 10 посредством шума квантования, генерируемого квантователем 28 в звуковом кодере 10, выводится на выводе 222 данных. Средство 212 распаковки соединено с управляющим входом умножителя 216 на другом выводе данных для того, чтобы проходить по сомножителю, и с входом параметризации параметризуемого пост-фильтра 218 посредством другого вывода данных.
Как показано на фиг. 9, средство 212 распаковки сначала распаковывает на этапе 224 сжатый сигнал на входе 220 данных для того, чтобы получить квантованные фильтрованные звуковые данные, т.е. значения σ' выборки, и связанную дополнительную информацию в блоках 132, 134 дополнительной информации, которые, как известно, указывают коэффициенты фильтрации и значения усиления или, вместо значений усиления, пределы мощности шума в узлах.
Как показано на фиг. 10, средство 212 распаковки проверяет распакованный сигнал в порядке возникновения на этапе 226 на предмет того, содержится ли в нем дополнительная информация с коэффициентами фильтрации в изолированной форме без ссылки по разности на предыдущий блок дополнительной информации. Говоря по-иному, средство 212 распаковки ищет первый блок 132 дополнительной информации. Как только средство 212 распаковки нашло что-либо, квантованные фильтрованные звуковые значения σ' буферизуются в запоминающее устройство 214 FIFO на этапе 228. Если полный звуковой блок квантованных фильтрованных звуковых значений σ'сохранен на этапе 228 без непосредственно следующего блока дополнительной информации, он сначала подвергается пост-фильтрации на этапе 228 посредством информации, содержащейся в дополнительной информации, принятой на этапе 226, на основе параметризации и значения усиления в пост-фильтре и усиливается в умножителе 216, тем самым он декодируется и, таким образом, получается связанный декодированный звуковой блок.
На этапе 230 средство 212 распаковки отслеживает распакованный сигнал на предмет появления любого типа блока дополнительной информации, т.е. с абсолютными коэффициентами фильтрации или разностями коэффициентов фильтрации с предыдущим блоком дополнительной информации. В примере фиг. 5b средство 212 распаковки должно, например, обнаружить нахождение блока 134 дополнительной информации на этапе 230 после обнаружения блока 132 дополнительной информации на этапе 226. Таким образом, блок квантованных фильтрованных звуковых значений σ' (t0)-σ' (t127)должен быть декодирован на этапе 228 с помощью дополнительной информации 132. До тех пор, пока блок 134 дополнительной информации в распакованном сигнале еще не встретился, буферизация и, возможно, декодирование блоков продолжается на этапе 228 посредством дополнительной информации этапа 226, как описано ранее.
Как только блок 132 дополнительной информации обнаружен, средство 212 распаковки вычисляет значения параметров в узле 1, т.е. a1, x1(i), на этапе 232 посредством суммирования значений разности в блоке 134 дополнительной информации и значений параметров в блоке 132 дополнительной информации. Этап 232, разумеется, опускается, если текущий блок дополнительной информации является изолированным блоком дополнительной информации без разностей, который, как описано выше, может, к примеру, появляться ежесекундно. Чтобы время ожидания декодера 210 не было столь значительным, блоки 132 дополнительной информации, где значения параметров могут быть получены абсолютно, т.е. безотносительно другого блока дополнительной информации, размещаются на достаточно небольших расстояниях, с тем чтобы время включения или время простоя при переключении звукового кодера 210 в случае, например, радиопередачи или широковещательной передачи не было слишком большим. Предпочтительно, ряд блоков 132 дополнительной информации, размещенных между со значениями разности, размещается в фиксированном заранее определенном количестве между блоками 132 дополнительной информации, с тем, чтобы декодер знал, когда блок дополнительной информации типа 132 должен ожидаться повторно в кодированном сигнале. Альтернативно, другие типы блоков дополнительной информации указываются соответствующими флагами.
Как показано на фиг. 11, после того как блок дополнительной информации для нового узла достигнут, в частности, после этапа 226 или 232, индекс j значения выборки сначала инициализируется равным 0 на этапе 234. Это значение соответствует позиции выборки первого значения выборки звукового блока, в данный момент остающегося в FIFO 214, к которому относится текущая дополнительная информация. Этап 234 выполняется посредством параметризуемого пост-фильтра 218. Пост-фильтр 218 в таком случае вычисляет предел мощности шума в новом узле на этапе 236, причем этот этап соответствует этапу 84 фиг. 4 и может быть опущен, когда, например, предел мощности шума в узлах передается помимо значений усиления. На последующих этапах 238 и 240 пост-фильтр 218 выполняет интерполяцию в отношении коэффициентов фильтрации и предела мощности шума, соответствующую интерполяциям 88 и 90 фиг. 4. Последующее вычисление значения усиления для позиции j выборки на основе интерполированного предела мощности шума и интерполированных коэффициентов фильтрации этапов 238 и 240 на этапе 242 соответствует этапу 92 фиг. 4. На этапе 244 пост-фильтр 218 применяет значение усиления, вычисленное на этапе 242, и интерполированные коэффициенты фильтрации к значению выборки в позиции j выборки. Этот этап отличается от этапа 94 фиг. 4 тем, что интерполированные коэффициенты фильтрации применяются к квантованным фильтрованным значениям σ' выборки таким образом, чтобы передаточная функция параметризуемого пост-фильтра соответствовала не инверсии порога прослушивания, а самому порогу прослушивания. Помимо этого, пост-фильтр выполняет не умножение на значение усиления, а деление на значение усиления в квантованных фильтрованных значениях σ' выборкиили в уже обратно фильтрованном, квантованном фильтрованном значении выборки в позиции j.
Если пост-фильтр 218 еще не достиг текущего узла с позицией j выборки, которую он проверяет на этапе 246, он увеличивает индекс j позиции выборки на этапе 248 и повторно начинает этапы 238-246. Только когда узел достигнут, он применяет значение усиления и коэффициенты фильтрации нового узла к значению выборки в узле на этапе 250. Применение, в свою очередь, включает в себя, как на этапе 218, деление посредством значения фильтрации и фильтрация с помощью передаточной функции, равной порогу прослушивания, а не ее инверсии, вместо умножения. После этапа 250 текущий звуковой блок декодируется посредством интерполяции между двумя параметризациями узла.
Как уже упоминалось, шум, вводимый квантованием при кодировании на этапе 110 или 112, корректируется по форме и модулю до порога прослушивания посредством фильтрации и применения значения усиления на этапах 218 и 224.
Следует также отметить, что в случае, когда квантованные фильтрованные звуковые значения подвергнуты еще одному умножению на этапе 126 вследствие контроллера скорости передачи в битах перед кодированием в кодированный сигнал, этот коэффициент также может быть учтен на этапах 218 и 224. Альтернативно, звуковые значения, полученные посредством процесса фиг. 11, могут, разумеется, быть подвергнуты еще одному умножению для того, чтобы соответствующим образом снова усилить звуковые значения, ослабленные более низкой скоростью передачи в битах.
Ссылаясь на фиг. 3, 4, 6 и 9-11, следует отметить, что они иллюстрируют блок-схемы последовательности операций режима работы кодера фиг. 1 или декодера фиг. 8 и что каждый из этапов, проиллюстрированных на блок-схеме посредством блока, как описано, реализуется в соответствующем средстве, описанном ранее. Реализация отдельных этапов может быть выполнена в аппаратных средствах, таких как схема ASIC, или в программном обеспечении, таком как подпрограммы. В частности, описания, написанные в блоках на этих чертежах, приблизительно показывают, на какой процесс ссылается соответствующий этап, соответствующий своему блоку, тогда как стрелки между блоками иллюстрируют порядок этапов при работе кодера и декодера, соответственно.
Ссылаясь на предшествующее описание, следует еще раз отметить, что схема кодирования, проиллюстрированная выше, может варьироваться во многих смыслах. К примеру, не обязательно, чтобы параметризация и значение усиления или предел мощности шума, определенные для конкретного звукового блока, рассматривались как непосредственно допустимые для конкретного звукового значения, как в предыдущем варианте осуществления последнего соответствующего звукового значения каждого звукового блока, т.е. 128-го значения в этом звуковом блоке, с тем чтобы интерполяция этого звукового значения могла быть опущена. Вместо этого можно связать эти значения параметров узла с узлом, который временно находится между моментами времени выборки tn, n = 0,..., 127, звуковых значений этого звукового блока, с тем чтобы интерполяция была обязательной для каждого звукового значения. В частности, параметризация, определенная для звукового блока, или значение усиления, определенное для этого звукового блока, также может быть применено косвенно к другому значению, например, к звуковому значению в середине звукового блока, такому как 64-е звуковое значение в случае вышеупомянутого размера блока в 128 звуковых значений.
Дополнительно, следует указать, что вышеописанный вариант осуществления ссылался на схему звукового кодирования, предназначенную для генерирования кодированного сигнала с контролируемой скоростью передачи в битах. Тем не менее, контролирование скорости передачи в битах не обязательно для каждого варианта применения. Именно поэтому соответствующие этапы 116-122 и 126 также могут быть опущены.
Ссылаясь на схему сжатия, упомянутую со ссылкой на этап 114, в целях полноты делается ссылка на документ Schuller и др., описанный во введении к данному описанию, и в частности, на раздел IV, содержимое которого в отношении уменьшения избыточности посредством кодирования без потерь включено в данный документ по ссылке.
Помимо этого, следует отметить следующее в отношении предыдущего варианта осуществления. Хотя выше было описано, что пороговое значение всегда остается постоянным при квантовании или даже функция шага квантования всегда остается постоянной, т.е. помехи, генерируемые в фильтрованном звуковом сигнале, всегда квантуются или обрезаются посредством округления квантования, которое может ухудшить качество звука до слышимой степени, также может использовать эти меры только в том случае, если сложность звукового сигнала требует этого, т.е. если скорость передачи в битах, требуемая для кодирования, превышает необходимую скорость передачи в битах. В этом случае, помимо функций шага квантования, показанных на фиг. 7a и 7b, например, с размером шага квантования, постоянным по всему диапазону значений, возможных на выходе предварительного фильтра, может быть использована, и квантователь должен, к примеру, отвечать на сигнал для того, чтобы использовать либо функцию шага квантования со всегда постоянным размером шага квантования, либо одну из функций шага квантования согласно фиг. 7a и 7b, с тем чтобы квантователю могло быть проинструктировано посредством сигнала провести с небольшим ухудшением качества звука уменьшение шага квантования выше порогового значения или обрезанием выше порогового значения. Альтернативно, пороговое значение также может уменьшаться постепенно. В этом случае уменьшение порогового значения может быть выполнено вместо уменьшения коэффициента на этапе 126. После первой попытки сжатия без этапа 110 временно сжатый сигнал может быть подвергнут только выборочному квантованию порогового значения на модифицированном этапе 126, если скорость передачи в битах по-прежнему слишком высока (118). В другом допущении фильтрованные звуковые значения затем должны быть квантованы с функцией шага квантования, имеющей более пологий ход выше звукового порога. Дополнительное уменьшение скорости передачи в битах может быть выполнено на модифицированном этапе 126 посредством уменьшения порогового значения и, таким образом, посредством еще одной модификации функции шага квантования.
Более того, некоторые аспекты вышеописанного варианта осуществления являются преимущественными, но не обязательными. К примеру, интерполяция может быть опущена в вышеуказанной схеме звукового кодирования. Помимо этого, может быть возможно передать параметризации и значение усиления или параметризации и предел мощности шума в отношении каждого звукового блока со ссылкой на то, где они вычислены, и не пропускать таковую, когда последовательные параметризации отличаются меньше, чем на уже упомянутую заранее определенную величину.
Помимо этого, можно применять только кодирование по разности к операциям параметризации, а не к значению усиления или пределу мощности шума.
Помимо этого, есть возможность в вышеописанной схеме кодирования передавать коэффициенты фильтрации в разностных дополнительных блоках 134 другим способом, т.е., например, в форме текущих коэффициентов фильтрации минус ранее переданные коэффициенты фильтрации минус минимальный порог этапа 66.
Вышеописанная схема звукового кодирования, следовательно, относится, помимо прочего, к эффективной передаче дополнительной информации в звуковом кодере с очень маленьким временем задержки. Дополнительная информация, которая должна быть передана декодеру для того, чтобы звуковой сигнал, который должен быть восстановлен надлежащим образом, имел свойство обычного изменения, только медленно. Именно поэтому передаются только разности, что уменьшает скорость передачи в битах. Помимо этого, они передаются только в том случае, когда есть достаточные изменения. Иногда передается абсолютное значение в случае, когда предыдущие значения потеряны. Говоря по-иному, дополнительная информация из предварительного фильтра или коэффициенты передаются таким образом, чтобы пост-фильтр в декодере имеет обратную передаточную функцию, с тем чтобы звуковой сигнал мог быть снова восстановлен надлежащим образом. Скорость передачи в битах, необходимая для этого, уменьшается посредством передачи разностей, но только в том случае, если они имеют достаточный размер. Эти разности имеют меньшие значения и возникают боле часто, поэтому они требуют меньшее число бит при кодировании. Таким образом, кодирование по разности, в частности, окупается, поскольку разности также изменяются только монотонно с постоянно изменяющимися звуковыми сигналами.
В частности, следует отметить, что в зависимости от ситуации изобретаемая схема звукового кодирования также может быть реализована в программном обеспечении. Реализация может быть на цифровом носителе хранения, в частности, на диске или компакт-диске, имеющем управляющие сигналы, которые могут считываться в электронной форме, которая может взаимодействовать с программируемой вычислительной системой, с тем чтобы соответствующий способ приводился в исполнение. В общем, изобретение также относится к вычислительному программному продукту, имеющему программный код, сохраненный на машиночитаемом носителе, для выполнения изобретаемого способа, когда вычислительный программный продукт выполняется на вычислительной машине. Говоря по-иному, изобретение также может быть реализовано как вычислительная программа, имеющая программный код для выполнения способа, когда вычислительная программа выполняется на вычислительной машине.
В частности, вышеописанные этапы способа на блоках блок-схемы последовательности операций могут быть реализованы отдельно или в группах по несколько вместе с процедурами подпрограмм. Альтернативно, реализация изобретаемого устройства в форме интегрированной микросхемы, разумеется, также возможна, когда эти блоки, например, реализованы как отдельные части схемы ASIC.
В частности, следует отметить, что в зависимости от ситуации изобретаемая схема также может быть реализована в программном обеспечении. Реализация может быть на цифровом носителе хранения, в частности, на диске или компакт-диске, имеющем управляющие сигналы, которые могут считываться в электронной форме, которая может взаимодействовать с программируемой вычислительной системой, с тем, чтобы соответствующий способ приводился в исполнение. В общем, изобретение, таким образом, также относится к вычислительному программному продукту, имеющему программный код, сохраненный на машиночитаемом носителе, для выполнения изобретаемого способа, когда вычислительный программный продукт выполняется на вычислительной машине. Говоря по-иному, изобретение также может быть реализовано как вычислительная программа, имеющая программный код для выполнения способа, когда вычислительная программа выполняется на вычислительной машине.
Изобретение относится к кодеру и декодеру звука и кодированию звука, дающему возможность звуковым сигналам быть закодированными с коротким временем задержки. Технический результат - повышение эффективности кодирования. Кодирование звукового сигнала последовательности звуковых значений в кодированный сигнал включает в себя определение первого порога прослушивания для первого блока звуковых значений последовательности звуковых значений и второго порога прослушивания для второго блока звуковых значений последовательности звуковых значений; вычисление версии первой параметризации параметризуемого фильтра, так чтобы его передаточная функция примерно соответствовала инверсии модуля первого порога прослушивания, и версии второй параметризации параметризуемого фильтра, так чтобы его передаточная функция примерно соответствовала инверсии модуля второго порога прослушивания; фильтрацию заранее определенного блока звуковых значений последовательности звуковых значений с помощью параметризуемого фильтра с использованием заранее определенной параметризации, которая заранее определенным образом зависит от версии второй параметризации для того, чтобы получить блок фильтрованных звуковых значений, соответствующих заранее определенному блоку; квантование фильтрованных звуковых значений для того, чтобы получить блок квантованных фильтрованных звуковых значений; формирование комбинации версии первой параметризации и версии второй параметризации, включающей в себя, по меньшей мере, разность между версией первой параметризации и версией второй параметризации; и интеграцию информации, из которой могут быть получены фильтрованные квантованные звуковые значения и версия первой параметризации и которая включает комбинацию в кодированный сигнал. 6 н. и 6 з.п. ф-лы, 15 ил.
средство определения первого порога прослушивания для первого блока звуковых значений последовательности звуковых значений и второго порога прослушивания для второго блока звуковых значений последовательности звуковых значений;
средство (24) вычисления версии первой параметризации параметризуемого фильтра (30), так чтобы его передаточная функция соответствовала инверсии модуля первого порога прослушивания, и версии второй параметризации параметризуемого фильтра, так чтобы его передаточная функция соответствовала инверсии модуля второго порога прослушивания;
средство фильтрации заранее определенного блока звуковых значений последовательности звуковых значений с помощью параметризуемого фильтра с использованием заранее определенной параметризации, которая заранее определенным образом зависит от версии второй параметризации, чтобы получить блок фильтрованных звуковых значений, соответствующих заранее определенному блоку;
средство квантования фильтрованных звуковых значений для того, чтобы получить блок квантованных фильтрованных звуковых значений;
средство формирования комбинации версии первой параметризации и версии второй параметризации, включающей в себя, по меньшей мере, разность между версией первой параметризации и версией второй параметризации; и
средство интеграции информации, из которой могут быть получены фильтрованные квантованные звуковые значения и версия первой параметризации и которая включает упомянутую комбинацию в кодированный сигнал.
средство интерполяции между версией первой параметризации и версией второй параметризации для того, чтобы получить версию интерполированной параметризации параметризуемого фильтра (30) для заранее определенного звукового значения заранее определенного блока звуковых значений; и
средство применения версии интерполированной параметризации параметризуемого фильтра (30) к заранее определенному звуковому значению.
средство проверки параметризаций одной за другой на предмет того, отличаются ли они более чем на заранее определенную величину от первой параметризации, и выбора только той параметризации из числа параметризаций в качестве второй параметризации, которая в первый раз отличается более чем на заранее определенную величину от первой параметризации.
определяют первый порог прослушивания для первого блока звуковых значений упомянутой последовательности звуковых значений и второй порог прослушивания для второго блока звуковых значений упомянутой последовательности звуковых значений;
вычисляют версию первой параметризации параметризуемого фильтра (30), так чтобы его передаточная функция соответствовала инверсии модуля первого порога прослушивания, и версию второй параметризации параметризуемого фильтра, так чтобы его передаточная функция соответствовала инверсии модуля второго порога прослушивания;
фильтруют заранее определенный блок звуковых значений упомянутой последовательности звуковых значений с помощью параметризуемого фильтра с использованием заранее определенной параметризации, которая заранее определенным образом зависит от версии второй параметризации для того, чтобы получить блок фильтрованных звуковых значений, соответствующих заранее определенному блоку;
квантуют фильтрованные звуковые значения для того, чтобы получить блок квантованных фильтрованных звуковых значений;
формируют комбинацию версии первой параметризации и версии второй параметризации, включающую в себя, по меньшей мере, разность между версией первой параметризации и версией второй параметризации; и
интегрируют информацию, из которой могут быть получены квантованные фильтрованные звуковые значения и которая включает упомянутую комбинацию в кодированный сигнал.
средство получения версии первой параметризации из кодированного сигнала;
средство вычисления суммы между версией первой параметризации и упомянутой разностью для того, чтобы получить версию второй параметризации; и
средство фильтрации блока квантованных фильтрованных звуковых значений с помощью параметризуемого фильтра с использованием версии второй параметризации, так чтобы его передаточная функция соответствовала инверсии модуля порога прослушивания для того, чтобы получить блок декодированных звуковых значений звукового сигнала.
получают версию первой параметризации из кодированного сигнала;
вычисляют сумму между версией первой параметризации и упомянутой разностью для того, чтобы получить версию второй параметризации; и
фильтруют блок квантованных фильтрованных звуковых значений с помощью параметризуемого фильтра с использованием версии второй параметризации, так чтобы его передаточная функция соответствовала инверсии модуля порога прослушивания для того, чтобы получить блок декодированных звуковых значений звукового сигнала.
SCHULLER G D T ET AL: «PERCEPTUAL AUDIO CODING USING ADAPTIVE PRE-AND POST-FILTERS AND LOSSLESS COMPRESSION», IEEE TRANSACTIONS ON SPEECH AND AUDIO PRPCESSING, IEEE INC., NEW YORK, US, vol.10, №6, 09.2002, p.p.379-390, XP001219570 ISSN: 1063-66776 | |||
СПОСОБ И УСТРОЙСТВО МАСШТАБИРОВАННОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ЗВУКА | 1998 |
|
RU2185024C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ЗВУКОВЫХ СИГНАЛОВ | 1996 |
|
RU2158478C2 |
СПОСОБ КОДИРОВАНИЯ РЕЧИ (ВАРИАНТЫ), КОДИРУЮЩЕЕ И ДЕКОДИРУЮЩЕЕ УСТРОЙСТВО | 1998 |
|
RU2214048C2 |
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
US 5581653, A, 03.12.1996 | |||
0 |
|
SU193143A1 |
Авторы
Даты
2009-02-10—Публикация
2005-02-10—Подача