Устройство кодирования речи-аудио, устройство декодирования речи-аудио, способ кодирования речи-аудио и способ декодирования речи-аудио

Иллюстрации

Показать все

Изобретение относится к средствам для кодирования и декодирования аудио. Технический результат заключается в сокращении количества битов, необходимых для кодирования спектра, при сохранении качества звука. Преобразуют входной речевой сигнал временной области в спектр частотной области. Делят частотную область упомянутого спектра в расширенной полосе на множество полос. Устанавливают ограниченную полосу для каждой полученной делением полосы в текущем кадре, когда разность между первой частотой с первой максимальной амплитудой в спектре полученной делением полосы в предшествующем кадре и второй частотой со второй максимальной амплитудой в спектре полученной делением полосы в текущем кадре меньше некоторого порогового значения, причем ширина ограниченной полосы в текущем кадре меньше, чем у полученной делением полосы, и ограниченная полоса включает в себя упомянутую первую частоту. Кодируют спектр в ограниченной полосе в пределах каждой полученной делением полосы в текущем кадре и не кодируют спектр за пределами ограниченной полосы в пределах каждой полученной делением полосы в текущем кадре. 2 н. и 10 з.п. ф-лы, 24 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится к устройству кодирования речи/аудио, устройству декодирования речи/аудио, способу кодирования речи/аудио и способу декодирования речи/аудио с использованием схемы кодирования с преобразованием.

Уровень техники

В качестве схемы, посредством которой можно эффективно кодировать речевой сигнал или музыкальный сигнал в сверхширокой полосе (SWB: Super-Wide-Band) 0,05-14 кГц, существуют способы, раскрытые в Непатентной Литературе (далее в этом документе, называемой "NPL") 1 и NPL 2, стандартизированные в ITU-T (Сектор стандартизации телекоммуникаций Международного союза электросвязи). Согласно этим способам, полоса до 7 кГц кодируется узлом базового кодирования, а полоса 7 кГц или выше (далее в этом документе называемая "расширенная полоса") кодируется узлом расширенного кодирования.

Узел базового кодирования выполняет кодирование с использованием линейного предсказания с кодовым возбуждением (CELP), преобразовывает остаточный сигнал, который не может быть закодирован посредством CELP, в частотную область посредством MDCT (Modified Discrete Cosine Transform, Модифицированное дискретное косинусное преобразование), и затем кодирует этот преобразованный остаточный сигнал посредством кодирования с преобразованием, например, FPC (Factorial Pulse Coding, факториальное импульсное кодирование) или AVQ (Algebraic Vector Quantization, алгебраическое векторное квантование). Узел расширенного кодирования выполняет кодирование с использованием способа поиска полосы, имеющей большую корреляцию со спектром нижней полосы, до 7 кГц, в расширенной полосе, 7 кГц или выше, и использованием полосы, имеющей самую большую упомянутую корреляцию, для кодирования упомянутой расширенной полосы. Согласно NPL 1 и NPL 2, количество кодируемых битов является предопределенным соответственно для стороны нижней полосы, до 7 кГц, и стороны верхней полосы, 7 кГц или выше, и сторона нижней полосы и сторона верхней полосы кодируются посредством этого соответственно определенного количества кодируемых битов.

В NPL 3 также раскрыто то, что схема для кодирования SWB является стандартизированной в ITU-T. Устройство кодирования, согласно NPL 3, преобразовывает входной сигнал в частотную область посредством MDCT, делит этот входной сигнал на подполосы и выполняет кодирование на основе подполосы. Более конкретно, это устройство кодирования сначала вычисляет энергию каждой подполосы и выполняет кодирование. Далее, для кодирования тонкой структуры частоты устройство кодирования распределяет кодируемые биты для кодирования тонкой структуры частоты каждой подполосе на основе энергии подполосы. Тонкая структура частоты кодируется с использованием решетчатого векторного квантования. Как и в случае FPC или AVQ, решетчатое векторное квантование также является своего рода кодированием с преобразованием, подходящим для кодирования спектра. Так как в решетчатом векторном квантовании кодируемые биты не распределяются в достаточном количестве, то может существовать большое рассогласование между энергией декодированного спектра и энергией подполосы. В этом случае, кодирование выполняется посредством обработки заполнения этого рассогласования между энергией подполосы и энергией декодированного спектра вектором шума.

В NPL 4 раскрыт способ кодирования с использованием AAC (Advanced Audio Coding, Усовершенствованное Аудиокодирование), в AAC вычисляется порог маскировки на основе перцепционной модели, из цели кодирования исключаются коэффициенты MDCT, которые меньше или равны этому порогу маскировки, и, посредством этого, кодирование выполняется эффективно.

Список ссылок

Непатентная литература

NPL 1

ITU-T Standard G.718 AnnexB, 2010

NPL 2

ITU-T Standard G729.1 AnnexE, 2010

NPL 3

ITU-T Standard G719, 2008

NPL 4

MP3 AND AAC explained, AES 17th International Conference on High Quality Audio Coding, 1999

Сущность изобретения

Техническая проблема

Согласно NPL 1 и NPL 2, стороне нижней полосы, которая должна быть закодирована узлом базового кодирования, и стороне верхней полосы, которая должна быть закодирована узлом расширенного кодирования, распределяется фиксированное количество битов, и не существует возможности надлежащего распределения кодируемых битов нижней полосе и верхней полосе согласно характеристикам сигналов. Поэтому существует проблема, заключающаяся в том, что нельзя получить достаточную производительность в зависимости от характеристик входных сигналов.

При этом, согласно NPL 3 обеспечен механизм для адаптивного распределения битов от нижней полосы верхней полосе согласно энергии подполос, но с концентрацией внимания на перцепционной характеристике в том смысле что, чем выше полоса, тем ниже чувствительность к спектральной ошибке, существует проблема, заключающаяся в том, что верхней полосе вероятно будет распределено битов больше, чем это необходимо. Эти проблемы будут описаны ниже.

В процессе кодирования количество битов, необходимое для каждой подполосы, вычисляется так, что чем больше энергия подполосы, вычисляемая для каждой подполосы, тем распределяется большее количество битов. Однако, в случае кодирования с преобразованием, согласно сущности алгоритма, даже когда количество распределенных кодируемых битов увеличивается на один бит, производительность кодирования может не улучшаться, и результат кодирования может не изменяться до тех пор, пока не будет распределено некоторое значительное количество битов. Поэтому может быть удобно, если биты распределяются не бит за битом, а в блоках, состоящих из некоторого значительного количества битов. Такой блок битов, необходимых для кодирования, далее в этом документе называют "блоком". Чем больше количество распределенных блоков, тем более точно могут быть выражены форма и амплитуда спектра. То, что большая ширина полосы берется для подполос в более высокой полосе, чем в более низкой полосе, является обычной практикой, вследствие перцепционных характеристик, но чем шире ширина полосы, тем большее количество битов необходимо для одного блока, и, следовательно, количество битов для каждого блока изменяется согласно ширине полосы.

В кодировании с преобразованием, рассматриваемом в настоящем изобретении, так как спектр аппроксимируется небольшим количеством последовательностей импульсов в частотной области, используются кодируемые биты, распределяемые на поблочной основе для информации об амплитуде и информации о позиции.

Кроме того, согласно NPL 4 кодирование выполняется эффективно посредством исключения коэффициентов MDCT, которые не являются важными в отношении перцепционных характеристик, из целей кодирования, но точно выражается информация о позиции отдельных спектров, которые должны быть закодированы. Поэтому, чем шире ширина полосы подполосы, тем большее количество битов должно быть использовано для выражения позиций отдельных спектров.

Однако по мере повышения полосы перцепционная чувствительность к спектральной позиции ухудшается, и, если основная спектральная амплитуда и энергия подполосы могут быть выражены, перцепционное ухудшение почти не воспринимается. При этом, согласно NPL 3 и NPL 4, большее количество битов также используется в верхней полосе так, что позиции отдельных спектров могут быть выражены точно. Соответственно, существует проблема, заключающаяся в том, что для точного выражения спектральных позиций используется большее количество кодируемых битов, чем это необходимо.

Целью настоящего изобретения является обеспечение устройства кодирования речи/аудио, устройства декодирования речи/аудио, способа кодирования речи/аудио и способа декодирования речи/аудио, которые обеспечивают возможность сокращения количества кодируемых битов, которые должны быть распределены для кодирования спектра расширенной полосы, наряду с предотвращением ухудшения качества звука в расширенной полосе.

Решение проблемы

Устройство кодирования речи/аудио согласно настоящему изобретению включает в себя: узел преобразования время-частота, который преобразовывает входной сигнал временной области в спектр частотной области, узел деления, который делит упомянутый спектр на подполосы, узел сжатия полосы, который делит спектр в подполосе в пределах расширенной полосы на комбинации из множества выборок в порядке от стороны нижней полосы или стороны верхней полосы, который выбирает спектры, имеющие большие абсолютные значения амплитуды, из упомянутых комбинаций, который плотно размещает выбранные спектры в частотной области, и который сжимает полосу упомянутой подполосы, и узел кодирования с преобразованием, который кодирует спектр подполосы, более низкой, чем расширенная полоса, и спектр сжатой полосы посредством кодирования с преобразованием.

Устройство декодирования речи/аудио согласно настоящему изобретению включает в себя: узел декодирования кодирования с преобразованием, который декодирует кодированные данные, получающиеся в результате кодирования с преобразованием, как спектра в полосе подполосы, полученной посредством деления спектра подполосы в пределах расширенной полосы на комбинации из множества выборок в порядке от стороны нижней полосы или стороны верхней полосы, выбора спектров, имеющих большие абсолютные значения амплитуды, из упомянутых комбинаций, плотного размещения выбранных спектров в частотной области и сжатия полосы упомянутой подполосы, так и спектра подполосы, более низкой, чем расширенная полоса, узел расширения полосы, который расширяет ширину полосы сжатой подполосы до ширины полосы исходной подполосы, узел интеграции подполос, который интегрирует спектр подполосы, более низкой, чем декодированная расширенная полоса, и спектр подполосы в пределах расширенной полосы в один вектор, и узел преобразования частота-время, который преобразовывает интегрированный спектр частотной области в сигнал временной области.

Способ кодирования речи/аудио согласно настоящему изобретению включает в себя: преобразование входного сигнала временной области в спектр частотной области, деление упомянутого спектра на подполосы, деление спектра в подполосе в пределах расширенной полосы на комбинации из множества выборок в порядке от стороны нижней полосы или стороны верхней полосы, выбор спектров, имеющих большие абсолютные значения амплитуды, из упомянутых комбинаций, плотное размещение выбранных спектров в частотной области и сжатие полосы упомянутой подполосы, и кодирование спектра подполосы, более низкой, чем расширенная полоса, и спектра сжатой полосы посредством кодирования с преобразованием.

Способ декодирования речи/аудио согласно настоящему изобретению включает в себя: декодирование кодированных данных, получающихся в результате кодирования с преобразованием, как спектра в полосе подполосы, полученной посредством деления спектра подполосы в пределах расширенной полосы на комбинации из множества выборок в порядке от стороны нижней полосы или стороны верхней полосы, выбора спектров, имеющих большие абсолютные значения амплитуды, из упомянутых комбинаций, плотного размещения выбранных спектров в частотной области и сжатия полосы упомянутой подполосы, так и спектра подполосы, более низкой, чем расширенная полоса, расширение ширины полосы сжатой подполосы до ширины полосы исходной подполосы, интеграцию спектра подполосы, более низкой, чем декодированная расширенная полоса, и спектра подполосы в пределах расширенной полосы в один вектор, и преобразование интегрированного спектра частотной области в сигнал временной области.

Полезные эффекты изобретения

Согласно настоящему изобретению, возможно сокращение количества кодируемых битов, которые должны быть распределены для кодирования спектра расширенной полосы, наряду с предотвращением ухудшения качества звука в расширенной полосе.

Краткое описание чертежей

Фиг. 1 - структурная схема, иллюстрирующая конфигурацию устройства кодирования речи/аудио согласно Вариантам 1, 3 и 5 осуществления настоящего изобретения.

Фиг. 2A - Фиг. 2C - схемы, обеспеченные для описания сжатия полосы.

Фиг. 3 - схема, обеспеченная для описания операции узла повторного вычисления количества блоков.

Фиг. 4 - структурная схема, иллюстрирующая конфигурацию устройства декодирования речи/аудио согласно Вариантам 1, 3 и 5 осуществления настоящего изобретения.

Фиг. 5 - схема, обеспеченная для описания расширения полосы.

Фиг. 6 - структурная схема, иллюстрирующая еще одну конфигурацию устройства кодирования речи/аудио согласно Варианту 1 осуществления настоящего изобретения.

Фиг. 7 - структурная схема, иллюстрирующая еще одну конфигурацию устройства декодирования речи/аудио согласно Варианту 1 осуществления настоящего изобретения.

Фиг. 8 - структурная схема, иллюстрирующая конфигурацию устройства кодирования речи/аудио согласно Варианту 2 осуществления настоящего изобретения.

Фиг. 9 - структурная схема, иллюстрирующая конфигурацию устройства декодирования речи/аудио согласно Варианту 2 осуществления настоящего изобретения.

Фиг. 10 - схема, иллюстрирующая полосу, расширенную на основе информации о коррекции позиции.

Фиг. 11 - структурная схема, иллюстрирующая конфигурацию устройства кодирования речи/аудио согласно Варианту 4 осуществления настоящего изобретения.

Фиг. 12A - Фиг. 12D - схемы, обеспеченные для описания разнесения.

Фиг. 13 - структурная схема, иллюстрирующая конфигурацию устройства декодирования речи/аудио согласно Варианту 4 осуществления настоящего изобретения.

Фиг. 14 - схема, иллюстрирующая пример сжатия полосы.

Фиг. 15 - схема, иллюстрирующая пример расширения полосы.

Фиг. 16 - структурная схема, иллюстрирующая конфигурацию устройства кодирования речи/аудио согласно Варианту 6 осуществления настоящего изобретения.

Фиг. 17 - схема, иллюстрирующая пример кодирования с преобразованием, не сопровождаемого ограничением полосы.

Фиг. 18 - схема, иллюстрирующая пример кодирования с преобразованием, сопровождаемого ограничением полосы.

Фиг. 19 - структурная схема, иллюстрирующая конфигурацию устройства декодирования речи/аудио согласно Варианту 6 осуществления настоящего изобретения.

Описание вариантов осуществления

Далее будут подробно описаны варианты осуществления настоящего изобретения согласно прилагаемым чертежам. При этом используется сквозная нумерация, и повторяющиеся описания будут опущены.

(Вариант осуществления 1)

Фиг. 1 является структурной схемой, иллюстрирующей конфигурацию устройства 100 кодирования речи/аудио согласно Варианту 1 осуществления настоящего изобретения. Далее, с использованием Фиг. 1, будет описана конфигурация устройства 100 кодирования речи/аудио.

Узел 101 преобразования время-частота получает входной сигнал, преобразовывает полученный входной сигнал временной области в сигнал частотной области, и выводит сигнал частотной области в узел 102 деления на подполосы как спектр входного сигнала. Заметим, что, в этом варианте осуществления, в качестве примера преобразования время-частота будет описано MDCT, но также может быть использовано ортогональное преобразование, например, FFT (Fast Fourier Transform, быстрое преобразование Фурье) или DCT (Discrete Cosine Transform, дискретное косинусное преобразование).

Узел 102 деления на подполосы делит спектр входного сигнала, выводимый из узла 101 преобразования время-частота, на M подполос, и выводит этот спектр подполос в узел 103 вычисления энергии подполосы и узел 105 сжатия полосы. С учетом перцепционных характеристик человека, обычно выполняется неравномерное деление так, что чем ниже полоса, тем ширина полосы становится уже, и чем выше полоса, тем ширина полосы становится шире. Настоящий вариант осуществления будет также описан на основе этого предположения. Предположим, что длина подполосы n-ой подполосы представлена посредством W[n], и вектор спектра подполосы представлен посредством Sn. В каждом Sn хранится W[n] спектров. Предположим, что имеет место отношение W[k-l]≤W[k]. Примером схемы кодирования, которая выполняет неравномерное деление, является G.719 ITU-T. G.719 осуществляет преобразование время-частота входного сигнала с частотой выборки 48 кГц. После этого G.719 делит спектр на подполосы через каждые 8 точек в частотной области в самой нижней полосе, и делит спектр на подполосы через каждые 32 точки в самой верхней полосе. Заметим, что G.719 является схемой кодирования, которая может использовать много кодируемых битов, от 32 Кбит/с до 128 Кбит/с, но для того, чтобы дополнительно снизить битрейт, полезно увеличивать длину каждой подполосы и увеличивать длину подполосы для верхних полос, в частности.

Узел 103 вычисления энергии подполосы вычисляет энергию для каждой подполосы исходя из спектра подполосы, выводимого из узла 102 деления на подполосы, выводит квантованную энергию подполосы в узел 104 вычисления количества блоков, и выводит кодированные данные энергии подполосы, получаемые посредством кодирования энергии подполосы, в узел 108 мультиплексирования. При этом предположим, что энергией подполосы является энергия спектра, включенного в подполосу, выражаемая логарифмом по основанию 2. Уравнение вычисления энергии подполосы представлено в нижеследующем уравнении 1.

[1]

При этом n представляет количество подполос, E[n] представляет энергию подполосы для подполосы n, W[n] представляет длину подполосы для подполосы n и Sn[i] представляет i-ый спектр n-ой подполосы. Предположим, что длина подполосы регистрируется заранее в узле 103 вычисления энергии подполосы.

Узел 104 вычисления количества блоков вычисляет предварительное количество распределяемых битов, которые должны быть распределены подполосе, на основе квантованной энергии подполосы, выводимой из узла 103 вычисления энергии подполосы, и выводит это предварительное количество распределенных битов вместе с вычисленным количеством блоков в узел 106 повторного вычисления количества блоков. Как и в случае узла 103 вычисления энергии подполосы, предположим, что длина подполосы регистрируется заранее в узле 104 вычисления количества блоков. В основном, чем больше энергия E[n] подполосы, тем большее количество кодируемых битов распределяется. Однако кодируемые биты распределяются на поблочной основе, и количество битов для каждого блока зависит от длины подполосы. Поэтому для оптимального распределения необходимо включение распределения битов в других подполосах. Узел 104 вычисления количества блоков будет подробно описан ниже.

Узел 105 сжатия полосы сжимает каждую подполосу в расширенной полосе с использованием спектра подполосы, выводимого из узла 102 деления на подполосы, и выводит подполосу со стороны нижней полосы и спектр сжатой подполосы, включающий в себя сжатую подполосу, в узел 107 кодирования с преобразованием. Целью сжатия полосы является удаление информации о позиции спектра наряду с тем, что основной спектр остается целью кодирования, и, посредством этого, сокращение количества кодируемых битов, требуемых для кодирования с преобразованием. Узел 105 сжатия полосы будет подробно описан ниже.

Узел 106 повторного вычисления количества блоков перераспределяет биты, сокращенные в подполосе сжатой полосы, нижней полосе за пределами расширенной полосы, на основе предварительного количества распределенных битов и количества блоков, выводимых из узла 104 вычисления количества блоков. Узел 106 повторного вычисления количества блоков перераспределяет упомянутое количество блоков на основе перераспределенных битов, и выводит количество перераспределенных блоков в узел 107 кодирования с преобразованием. Узел 106 повторного вычисления количества блоков будет подробно описан ниже.

Узел 107 кодирования с преобразованием кодирует спектр сжатой подполосы, выводимый из узла 105 сжатия полосы, посредством кодирования с преобразованием, и выводит данные, кодированные с преобразованием, в узел 108 мультиплексирования. В качестве схемы кодирования с преобразованием, используется схема кодирования с преобразованием, например, FPC, AVQ или LVQ. Узел 107 кодирования с преобразованием кодирует введенный спектр сжатой подполосы с использованием кодируемых битов, определяемых количеством перераспределенных блоков, выводимых из узла 106 повторного вычисления количества блоков. Так как количество перераспределенных блоков увеличивается, то можно увеличить количество импульсов для аппроксимации спектра, или сделать его значение амплитуды более точным. То, увеличивать количество импульсов или улучшать точность амплитуды, определяется с использованием искажения между введенным спектром, который должен быть закодирован, и декодированным спектром в качестве опоры.

Узел 108 мультиплексирования мультиплексирует кодированные данные энергии подполосы, выводимые из узла 103 вычисления энергии подполосы, и данные, кодированные с преобразованием, выводимые из узла 107 кодирования с преобразованием, и выводит мультиплексированные данные как кодированные данные.

Далее, посредством конкретного примера, будет описан способ распределения количества блоков в узле 104 вычисления количества блоков, представленном на Фиг. 1. Сначала узел 104 вычисления количества блоков вычисляет количество битов, распределяемых каждой подполосе, на основе энергия подполосы, выводимой из узла 103 вычисления энергии подполосы. Далее в этом документе, упомянутое количество вычисленных битов называется “предварительное количество распределенных битов”. Например, когда общее количество кодируемых битов, предоставленных для кодирования тонкой структуры спектра, равно 320 битам, и общая энергия подполос соответствующих подполос, вычисленная согласно уравнению 1, и после этого квантованная, равна 160, так как 320/160=2,0, то можно предположить, что энергия каждой подполосы, умноженная на 2,0, является предварительным количеством распределенных битов.

Далее, узел 104 вычисления количества блоков определяет биты, которые должны быть фактически распределены каждой подполосе (далее в этом документе называемые “количество распределенных битов”), но так как при кодировании с преобразованием кодируемые биты распределяются на поблочной основе, то нельзя предполагать, что предварительное количество распределенных битов является количеством распределенных битов без изменения. Например, когда предварительное количество распределенных битов равно 30, и один блок составляет 7 битов, если количество распределенных битов не превышает предварительного количества распределенных битов, то количество блоков равно 4, количество распределенных битов равно 28, и 2 бита являются избыточными битами относительно предварительного количества распределенных битов.

Соответственно, когда количество распределенных битов последовательно вычисляется для каждой подполосы, то в момент времени, когда вычисление заканчивается для всех подполос, может иметь место избыток или недостаток количества кодируемых битов. Поэтому необходимо найти способ эффективного распределения кодируемых битов. Например, посредством добавления избыточных битов, генерируемых в некоторой подполосе, к предварительному количеству распределенных битов в следующей подполосе, биты могут быть распределены без избытка или недостатка.

Это будет описано с использованием конкретного примера. Далее, в качестве примера будет описан случай, когда для аппроксимации спектра кодируется только информация о позиции импульса, и предположим, что эта информация о позиции просто добавляется каждый раз, когда количество кодируемых импульсов увеличивается. Например, если длина подполосы равна 32, так как 32 равно 2, возведенное в степень 5, то для того, чтобы сделать все спектральные позиции в пределах этой подполосы целями кодирования, необходим минимум в 5 битов. Соответственно, один блок в этой подполосе равен 5 битам.

Если предварительное количество распределенных битов, вычисляемое исходя из энергии подполосы, равно 33, то количество распределенных блоков равно 6, количество распределенных битов равно 30, и избыточными битами являются 3 бита. Однако если в предыдущей подполосе сгенерированы два избыточных бита, то к предварительному количеству распределенных битов этой подполосы добавляются два избыточных бита предыдущей подполосы, и предварительное количество распределенных битов становится равным 35. В результате количество блоков равно 7, и количество распределенных битов равно 35. Соответственно, избыточными битами являются 0 битов. С повторением этого процесса последовательно для всех подполос, возможно эффективное распределение блоков.

Далее будет описан способ сжатия полосы в узле 105 сжатия полосы, представленном на Фиг. 1. В качестве способа сжатия полосы, будет описан случай в виде примера, в котором создаются комбинации из двух выборок в порядке от стороны нижней полосы подполосы, подверженной сжатию полосы, и оставляют некоторую выборку из каждой комбинации, имеющую амплитуду с большим абсолютным значением.

Фиг. 2A - Фиг. 2C являются схемами, обеспеченными для описания сжатия полосы. Фиг. 2A - Фиг. 2C иллюстрируют ситуацию, в которой в расширенной полосе выделяется подполоса n, подверженная сжатию полосы, и предположим, что длиной этой подполосы является W(n), горизонтальная ось представляет частоту, и вертикальная ось представляет абсолютное значение амплитуды спектра.

На Фиг. 2A иллюстрируется спектр подполосы до сжатия полосы. В этом примере, предположим, что шириной полосы до сжатия полосы является W(n)=8. Узел 105 сжатия полосы создает комбинации из двух выборок в порядке от стороны нижней полосы из спектров подполосы, выводимых из узла 102 деления на подполосы, и из каждой комбинации оставляет спектр, имеющий большее абсолютное значение амплитуды. В примере на Фиг. 2A, из комбинации спектров, расположенных в первой и второй позициях, выбирается второй спектр, а первый спектр отбрасывается. Аналогично узел 105 сжатия полосы выбирает больший спектр из комбинации третьей и четвертой позиций, комбинации пятой и шестой позиций и комбинации седьмой и восьмой позиций соответственно. Результаты выбора представлены на Фиг. 2B, и выбраны четыре спектра, во второй, четвертой, пятой и восьмой позициях.

После этого узел 105 сжатия полосы осуществляет сжатие полосы выбранных спектров. Сжатие полосы выполняется посредством плотного размещения выбранных спектров на стороне нижней полосы в частотной области. В результате, спектры подполосы сжатой полосы изображены на Фиг. 2C, и ширина полосы после сжатия полосы становится равной половине ширины полосы до сжатия. Когда также рассматривается случай, когда ширина полосы до сжатия является нечетным числом, ширина W’(n) подполосы после сжатия полосы может быть выражена нижеследующим уравнением 2.

[2] W(n)=(int)(W(n)/2)+W(n)%2 …(Уравнение 2)

В уравнении 2, (int) обозначает функцию, которая отбрасывает все разряды справа от десятичной запятой, чтобы получилось целое число, % обозначает оператор вычисления остатка.

Соответственно, в расширенной полосе, в случае, когда каждая подполоса подвергается сжатию полосы, возможно сокращение ширины полосы наполовину, при этом, из комбинаций из двух выборок в порядке от стороны нижней полосы, оставляют спектры, имеющие большее абсолютное значение амплитуды.

Далее будет описан способ повторного вычисления количества блоков в узле 106 повторного вычисления количества блоков, представленном на Фиг. 1. Узел 106 повторного вычисления количества блоков является аналогичным узлу 104 вычисления количества блоков в том смысле, что он вычисляет количество распределенных битов так, чтобы приблизиться к предварительному количеству распределенных битов, но он отличается тем, что он сохраняет количество блоков, вычисленных в узле 104 вычисления количества блоков, в подполосе, подверженной сжатию полосы, и что он перераспределяет биты, сокращенные в подполосе, подверженной сжатию полосы, нижней полосе.

Для перераспределения битов, сокращенных в подполосе, подверженной сжатию полосы, нижней полосе, узел 106 повторного вычисления количества блоков сначала подтверждает количество распределенных битов подполосы, подверженной сжатию полосы. Так как количество блоков является фиксированным, и длина подполосы сокращается посредством сжатия полосы, то количество распределенных битов может быть сокращено. При этом, так как описан случай, когда посредством сжатия полосы длина подполосы сокращается наполовину, то количество битов для каждого блока сокращается на 1. Когда общее количество блоков подполосы, подверженной сжатию полосы, равно 10, количество битов может быть сокращено на 10.

Посредством добавления битов, которые были успешно сокращены, к предварительному количеству распределенных битов в подполосах нижней полосы, подполосам нижней полосы может быть распределено большее количество блоков. При этом для простоты предположим, что сокращенные биты добавляются к предварительному количеству распределенных битов в самой нижней подполосе. В результате, в самой нижней подполосе полосы, предварительное количество распределенных битов увеличивается, и, следовательно, можно ожидать, что количество распределенных блоков увеличится.

Далее в этом документе, избыточные биты, сгенерированные в этой подполосе, последовательно добавляются к предварительному количеству распределенных битов в подполосах на стороне верхней полосы, и блоки перераспределяются. Посредством повторения этого до подполосы, находящейся непосредственно перед подполосой, подверженной сжатию полосы, возможно перераспределение блоков всем подполосам после сжатия полосы.

На Фиг. 3 представлена схема, обеспечиваемая для описания операции узла 106 повторного вычисления количества блоков. В верхней строке на Фиг. 3 (строка, отмеченная как "подполоса") представлено изображение деления подполосы. Предположим, что полоса разделена на подполосы от 1 до M, причем подполоса 1 является подполосой со стороны самой нижней полосы, а подполоса M является подполосой со стороны самой верхней полосы. Предположим, что подполосы от 1 до (kh-1) соответствуют стороне нижней полосы, не подверженной сжатию полосы, и подполосы от kh до M соответствуют подполосам, подверженным сжатию полосы.

В средней строке (строка, отмеченная как “выходные данные узла вычисления количества блоков”) представлено количество блоков, выводимых из узла 104 вычисления количества блоков. Предположим, что, в качестве количества блоков, узлом 104 вычисления количества блоков подполосе k назначается u(k).

Узел 106 повторного вычисления количества блоков, для подполос от kh до M, использует u(k), вычисленное в узле 104 вычисления количества блоков, без изменения. Это подразумевается для того, чтобы сохранить количество импульсов для аппроксимации спектра даже после сжатия ширины полосы. Ширина полосы, посредством этого, сжимается наряду с тем, что сохраняется характеристика аппроксимации спектра в подполосах сжатой полосы, и, посредством этого, возможно сокращение количества кодируемых битов и превращение сокращенных битов в избыточные биты.

На Фиг. 3, в нижней строке (строка, отмеченная как “выходные данные узла повторного вычисления количества блоков”) представлено изображение выходных данных узла 106 повторного вычисления количества блоков. Так как узел 106 повторного вычисления количества блоков, для подполос от kh до M, использует выходные данные узла 104 вычисления количества блоков "как есть", то количество блоков остается равным u(k). Узел 106 повторного вычисления количества блоков может использовать избыточные биты для подполос на стороне нижней полосы и заново вычислить u’(k). Это обеспечивает возможность увеличения точности кодирования спектров нижней полосы, которые являются важными для восприятия, и может, посредством этого, улучшать общее качество звука.

Выше описан пример для случая, когда все биты, сокращенные в подполосах сжатой полосы, добавляются к предварительному количеству распределенных битов подполосы со стороны самой нижней полосы, но также возможно равномерное распределение этого количества сокращенных распределенных битов подполосам, количество распределенных битов которых еще не вычислено, и добавление их к предварительному количеству распределенных битов этих подполос. В качестве альтернативы, большее количество битов может быть добавлено к подполосе, имеющей большую энергию подполосы. Обработка не обязательно должна всегда выполняться в порядке возрастания со стороны нижней полосы по направлению к стороне верхней полосы.

С вышеописанной конфигурацией, устройство 100 кодирования речи/аудио осуществляет сжатие полосы каждой подполосы в расширенной полосе, сокращает кодируемые биты, перераспределяет эти сокращенные кодируемые биты нижней полосе как избыточные биты, и может, посредством этого, улучшать качество звука.

Фиг. 4 является структурной схемой, иллюстрирующей конфигурацию устройства 200 декодирования речи/аудио согласно Варианту 1 осуществления настоящего изобретения. Количество блоков или количество битов для каждого блока не передается, и, следовательно, это количество должно быть вычислено на стороне устройства декодирования. Поэтому в устройстве 200 декодирования речи/аудио обеспечен узел вычисления количества блоков и узел повторного вычисления количества блоков, как и в случае устройства кодирования. Конфигурация устройства 200 декодирования речи/аудио описана ниже с использованием Фиг. 4.

Узел 201 демультиплексирования кода принимает кодированные данные, демультиплексирует принятые кодированные данные в данные, кодированные с преобразованием, и кодированные данные энергии подполосы, выводит кодированные данных энергии подполосы в узел 202 декодирования энергии подполосы, а данные, кодированные с преобразованием, в узел 205 кодирования/декодирования с преобразованием.

Узел 202 декодирования энергии подполосы декодирует кодированные данные энергии подполосы, выводимые из узла 201 демультиплексирования кода, и выводит квантованную энергию подполосы, полученную посредством декодирования, в узел 203 вычисления количества блоков.

Узел 203 вычисления количества блоков, с использованием квантованной энергии подполосы, выводимой из узла 202 декодирования энергии подполосы, вычисляет предварительное количество распределенных битов и количество блоков, и выводит вычисленные предварительное количество распределенных битов и количество блоков в узел 204 повторного вычисления количества блоков. Заметим, что узел 203 вычисления количества блоков является идентичным узлу 104 вычисления количества блоков устройства 100 кодирования речи/аудио, и, следовательно, его подробное описание опущено.

Узел 204 повторного вычисления количества блоков вычисляет количество перераспределенных блоков на основе предварительного количества распределенных битов и количества блоков, выводимых из узла 203 вычисления количества блоков, и выводит вычисленное количество перераспределенных блоков в узел 205 кодирования/декодирования с преобразованием. Узел 204 повторного вычисления количества блоков является идентичным узлу 106 повторного вычисления количества блоков устройства 100 кодирования речи/аудио, и, следовательно, его подробное описание опущено.

Узел 205 кодирования/декодирования с преобразованием выводит результат декодирования для каждой подполосы в узел 206 расширения полосы как спектр сжатой подполосы на основе данных, кодированных с преобразованием, выводимых из узла 201 демультиплексирования кода, и количества перераспределенных блоков, выводимого из узла 204 повторного вычисления количества блоков. Узел 205 кодирования/декодирования с преобразованием получает количество кодируемых битов, требуемых для кодирования, исходя из количества перераспределенных блоков, и декодирует данные, кодированные с преобразованием.

В подполосе, не подверженной сжатию полосы, из спектров сжатой подполосы, выводимых из узла 205 кодирования/декодирования с преобразованием, узел 206 расширения полосы выводит спектр сжатой подполосы "как есть" в узел 207 интеграции подполос в качестве спектра подполосы. В подполосе, подверженной сжатию полосы, из спектров сжатой подпол