УСТРОЙСТВО И СПОСОБ ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ АУДИОСИГНАЛА С ИСПОЛЬЗОВАНИЕМ ВЫРОВНЕННОЙ ЧАСТИ ОПЕРЕЖАЮЩЕГО ПРОСМОТРА
APPARATUS AND METHOD FOR ENCODING AND DECODING AUDIO SIGNAL USING ALIGNED LOOK-AHEAD PORTION

Настоящее изобретение относится к кодированию аудиосигнала и, в частности, к кодированию аудиосигнала, основанному на переключаемых аудиокодерах и соответственно управляемых аудиодекодерах, особенно подходящих для приложений с малой задержкой.
Известны несколько концепций кодирования аудиосигнала, основанных на переключаемых кодеках. Одна известная концепция кодирования аудиосигнала - это так называемый кодек Расширенного широкополосного адаптивного кодирования с переменной скоростью (AMR-WB+), как описано в 3 GPP TS 26.290 B10.0.0 (2011-03). AMR-WB+ аудиокодек содержит все режимы 1-9 кодека AMR-WB для речевых сигналов и AMR-WB VAD и DTX. AMR-WB+ расширяет кодек AMR-WB, посредством добавления TCX, расширения полосы частот и стерео.
S
AMR-WB+ аудиокодек обрабатывает входные кадры, равные 2048 дискретным значениям, c внутренней частотой дискретизации F. Внутренняя частота дискретизации ограничена диапазоном 12800-38400 Гц. Кадры по 2048 дискретных значений делятся на два критически дискретизированных равных диапазона частот. Результатом этого являются два суперкадра по 1024 дискретных значения, соответствующих низкочастотному (LF) и высокочастотному (HF) диапазонам. Каждый суперкадр делится на четыре кадра по 256 дискретных значений. Дискретизация c внутренней частотой дискретизации получается путем использования регулируемой схемы преобразования дискретизации, которая повторно дискретизирует входной сигнал.
LF и HF сигналы затем кодируются с использованием двух различных подходов: LF кодируется и декодируется с помощью "основного" кодера/декодера, основанного на переключаемом ACELP и возбуждения кодированным преобразованием (TCX). В режиме ACELP используется стандартный кодек AMR-WB. HF сигнал кодируется относительно небольшим числом бит (16 бит/кадр) с помощью метода расширения полосы частот (BWE). Параметры, передаваемые от кодера декодеру, являются битами выбора режима, параметрами LF и параметрами HF. Параметры для каждого суперкадра в 1024 дискретных значений разделены на четыре пакета одинакового размера. Когда входной сигнал является стерео-сигналом, левый и правый каналы объединяются в моно-сигнал для кодирования ACELP/TCX, тогда как кодирование стерео принимает оба входных канала. На стороне декодера LF и HF диапазоны декодируются отдельно, после чего они объединяются в синтезирующем банке фильтров. Если выходной сигнал ограничен только моно-сигналом, параметры стерео опускаются, и декодер функционирует в режиме моно. AMR-WB+ кодек применяет анализ LP и для режима ACELP, и для режима TCX при кодировании сигнала LF. Коэффициенты LP линейно интерполируются в каждом подкадре с 64 дискретными значениями. Окно анализа LP является полукосинусом с длиной в 384 дискретных значения. Для кодирования основного моно-сигнала для каждого кадра используется или кодирование ACELP или TCX. Режим кодирования выбирается на основании метода «анализ через синтез» с обратной связью. Для кадров ACELP рассматриваются только кадры с 256 дискретными значениями, тогда как в режиме TCX возможны кадры с 256, 512 или 1024 дискретными значениями. Окно, используемое для анализа LPC в AMR-WB+, изображено на фиг. 5b. Используется симметричное окно анализа LPC с опережающим просмотром в 20 мс. Опережающий просмотр означает, что, как показано на фиг. 5b, окно анализа LPC для текущего кадра, изображенное под номером 500, простирается не только в пределах текущего кадра, обозначенного между 0 и 20 мс на фиг. 5b и изображенного под номером 502, но простирается в будущий кадр между 20 и 40 мс. Это означает, что при использовании этого окна анализа LPC необходима дополнительная задержка в 20 мс, то есть целый будущий кадр. Поэтому часть опережающего просмотра, обозначенная как 504 на фиг. 5b, вносит вклад в систематическую задержку, связанную с AMR-WB+ кодером. Другими словами, будущий кадр должен быть полностью доступен, чтобы могли быть вычислены коэффициенты анализа LPC для текущего кадра 502.
Фиг. 5a изображает другой кодер, так называемый кодер AMR-WB и, в частности, окно анализа LPC, используемое для вычисления коэффициентов анализа для текущего кадра. Еще раз, текущий кадр простирается между 0 и 20 мс, а будущий кадр простирается между 20 и 40 мс. В отличие от фиг. 5b, окно анализа LPC AMR-WB, обозначенное как 506, имеет часть 508 опережающего просмотра лишь в 5 мс, то есть временной интервал между 20 мс и 25 мс. Следовательно, задержка, вносимая анализом LPC, в значительной степени уменьшается относительно фиг. 5a. С другой стороны, однако, было установлено, что большая часть опережающего просмотра для определения коэффициентов LPC, то есть большая часть опережающего просмотра для окна анализа LPC, приводит к лучшим коэффициентам LPC и, следовательно, меньшей энергии в остаточном сигнале и, следовательно, более низкой битовой скорости, так как предсказание LPC лучше совпадает с исходным сигналом.
Хотя фиг. 5a и 5b относятся к кодерам, имеющим только одно окно анализа для определения коэффициентов LPC для одного кадра, фиг. 5c изображает ситуацию для речевого кодера G.718. Спецификация G718 (06-2008) относится к системам передачи и цифровым медиа системам и сетям и, в частности, описывает цифровое терминальное оборудование и, в частности, кодирование голосовых и аудиосигналов для такого оборудования. В частности, этот стандарт относится к надежному узкополосному и широкополосному встроенному кодированию с переменной скоростью речи и звука от 8-32 Кбит/с, как это определено в рекомендации ITU-T G718. Входной сигнал обрабатывается с использованием 20 мс кадров. Задержка кодека зависит от частоты дискретизации ввода и вывода. Для широкополосного ввода и широкополосного вывода полная алгоритмическая задержка этого кодирования составляет 42,875 мс. Она состоит из одного 20 мс кадра, 1,875 мс задержки входного и выходного фильтров повторной дискретизации, 10 мс для опережающего просмотра кодера, одной мс задержки постфильтрации и 10 мс в декодере для обеспечения операции добавления с наложением кодирования с преобразованием более высоких слоев. Для узкополосного ввода и узкополосного вывода более высокие слои не используются, но 10 мс задержка декодера используется для улучшения эффективности кодирования при наличии стирания кадров и для музыкальных сигналов. Если вывод ограничен слоем 2, задержка кодека может быть уменьшена на 10 мс. Описание кодера следующее. Два нижних слоя применяются к сигналу с предыскажениями, дискретизированному с частотой 12,8 кГц, а три верхних слоя используются в области входного сигнала, дискретизированного с частотой 16 кГц. Основной слой основан на технологии линейного предсказания с кодовым возбуждением (CELP), в которой речевой сигнал моделируется сигналом возбуждения, прошедшим через синтезирующий фильтр линейного предсказания (LP), представляющим собой огибающую спектра. Фильтр LP квантуется в области спектральной частоты иммитанса (ISF), используя переключаемый прогнозирующий подход и многоступенчатое векторное квантование. Анализ основного тона без обратной связи выполняется отслеживающим основной тон алгоритмом, чтобы гарантировать гладкий контур основного тона. Два одновременных контура эволюции основного тона сравниваются и выбирается дорожка, которая выдает более гладкий контур, чтобы сделать оценку основного тона более надежной. Предварительная обработка на уровне кадра содержит высокочастотную фильтрацию, преобразование частоты дискретизации к 12800 дискретным значениям в секунду, внесение предыскажений, спектральный анализ, обнаружение узкополосных вводов, обнаружение голосовой активности, оценку помех, шумоподавление, анализ с линейным предсказанием, преобразование LP в ISF и интерполяцию, вычисление взвешенного речевого сигнала, анализ основного тона без обратной связи, обновление фонового шума, классификацию сигналов для выбора режима кодирования и маскирование стирания кадра. Кодирование слоя 1 с использованием выбранного типа кодирования содержит невокализированный режим кодирования, вокализированный режим кодирования, переходный режим кодирования, общий режим кодирования, прерывистую передачу и генерацию комфортного шума (DTX/CNG).
Анализ с долгосрочным предсказанием или линейным предсказанием (LP) с использованием автокорреляционного подхода определяет коэффициенты синтезирующего фильтра модели CELP. В CELP, однако, долгосрочное предсказание обычно является "адаптивной кодовой книгой" и, таким образом, отличается от линейного предсказания. Следовательно, линейное предсказание может рассматриваться более как краткосрочное предсказание. Автокорреляция речи, обработанной с помощью оконной функции, преобразуется в коэффициенты LP с использованием алгоритма Левинсона-Дарбина. Затем коэффициенты LPC преобразуются в спектральные пары иммитанса (ISP) и, следовательно, к спектральным частотам иммитанса (ISF) для целей интерполяции и квантования. Интерполированные подвергнутые квантованию и обратному квантованию коэффициенты преобразуются обратно в область LP для построения синтезирующего и взвешивающего фильтров для каждого подкадра. В случае кодирования активного кадра сигнала оцениваются два набора коэффициентов LP в каждом кадре, используя два окна анализа LPC, обозначенные как 510 и 512 на фиг. 5c. Окно 512 называется "окном LPC середины кадра", а окно 510 называется "окном LPC конца кадра". Часть 514 опережающего просмотра в 10 мс используется для вычисления автокорреляции конца кадра. Структура кадра показана на фиг. 5c. Кадр делится на четыре подкадра, каждый подкадр имеет продолжительность 5 мс, которая соответствует 64 дискретным значениям при частоте дискретизации 12,8 кГц. Окна для анализа конца кадра и для анализа середины кадра имеют центр в четвертом подкадре и втором подкадре соответственно, как показано на фиг. 5c. Окно Хэмминга с длиной в 320 дискретных значений используется для обработки с помощью оконной функции. Коэффициенты определены в G.718, раздел 6.4.1. Вычисление автокорреляции описано в разделе 6.4.2. Алгоритм Левинсона-Дарбина описан в разделе 6.4.3, преобразование LP в ISP описано в разделе 6.4.4, а преобразование ISP в LP описано в разделе 6.4.5.
Параметры кодирования речи, такие как задержка и усиление адаптивной кодовой книги, индекс и усиление алгебраической кодовой книги ищутся путем минимизации ошибки между входным сигналом и синтезированным сигналом в перцепционно взвешенной области. Перцепционное взвешивание выполняется путем пропускания сигнала через перцепционно взвешивающий фильтр, полученный из коэффициентов фильтра LP. Перцепционно взвешенный сигнал также используется в анализе основного тона без обратной связи.
Кодер G.718 является исключительно речевым кодером, имеющим только один режим кодирования речи. Поэтому кодер G.718 не является переключаемым кодером и, следовательно, этот кодер имеет тот недостаток, что он обеспечивает только один режим кодирования речи в пределах основного слоя. Следовательно, будут иметь место проблемы с качеством, когда этот кодер будет применен к другим сигналам, отличным от речевых сигналов, то есть к обычным аудиосигналам, для которых модель, стоящая за кодированием CELP, не подходит.
Дополнительным переключаемым кодеком является так называемый кодек USAC, то есть унифицированный кодек для речи и звука, как определено в ISO/IEC CD 23003-3 от 24 сентября 2010. Окно анализа LPC, используемое для этого переключаемого кодека, обозначено на фиг. 5d под номером 516. Опять же, предполагается текущий кадр, простирающийся между 0 и 20 мс, и, следовательно, оказывается, что часть 618 опережающего просмотра этого кодека равна 20 мс, то есть значительно больше, чем часть опережающего просмотра G.718. Следовательно, хотя кодер USAC обеспечивает хорошее качество звука вследствие наличия у него переключения, задержка является значительной из-за части 518 опережающего просмотра окна анализа LPC на фиг. 5d. Общая структура USAC имеет следующий вид. Во-первых, имеется общая пред/постобработка, состоящая из функционального блока окружения MPEG (MPEGS) для обработки стерео или для многоканальной обработки и блока усовершенствованной SBR (eSBR), который обрабатывает параметрическое представление более высоких звуковых частот во входном сигнале. Кроме того, имеются две ветви, одна состоит из пути инструмента модифицированного усовершенствованного кодирования аудио (AAC), а другая состоит из пути, основанного на кодировании с линейным предсказанием (область LP или LPC), который в свою очередь показывает или представление в частотной области, или представление во временной области остатка LPC. Все переданные спектры и для AAC, и для LPC представлены в области MDCT после квантования и арифметического кодирования. Представление во временной области использует схему кодирования с возбуждением ACELP. Инструмент ACELP обеспечивает способ эффективно представить сигнал возбуждения во временной области путем объединения долгосрочного прогнозирующего механизма (адаптивного кодового слова) с импульсоподобной последовательностью (инновационного кодового слова). Реконструированное возбуждение отправляется через синтезирующий фильтр LP для формирования сигнала во временной области. Ввод для инструмента ACELP содержит адаптивную и инновационную кодовые книги, значения усиления адаптивного и инновационного кодов, другие управляющие данные и обратно квантованные и интерполированные коэффициенты фильтра LPC. Выводом инструмента ACELP является реконструированный во временной области аудиосигнал.
Инструмент TCX декодирования на основе MDCT используется для возвращения взвешенного представления остатка LP из области MDCT назад в сигнал во временной области, он выводит взвешенный сигнал во временной области, включающий в себя взвешенную синтезирующую фильтрацию LP. IMDCT может быть сконфигурирован поддерживать 256, 512 или 1024 спектральных коэффициентов. Ввод для инструмента TCX содержит (подвергнутые обратному квантованию) спектры MDCT и подвергнутые обратному квантованию и интерполированные коэффициенты фильтра LPC. Выводом инструмента TCX является реконструированный аудиосигнал во временной области.
Фиг. 6 показывает ситуацию в USAC, где изображены окна 516 анализа LPC для текущего кадра и 520 для прошлого или последнего кадра, и где, кроме того, изображено окно 522 TCX. Окно 522 TCX имеет центр в центре текущего кадра, простираясь между 0 и 20 мс и простираясь на 10 мс в прошлый кадр и 10 мс в будущий кадр, простирающийся между 20 и 40 мс. Следовательно, окно 516 анализа LPC требует части опережающего просмотра LPC между 20 и 40 мс, то есть 20 мс, в то время как окно анализа TCX дополнительно имеет часть опережающего просмотра, простирающуюся между 20 и 30 мс в будущий кадр. Это означает, что задержка, вносимая окном 516 анализа USAC, равна 20 мс, в то время как задержка, вносимая в кодер окном TCX, равна 10 мс. Следовательно, становится ясно, что части опережающего просмотра обоих видов окон не выровнены друг с другом. Поэтому даже при том, что окно 522 TCX вносит лишь задержку в 10 мс, общая задержка кодера равна, тем не менее, 20 мс из-за окна 516 анализа LPC. Поэтому даже при том, что есть довольно небольшая часть опережающего просмотра для окна TCX, это не уменьшает полную алгоритмическую задержку кодера, так как полная задержка определяется наибольшим вкладом, то есть равна 20 мс из-за окна 516 анализа LPC, простирающегося на 20 мс в будущий кадр, то есть охватывающего не только текущий кадр, но и дополнительно охватывающего будущий кадр.
Задачей настоящего изобретения является обеспечение улучшенной концепции кодирования для кодирования или декодирования аудиосигнала, которая, с одной стороны, обеспечивает хорошее качество аудио и которая, с другой стороны, приводит к уменьшению задержки.
Эта цель достигается с помощью устройства для кодирования аудиосигнала по п. 1, способа кодирования аудиосигнала по п. 15, аудиодекодера по п. 16, способа декодирования аудиосигнала по п. 24 или компьютерной программы по п. 25.
В соответствии с настоящим изобретением применена переключаемая схема аудиокодека, имеющая ветвь кодирования с преобразованием и ветвь кодирования с предсказанием. Важно отметить, что два вида окон, то есть окно анализа кодирования с предсказанием с одной стороны и окно анализа кодирования с преобразованием с другой стороны, выровнены в отношении их части опережающего просмотра так, что часть опережающего просмотра кодирования с преобразованием и часть опережающего просмотра кодирования с предсказанием идентичны или отличаются друг от друга менее чем 20% части опережающего просмотра кодирования с предсказанием или менее чем 20% части опережающего просмотра кодирования с преобразованием. Следует отметить, что окно опережающего анализа используется не только в ветви кодирования с предсказанием, но оно фактически используется в обеих ветвях. Анализ LPC также используется для формирования шумов в области преобразования. Поэтому, другими словами, части опережающего просмотра идентичны или очень близки друг к другу. Это гарантирует, что достигается оптимальный компромисс, и что ни качество звука, ни параметры задержки не будут установлены субоптимальным образом. Следовательно, для кодирования с предсказанием в окне анализа было обнаружено, что анализ LPC тем лучше, чем больше опережающий просмотр, но, с другой стороны, увеличивается задержка для большей части опережающего просмотра. С другой стороны, то же самое справедливо для окна TCX. Чем больше часть опережающего просмотра окна TCX, тем сильнее может быть уменьшена битовая скорость TCX, так как более длительные окна TCX приводят к более низким битовым скоростям в общем случае. Поэтому, в соответствии с настоящим изобретением, части опережающего просмотра идентичны или весьма близки друг к другу и, в частности, отличаются друг от друга менее чем на 20%. Поэтому часть опережающего просмотра, которая нежелательна по причинам задержки, с другой стороны, оптимально используется обеими ветвями кодирования/декодирования.
Ввиду этого настоящее изобретение обеспечивает улучшенную концепцию кодирования, с одной стороны, с низкой задержкой, когда часть опережающего просмотра для обоих окон анализа установлена небольшой, и обеспечивает, с другой стороны, концепцию кодирования/декодирования с хорошими характеристиками вследствие того, что задержка, которая должна быть внесена по причинам качества звука или причинам битовой скорости, в любом случае оптимально используется обеими ветвями кодирования, а не только одной ветвью кодирования.
Устройство для кодирования аудиосигнала, имеющего поток дискретных значений, содержит блок применения оконной функции для применения окна анализа кодирования с предсказанием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для предсказывающего анализа и для применения окна анализа кодирования с преобразованием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с преобразованием. Окно анализа кодирования с преобразованием связано с дискретными значениями аудиосигнала текущего кадра дискретных значений аудиосигнала заданной части опережающего просмотра будущего кадра дискретных значений аудиосигнала, являющихся частью опережающего просмотра кодирования с преобразованием.
Кроме того, окно анализа кодирования с предсказанием связано по меньшей мере с частью дискретных значений аудиосигнала текущего кадра и с дискретными значениями аудиосигнала заданной части будущего кадра, являющегося частью опережающего просмотра кодирования с предсказанием.
Часть опережающего просмотра кодирования с преобразованием и часть опережающего просмотра кодирования с предсказанием идентичны друг другу или отличаются друг от друга менее чем 20% части опережающего просмотра кодирования с предсказанием или менее чем 20% части опережающего просмотра кодирования с преобразованием и поэтому довольно близки друг к другу. Устройство дополнительно содержит процессор кодирования для генерации данных, кодированных с предсказанием, для текущего кадра, используя обработанные с помощью оконной функции данные для опережающего анализа, или для генерации данных, кодированных с преобразованием, для текущего кадра, используя данные окна для анализа с преобразованием.
Аудиодекодер для декодирования кодированного аудиосигнала содержит декодер параметров предсказания для выполнения декодирования данных для кадра, кодированного с предсказанием, из кодированного аудиосигнала и, для второй ветви, декодер параметров преобразования для выполнения декодирования данных для кадра, кодированного с преобразованием, из закодированного аудиосигнала.
Декодер параметров преобразования сконфигурирован для выполнения спектрально-временного преобразования, которое предпочтительно является подверженным искажениям преобразованием, таким как MDCT или MDST или любым другим подобным преобразованием, и для применения окна синтеза к преобразованным данным для получения данных для текущего кадра и будущего кадра. Окно синтеза, примененное аудиодекодером, таково, что оно имеет первую перекрывающуюся часть, смежную вторую неперекрывающуюся часть и смежную третью перекрывающуюся часть, при этом третья перекрывающаяся часть связана с дискретными значениями аудиосигнала для будущего кадра, а неперекрывающаяся часть связана с данными текущего кадра. Кроме того, чтобы иметь хорошее качество звука на стороне декодера, добавляющий перекрытие блок применяется для наложения и добавления обработанных с помощью окна синтеза дискретных значений, связанных с третьей перекрывающейся частью окна синтеза для текущего кадра, и обработанных с помощью окна синтеза дискретных значений, связанных с первой перекрывающейся частью окна синтеза для будущего кадра, для получения первой части дискретных значений аудиосигнала для будущего кадра, при этом оставшиеся дискретные значения аудиосигнала для будущего кадра являются обработанными с помощью окна синтеза дискретными значениями, связанными со второй неперекрывающейся частью окна синтеза для будущего кадра, полученной без добавления перекрытия, когда текущий кадр и будущий кадр содержат данные, кодированные с преобразованием.
Предпочтительные варианты воплощения настоящего изобретения имеют ту особенность, что опережающие просмотры для ветви кодирования с преобразованием, такой как ветвь TCX, и ветви кодирования с предсказанием, такой как ветвь ACELP, идентичны друг другу, так что оба режима кодирования имеют максимально доступный опережающий просмотр при ограничениях, накладываемых на задержку. Кроме того, является предпочтительным, чтобы перекрытие окна TCX ограничивалось частью опережающего просмотра, чтобы переключение с режима кодирования с преобразованием на режим кодирования с предсказанием от одного кадра к следующему кадру было легко осуществимо без каких-либо проблем с искажениями.
Дополнительной причиной ограничить перекрытие опережающим просмотром является желание не вводить задержку на стороне декодера. Если бы имелось окно TCX с опережающим просмотром в 10 мс и, например, перекрытием 20 мс, это ввело бы еще 10 мс задержки в декодере. Когда имеется окно TCX с опережающим просмотром в 10 мс и перекрытием в 10 мс, нет никакой дополнительной задержки на стороне декодера. Хорошим следствием этого является более легкое переключение.
Поэтому является предпочтительным, чтобы вторая неперекрывающаяся часть окна анализа и, конечно, окно синтеза простирались до конца текущего кадра, а третья перекрывающаяся часть начиналась только относительно будущего кадра. Кроме того, ненулевая часть окна анализа/синтеза кодирования TCX или кодирования с преобразованием выравнивается с началом кадра так, чтобы, опять же, было возможно легкое и низкое по эффективности переключение с одного режима на другой режим.
Кроме того, является предпочтительным, чтобы целый кадр, состоящий из множества подкадров, например четырех подкадров, мог быть или полностью кодирован в режиме кодирования с преобразованием (таком как режим TCX) или полностью кодирован в режиме кодирования с предсказанием (таком как режим ACELP).
Кроме того, является предпочтительным использовать не только одно окно анализа LPC, а два различных окна анализа LPC, где одно окно анализа LPC выровнено с центром четвертого подкадра и является окном анализа конца кадра, в то время как другое окно анализа выровнено с центром второго подкадра и является окном анализа середины кадра. Если кодер переключается на кодирование с преобразованием, то, тем не менее, является предпочтительным передавать только один набор данных коэффициентов LPC, полученный из анализа LPC, основанного на окне анализа LPC конца кадра. Кроме того, на стороне декодера является предпочтительным не использовать эти данные LPC непосредственно для синтеза кодирования с преобразованием, и, в частности, спектрального взвешивания коэффициентов TCX. Вместо этого предпочтительно интерполировать данные TCX, полученные из окна анализа LPC конца кадра текущего кадра с помощью данных, полученных окном анализа LPC конца кадра из прошлого кадра, то есть кадра, непосредственно предшествующего во времени текущему кадру. Путем передачи только одного набора коэффициентов LPC для целого кадра в режиме TCX может быть получено дополнительное уменьшение битовой скорости по сравнению с передачей двух наборов данных коэффициентов LPC для анализа середины кадра и анализа кадра конца. Однако, когда кодер переключается на режим ACELP, оба набора коэффициентов LPC передаются от кодера декодеру.
Кроме того, является предпочтительным, чтобы окно анализа LPC середины кадра заканчивалось сразу на следующей границе кадра текущего кадра и дополнительно простиралось в прошлый кадр. Это не вносит никакой задержки, так как прошлый кадр уже доступен и может использоваться без какой-либо задержки.
С другой стороны является предпочтительным, чтобы окно анализа конца кадра начиналось где-нибудь в пределах текущего кадра, а не в начале текущего кадра. Это, однако, не является проблемой, так как для формирования взвешивания TCX используется среднее набора данных LPC конца кадра для прошлого кадра и набора данных LPC кадра конца для текущего кадра, так что в итоге все данные в некотором смысле используются для вычисления коэффициентов LPC. Следовательно, начало окна анализа конца кадра предпочтительно находится в пределах части опережающего просмотра окна анализа конца прошлого кадра.
На стороне декодера получается значительно уменьшенное служебное сигнализирование для переключения с одного режима на другой режим. Причина состоит в том, что неперекрывающаяся часть окна синтеза, которая предпочтительно симметрична в своих пределах, не связана с дискретными значениями текущего кадра, а связана с дискретными значениями будущего кадра, и поэтому простирается только в пределах части опережающего просмотра, то есть только в будущем кадре. Следовательно, окно синтеза таково, что только первая перекрывающаяся часть, предпочтительно начинающаяся в средней части текущего кадра, находится в пределах текущего кадра, а вторая неперекрывающаяся часть простирается от конца первой перекрывающейся части до конца текущего кадра и, поэтому, вторая перекрывающаяся часть совпадает с частью опережающего просмотра. Поэтому, когда имеется переход от TCX к ACELP, данные, полученные из перекрывающейся части окна синтеза, просто отбрасываются и заменяются данными кодирования с предсказанием, которые доступны с самого начала будущего кадра из ветви ACELP.
С другой стороны, когда имеется переключение от ACELP к TCX, применяется специальное окно перехода, которое начинается сразу в начале текущего кадра, то есть кадра сразу после переключения, с неперекрывающейся части, так что не нужно реконструировать никакие данные, чтобы найти перекрывающихся "партнеров". Вместо этого неперекрывающаяся часть окна синтеза предоставляет правильные данные без какого-либо перекрытия и без какой-либо добавляющей перекрытие процедуры, необходимых в декодере. Только для перекрывающихся частей, то есть третьей части окна для текущего кадра и первой части окна для следующего кадра, добавляющая перекрытие процедура полезна и выполняется, чтобы иметь, как в прямом MDCT, непрерывное возрастание/затухание от одного блока к другому, чтобы в конце получить хорошее качество звука без необходимости увеличивать битовую скорость из-за критически дискретизированных свойств MDCT, что также известно в области техники под термином "устранение искажений во временной области (TDAC).
Кроме того, декодер полезен тем, что для режима кодирования ACELP передаются данные LPC, полученные из окна середины кадра и окна конца кадра в кодере, в то время как для режима кодирования TCX используется только один набор данных LPC, полученный из окна конца кадра. Однако, для декодированных спектрально взвешенных данных TCX переданные данные LPC как таковые не используются, а данные усредняются с соответствующими данными из окна анализа LPC конца кадра, полученного для прошлого кадра.
Ниже описаны предпочтительные варианты воплощения настоящего изобретения со ссылкой на прилагаемые чертежи, на которых:
фиг. 1a изображает блок-схему переключаемого аудиокодера;
фиг. 1b изображает блок-схему соответствующего переключаемого декодера;
фиг. 1c изображает более подробно декодер параметров преобразования, изображенный на фиг. 1b;
фиг. 1d изображает более подробно режим кодирования с преобразованием декодера на фиг. 1a;
фиг. 2a изображает предпочтительный вариант воплощения для блока применения оконной функции, применяемого в кодере для анализа LPC с одной стороны и анализа кодирования с преобразованием с другой стороны, он является представлением окна синтеза, используемого в декодере кодирования с преобразованием на фиг. 1b;
фиг. 2b изображает последовательность выровненных окон анализа LPC и окон TCX для промежутка времени более двух кадров;
фиг. 2c изображает ситуацию для перехода от TCX к ACELP и окно перехода для перехода от ACELP к TCX;
фиг. 3a изображает более подробно кодер на фиг. 1a;
фиг. 3b изображает процедуру анализа посредством синтеза для выбора режима кодирования для кадра;
фиг. 3c изображает дополнительный вариант воплощения для выбора между режимами для каждого кадра;
фиг. 4a изображает вычисление и использование данных LPC, полученных путем использования двух различных окон анализа LPC для текущего кадра;
фиг. 4b изображает использование данных LPC, полученных путем обработки с помощью оконной функции, используя окно анализа LPC для ветви TCX кодера;
фиг. 5a изображает окно анализа LPC для AMR-WB;
фиг. 5b изображает симметричные окна для AMR-WB+ для анализа LPC;
фиг. 5c изображает окна анализа LPC для кодера G.718;
фиг. 5d изображает окна анализа LPC, используемые в USAC; и
фиг. 6 изображает окно TCX для текущего кадра относительно окна анализа LPC для текущего кадра.
Фиг. 1a изображает устройство для кодирования аудиосигнала, имеющего поток дискретных значений аудиосигнала. Поступление дискретных значений аудиосигнала или аудиоданных в кодер показано под номером 100. Аудиоданные поступают в блок 102 применения оконной функции для применения окна анализа кодирования с предсказанием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с предсказанием. Блок 102 применения оконной функции дополнительно сконфигурирован применять окно анализа кодирования с преобразованием к потоку дискретных значений аудиосигнала для получения обработанных с помощью оконной функции данных для анализа с преобразованием. В зависимости от варианта осуществления окно LPC применяется не непосредственно к исходному сигналу, а к сигналу "с предыскажениями" (как в AMR-WB, AMR-WB+, G718 и USAC). С другой стороны, окно TCX применяется непосредственно к исходному сигналу (как в USAC). Однако оба окна могут также применяться к одним и тем же сигналам, или окно TCX может также применяться к обработанному аудиосигналу, полученному из исходного сигнала, посредством предыскажения или любого другого взвешивания, используемого для улучшения качества или эффективности сжатия.
Окно анализа кодирования с преобразованием связано с дискретными значениями аудиосигнала в текущем кадре дискретных значений аудиосигнала и с дискретными значениями аудиосигнала заданной части будущего кадра дискретных значений аудиосигнала, являющегося частью опережающего просмотра кодирования с преобразованием.
Кроме того, окно анализа кодирования с предсказанием связано с по меньшей мере частью дискретных значений аудиосигнала текущего кадра и с дискретными значениями аудиосигнала заданной части будущего кадра, являющегося частью опережающего просмотра кодирования с предсказанием.
Как указано в блоке 102, часть опережающего просмотра кодирования с преобразованием и часть опережающего просмотра кодирования с предсказанием выровнены друг с другом, что означает, что эти части или идентичны, или достаточно близки друг к другу, например, отличаются друг от друга менее чем 20% части опережающего просмотра кодирования с предсказанием или менее чем 20% части опережающего просмотра кодирования с преобразованием. Предпочтительно, когда части опережающего просмотра идентичны или отличаются друг от друга менее чем 5% части опережающего просмотра кодирования с предсказанием или менее чем 5% части опережающего просмотра кодирования с преобразованием.
Кодер дополнительно содержит процессор 104 кодирования для генерации данных, кодированных с предсказанием, для текущего кадра с использованием обработанных с помощью оконной функции данных для анализа с предсказанием или для генерации данных, кодированных с преобразованием, для текущего кадра с использованием обработанных с помощью оконной функции данных для анализа с преобразованием.
Кроме того, кодер предпочтительно содержит выходной интерфейс 106 для приема для текущего кадра и, фактически, для каждого кадра данных 108a LPC и данных, кодированных с преобразованием, (таких как данные TCX) или данных, кодированных с предсказанием, (данных ACELP) по линии 108b. Процессор 104 кодирования обеспечивает эти два вида данных и принимает, в качестве входной информации, обработанные с помощью оконной функции данные для анализа с предсказанием, обозначенные как 110a, и обработанные с помощью оконной функции данные для анализа с преобразованием, обозначенные как 110b. Кроме того, устройство для кодирования содержит селектор режима кодирования или контроллер 112, который принимает в качестве входных данных аудиоданные 100 и который обеспечивает в качестве выходных данных управляющую информацию для процессора 104 кодирования через линии 114a управления или управляющую информацию для выходного интерфейса 106 через линию 114b управления.
Фиг. 3a показывает более подробно процессор 104 кодирования и блок 102 применения оконной функции. Блок 102 применения оконной функции предпочтительно содержит в качестве первого модуля блок 102a применения оконной функции анализа кодирования с предсказанием или LPC и в качестве второго компонента или модуля блок 102b применения оконной функции кодирования с преобразованием (такой как блок применения оконной функции TCX). Как показано стрелкой 300, окно анализа LPC и окно TCX выровнены друг с другом, так что части опережающего просмотра обоих окон идентичны друг другу, что означает, что обе части опережающего просмотра простираются до одного и того же момента времени в будущий кадр. Верхняя ветвь на фиг. 3a от блока 102a применения оконной функции LPC и далее вправо является ветвью кодирования с предсказанием, содержащей LPC анализатор и интерполятор 302, фильтр перцепционного взвешивания или блок 304 взвешивания и вычислитель 306 параметров кодирования с предсказанием, такой как вычислитель параметров ACELP. Аудиоданные 100 обеспечиваются для блока 102a применения оконной функции LPC и блока 304 перцепционного взвешивания. Кроме того, аудиоданные обеспечиваются для блока применения оконной функции TCX, и нижняя ветвь от выхода блока применения оконной функции TCX вправо составляет ветвь кодирования с преобразованием. Эта ветвь кодирования с преобразованием содержит блок 310 частотно-временного преобразования, блок 312 спектрального взвешивания и блок 314 кодирования с обработкой/квантованием. Блок 310 частотно-временного преобразования предпочтительно реализован как вносящее искажения преобразование, такое как MDCT, MDST или любое другое преобразование, которое имеет число входных значений больше, чем число выходных значений. Частотно-временное преобразование имеет, в качестве входных данных, обработанные с помощью оконной функции выходные данные блока 102b применения оконной функции TCX или, говоря в общем случае, кодирования с преобразованием.
Хотя фиг. 3a показывает для ветви кодирования с предсказанием обработку LPC с алгоритмом кодирования ACELP, могут также применяться другие кодеры с предсказанием, такие как CELP или любые другие кодеры во временной области, известные в области техники, хотя алгоритм ACELP предпочтителен вследствие его качества с одной стороны и его эффективности с другой стороны.
Кроме того, для ветви кодирования с преобразованием в блоке 310 частотно-временного преобразования предпочтительна, в частности, обработка MDCT, хотя также могут выполняться любые другие преобразования в спектральной области.
Кроме того, фиг. 3a изображает спектральное взвешивание 312 для преобразования спектральных значений, выводимых блоком 310, в область LPC. Это спектральное взвешивание 312 выполняется с помощью данных взвешивания, полученных из данных анализа LPC, генерируемых блоком 302 в ветви кодирования с предсказанием. Альтернативно, однако, преобразование из временной области в область LPC может также выполняться во временной области. В этом случае фильтр анализа LPC будет размещен перед блоком 102b применения оконной функции TCX, чтобы вычислить остаточные данные предсказания во временной области. Однако было обнаружено, что преобразование из временной области в область LPC предпочтительно выполнять в спектральной области путем спектрального взвешивания в данных, кодированных с преобразованием, используя данные анализа LPC, преобразованные из данных LPC в соответствующие весовые коэффициенты в спектральной области, такой как область MDCT.
Фиг. 3b изображает общий вид для иллюстрации анализа посредством синтеза или определения "с обратной связью" режима кодирования для каждого кадра. С этой целью кодер, изображенный на фиг. 3c, содержит полный кодер кодирования с преобразованием и декодер кодирования с преобразованием, как это показано под номером 104b, и, дополнительно, содержит полный кодер кодирования с предсказанием и соответствующий декодер, обозначенный как 104a на фиг. 3c. Оба блока 104a, 104b принимают в качестве входных данных аудиоданные и выполняют полную операцию кодирования/декодирования. Затем результаты операции кодирования/декодирования для обеих ветвей 104a, 104b кодирования сравниваются с исходным сигналом и определяется показатель качества, чтобы узнать, какой режим кодирования обеспечивает лучшее качество. Показатель качества может быть сегментированным значением SNR или средним сегментированным SNR, таким как, например, описанное в разделе 5.2.3 из 3GPP TS 26.290. Однако также могут применяться любые другие показатели качества, которые обычно основаны на сравнении результата кодирования/декодирования с исходным сигналом.
На основании показателя качества, который предоставляется от каждой ветви 104a, 104b решающему блоку 112, решающий блок решает, должен ли рассматриваемый кадр кодироваться с использованием ACELP или TCX. После принятия решения есть несколько путей выполнения выбора режима кодирования. Один путь состоит в том, что решающий блок 112 управляет соответствующими блоками 104a, 104b кодера/декодера, чтобы просто вывести результат кодирования для текущего кадра на выходной интерфейс 106 так, чтобы гарантировалось, что для некоторого кадра только один результат кодирования передается в выходном кодированном сигнале в 107.
Альтернативно, оба устройства 104a, 104b могут передать свой результат кодирования выходному интерфейсу 106, и оба результата хранятся в выходном интерфейсе 106 до тех пор, пока решающий блок не прикажет выходному интерфейсу через линию 105 вывести или результат блока 104b, или блока 104a.
Фиг. 3b изображает более подробно концепцию фиг. 3c. В частности, блок 104a содержит полный кодер ACELP, полный декодер ACELP и устройство 112a сравнения. Устройство 112a сравнения обеспечивает показатель качества для устройства 112c сравнения. То же самое справедливо для устройства 112b сравнения, которое имеет показатель качества в результате сравнения закодированного с помощью TCX и снова декодированного сигнала с исходным аудиосигналом. Затем оба устройства 112a, 112b сравнения обеспечивают свои показатели качества в конечное устройство 112c сравнения. В зависимости от того, какой показатель качества лучше, устройство сравнения выбирает CELP или TCX. Решение может быть уточнено путем введения дополнительных факторов в процесс принятия решения.
Альтернативно, может выполняться режим без обратной связи для определения режима кодирования для текущего кадра, основанный на анализе сигнала аудиоданных для текущего кадра. В этом случае решающий блок 112 на фиг. 3c будет выполнять анализ сигнала аудиоданных для текущего кадра и будет затем или управлять кодером ACELP или кодером TCX, чтобы фактически закодировать текущий аудиокадр. В этой ситуации кодер не нуждается в полном декодере, и будет достаточен вариант осуществления только этапов кодирования кодером. Классификации сигналов и принятие решений относительно сигналов без обратной связи также описаны, например, в AMR-WB+ (3 GPP TS 26.290).
Фиг. 2a изображает предпочтительный вариант осуществления блока 102 применения оконной функции и, в частности, окон, предоставляемых блоком применения оконной функции.
Предпочтительно, окно анализа кодирования с предсказанием для текущего кадра центрирован в центре четвертого подкадра, и это окно обозначено номером 200. Кроме того, предпочтительно использовать дополнительное окно анализа LPC, то есть окно анализа LPC середины кадра, обозначенное под номером 202 и имеющее центр в центре второго подкадра текущего кадра. Кроме того, окно кодирования с преобразованием, такое как, например, окно 204 MDCT, размещено относительно двух окон 200, 202 анализа LPC, как изображено на фигуре. В частности, часть 206 опережающего просмотра из окна анализа имеет такую же длину по времени, как часть 208 опережающего просмотра окна анализа кодирования с предсказанием. Обе части опережающего просмотра простираются на 10 мс в будущий кадр. Кроме того, предпочтительно, чтобы окно анализа кодирования с преобразованием имело не только перекрывающуюся часть 206, но имело неперекрывающуюся часть 208 между 10 и 20 мс и первую перекрывающуюся часть 210. Перекрывающиеся части 206 и 210 таковы, что добавляющий перекрытие блок в декодере выполняет обработку с добавлением перекрытия в перекрывающейся части, и процедура добавления перекрытия не является необходимой для неперекрывающейся части.
Предпочтительно, первая перекрывающаяся часть 210 начинается в начале кадра, то есть при 0 мс и простирается до центра кадра, то есть 10 мс. Кроме того, неперекрывающаяся часть простирается от конца первой части кадра 210 до конца кадра при 20 мс, так что вторая перекрывающаяся часть 206 полностью совпадает с частью опережающего просмотра. Это имеет преимущества из-за переключения с одного режима на другой режим. С точки зрения эффективности TCX было бы лучше использовать синусоидальное окно с полным перекрытием (перекрытие 20 мс, как в USAC). Это, однако, сделало бы необходимым использование технологии, такой как прямое устранение искажений для переходов между TCX и ACELP. Прямое устранение искажений используется в USAC для устранения искажений, вносимых отсутствием следующих кадров TCX (замененных ACELP). Прямое устранение искажений требует существенного количества битов и, таким образом, является неподходящим для постоянной битовой скорости и, в частности, кодека с низкой битовой скоростью, как предпочтительный вариант воплощения описанного кодека. Поэтому в соответствии с вариантами воплощения изобретения вместо использования FAC (прямого устранения искажений) уменьшается перекрытие окна TCX, и окно смещается в будущее так, чтобы вся перекрывающаяся часть 206 была размещена в будущем кадре. Кроме того, окно, изображенное на фиг. 2a для кодирования с преобразованием, имеет, тем не менее, максимальное перекрытие для получения идеальной реконструкции в текущем кадре, когда следующий кадр является ACELP, без использования прямого устранения искажений. Это максимальное перекрытие предпочтительно установлено равным 10 мс, что является доступным опережающим просмотром во времени, то есть 10 мс, как видно из фиг. 2a.
Хотя фиг. 2a была описана со ссылкой на кодер, в котором окно 204 для кодирования с преобразованием является окном анализа, следует отметить, что окно 204 также представляет собой окно синтеза для декодирования с преобразованием. В предпочтительном варианте воплощения окно анализа идентично окну синтеза, и оба окна симметричны сами по себе. Это означает, что оба окна симметричны относительно (горизонтальной) осевой линии. В других приложениях, однако, могут использоваться несимметричные окна, где окно анализа отличается по форме от окна синтеза.
Фиг. 2b изображает последовательность окон на части прошлого кадра, последующем текущем кадре, будущем кадре, который следует за текущим кадром, и следующим за будущим кадром, который следует после будущего кадра.
Становится ясным, что добавляющая перекрытие часть, обработанная добавляющим перекрытие процессором, изображенная под номером 250, простирается от начала каждого кадра до середины каждого кадра, то есть между 20 и 30 мс для вычисления данных будущего кадра и между 40 и 50 мс для вычисления данных TCX для следующего за будущим кадра или между нулем и 10 мс для вычисления данных для текущего кадра. Однако для вычисления данных во второй половине каждого кадра нет добавленного перекрытия, и поэтому не нужна никакая техника прямого устранения искажений. Это связано с тем, что окно синтеза имеет не перекрывающуюся часть во второй половине каждого кадра.
Как правило, длина окна MDCT равна удвоенной длине кадра. Это имеет место также и в настоящем изобретении. Однако когда, опять же, рассматривается фиг. 2a, становится ясно, что окно анализа/синтеза простирается только от нуля до 30 мс, а полная длина окна равна 40 мс. Эта полная длина имеет большое значение для обеспечения входных данных для соответствующей операции свертки и обратной свертки вычисления MDCT. Чтобы расширить окно до полной длины 40 мс, 5 мс нулевых значений добавлены между -5 и 0 мс, и 5 мс нулевых значений MDCT также добавлены в конце кадра между 30 и 35 мс. Однако эти дополнительные части, имеющие только нули, не играют никакой роли, когда дело доходит до рассмотрения задержки, так как кодеру или декодеру известно, что последние пять мс окна и первые пять мс окна это нули, так что эти данные уже присутствуют без какой-либо задержки.
Фиг. 2c изображает два возможных перехода. Для перехода от TCX к ACELP, однако, не нужны никакие специальные предосторожности, так как когда предполагается относительно фиг. 2a, что будущий кадр является кадром ACELP, то данные, полученные с помощью декодирования TCX последнего кадра для части 206 опережающего просмотра, могут быть просто удалены, так как кадр ACELP начинается сразу в начале будущего кадра и, следовательно, нет промежутка без данных. Данные ACELP являются самосогласованными и, следовательно, декодер, когда имеется переключение с TCX на ACELP, использует данные, вычисленные по TCX для текущего кадра, отбрасывает данные, полученные с помощью обработки TCX для будущего кадра и вместо этого использует данные будущего кадра из ветви ACELP.
Однако когда выполняется переход от ACELP к TCX, то используется специальное окно перехода, как показано на фиг. 2c. Это окно начинается в начале кадра от нуля до 1, имеет неперекрывающуюся часть 220 и имеет перекрывающуюся часть в конце, обозначенную как 222, которая идентична перекрывающейся части 206 прямого окна MDCT.
Это окно дополнительно заполняется нулями между -12,5 мс и нулем в начале окна и между 30 и 35,5 мс в конце, то есть после части 222 опережающего просмотра. Это приводит к увеличенной длине преобразования. Длина равна 50 мс, но длина прямого окна анализа/синтеза равна только 40 мс. Это, однако, не уменьшает эффективность или увеличивает битовую скорость, и это более длинное преобразование необходимо, когда имеет место переключение с ACELP на TCX. Окно перехода, используемое в соответствующем декодере, идентично окну, изображенному на фиг. 2c.
Далее более подробно обсуждается декодер. Фиг. 1b изображает аудиодекодер для декодирования закодированного аудиосигнала. Аудиодекодер содержит декодер 180 параметров предсказания, при этом декодер параметров предсказания сконфигурирован выполнять декодирование данных для кадра кодированного с предсказанием, из закодированного аудиосигнала, принятого в 181 и поступающего в интерфейс 182. Декодер дополнительно содержит декодер 183 параметров преобразования для выполнения декодирования данных для кадра кодированного с преобразованием, аудиосигнала на линии 181. Декодер параметров преобразования сконфигурирован для выполнения, предпочтительно, подверженного искажениям спектрально-временного преобразования и для применения окна синтеза к преобразованным данным для получения данных для текущего кадра и будущего кадра. Окно синтеза имеет первую перекрывающуюся часть, смежную вторую неперекрывающуюся часть и смежную третью перекрывающуюся часть, как показано на фиг. 2a, при этом третья перекрывающаяся часть связана только с дискретными значениями аудиосигнала для будущего кадра, а неперекрывающаяся часть связана только с данными текущего кадра. Кроме того, добавляющий перекрытие блок 184 обеспечен для наложения и добавления дискретных значений окна синтеза, связанных с третьей перекрывающейся частью окна синтеза для текущего кадра и окна синтеза при дискретных значениях, связанных с первой перекрывающейся частью окна синтеза для будущего кадра, для получения первой части дискретных значений аудиосигнала для будущего кадра. Остальные дискретные значения аудиосигнала для будущего кадра являются обработанными с помощью оконной функции синтеза дискретными значениями, связанными со второй неперекрывающейся частью окна синтеза для будущего кадра, полученного без добавления перекрытия, когда текущий кадр и будущий кадр содержат данные, кодированные с преобразованием. Однако когда имеет место переключение с одного кадра на следующий кадр, полезным является объединитель 185, который должен заботиться о хорошем переключении с одного режима кодирования на другой режим кодирования, чтобы в конце получить декодируемые аудиоданные на выходе объединителя 185.
Фиг. 1c изображает более подробно конструкцию декодера 183 параметров преобразования.
-1
Декодер содержит каскад 183a обработки декодера, который сконфигурирован для выполнения всей обработки, необходимой для декодирования закодированных спектральных данных, такой как арифметическое декодирование, или декодирование по алгоритму Хаффмана, или, в общем случае, статистическое декодирование и последующее обратное квантование, заполнение шумом и т.д. для получения декодированных спектральных значений на выходе блока 183. Эти спектральные значения подаются на вход блока 183b спектрального взвешивания. Блок 183b спектрального взвешивания принимает данные спектрального взвешивания от вычислителя 183c взвешенных данных LPC, которому подаются данные LPC, генерируемые блоком анализа предсказания на стороне кодера и принимаемые в декодере через входной интерфейс 182. Затем выполняется обратное спектральное преобразование, которое содержит, в качестве первого этапа, предпочтительно обратное преобразование 183d DCT-IV и последующую обратную свертку и обработку 183e с помощью оконной функции синтеза, прежде чем данные для будущего кадра, например, будут предоставлены добавляющему перекрытие блоку 184. Добавляющий перекрытие блок может выполнять операцию добавления перекрытия, когда доступны данные для следующего будущего кадра. Блоки 183d и 183e вместе составляют спектральное/временное преобразование или, в варианте воплощения на фиг. 1с, предпочтительное обратное преобразование MDCT (MDCT).
В частности, блок 183d принимает данные для кадра в 20 мс и увеличивает объем данных в этапе обратной свертки блока 183e до данных для 40 мс, то есть в два раза большее количество данных по сравнению с тем, что было до этого, и затем к этим 40 мс данных применяется окно синтеза, имеющее продолжительность в 40 мс (когда добавлены нулевые части в начале и конце окна). Затем на выходе блока 183e доступны данные для текущего блока и данные в пределах части опережающего просмотра для будущего блока.
Фиг. 1d изображает соответствующую обработку на стороне кодера. Функции, которые обсуждались в контексте фиг. 1d, реализованы в процессоре 104 кодирования или соответствующих блоках на фиг. 3a. Частотно-временное преобразование 310 на фиг. 3a предпочтительно реализовано как MDCT и содержит этап 310a применения оконной функции, свертки, где операция применения оконной функции в блоке 310a реализована в виде блока 103d применения оконной функции TCX. Следовательно, фактически первой операцией в блоке 310 на фиг. 3a является операция свертки, чтобы вернуть 40 мс входных данных к 20 мс данным кадра. Затем, со свернутыми данными, которые теперь получили вклад искажений, выполняется DCT-IV, как показано в блоке 310d. Блок 302 (анализ LPC) предоставляет данные LPC, полученные с помощью анализа с использованием окна LPC конца кадра, блоку 302b (LPC к MDCT), а блок 302d генерирует весовые коэффициенты для осуществления спектрального взвешивания с помощью блока 312 спектрального взвешивания. Предпочтительно, 16 коэффициентов LPC для одного кадра в 20 мс в режиме кодирования TCX преобразуются в 16 весовых коэффициентов MDCT-области, предпочтительно путем использования oDFT (нечетного дискретного преобразования Фурье). Для других режимов, таких как режимы NB, имеющих частоту дискретизации 8 кГц, число коэффициентов LPC может быть ниже, например, 10. Для других режимов с более высокими частотами дискретизации также может иметься больше чем 16 коэффициентов LPC. Результатом этого oDFT являются 16 весовых значений, и каждое весовое значение связано с полосой спектральных данных, полученных блоком 310b. Спектральное взвешивание происходит путем деления всех спектральных значений MDCT для одной полосы на такое же весовое значение, связанное с этой полосой, для очень эффективного выполнения этой операции спектрального взвешивания в блоке 312. Следовательно, каждая из 16 полос значений MDCT делятся на соответствующий весовой коэффициент, чтобы вывести спектрально взвешенные спектральные значения, которые затем дополнительно обрабатываются блоком 314, как известно в области техники, то есть, например, путем квантования и статистического кодирования.
С другой стороны, на стороне декодера спектральное взвешивание, соответствующее блоку 312 на фиг. 1d, будет умножением, выполняемым блоком 183b применения спектральных весовых коэффициентов, изображенным на фиг. 1с.
Далее обсуждаются фиг. 4a и фиг. 4b, чтобы показать, как данные LPC, генерируемые окном анализа LPC или генерируемые двумя окнами анализа LPC, изображенными на фиг. 2, используются в режиме ACELP или в режиме TCX/MDCT.
После применения окна анализа LPC, выполняется вычисление автокорреляции с помощью обработанных с помощью оконной функции данных LPC. Затем применяется алгоритм Левинсона Дарбина к автокорреляционной функции. Затем 16 коэффициентов LP для каждого анализа LP, то есть 16 коэффициентов для окна середины кадра и 16 коэффициентов для окна конца кадра, преобразуются в значения ISP. Следовательно, этапы от вычисления автокорреляции до преобразования ISP выполняются, например, в блоке 400 на фиг. 4a.
Затем вычисления продолжаются на стороне кодера в виде квантования коэффициентов ISP. Затем коэффициенты ISP опять подвергаются обратному квантованию и преобразуются обратно в область коэффициентов LP. Следовательно, получаются данные LPC или, говоря иначе, 16 коэффициентов LPC, которые немного отличаются от коэффициентов LPC, полученных в блоке 400 (из-за квантования и обратного квантования), и которые затем могут использоваться непосредственно для четвертого подкадра, как показано на этапе 401. Для других подкадров, однако, предпочтительно выполнять несколько интерполяций как, например, описано в разделе 6.8.3 Рек. ITU-T G.718 (06/2008). Данные LPC для третьего подкадра вычисляются путем интерполяции данных LPC конца кадра и середины кадра, представленной блоком 402. Предпочтительной интерполяцией является, деление всех соответствующих данных на два и их сложение, то есть среднее данных LPC конца кадра и середины кадра. Чтобы вычислить данные LPC для второго подкадра, как изображено в блоке 403, дополнительно выполняется интерполяция. В частности, 10% значений данных LPC конца кадра последнего кадра, 80% данных LPC середины кадра для текущего кадра и 10% значений данных LPC для конца кадра текущего кадра используются, чтобы в итоге вычислить данные LPC для второго подкадра.
Наконец, вычисляются данные LPC для первого подкадра, как показано в блоке 404, путем формирования среднего между данными LPC конца кадра последнего кадра и данными LPC середины кадра текущего кадра.
Для выполнения кодирования ACELP оба квантованных набора параметров LPC, то есть от анализа середины кадра и анализа конца кадра, передаются декодеру.
На основании результатов для отдельных подкадров, вычисленных блоками 401-404, выполняются вычисления ACELP, как указано в блоке 405, для получения данных ACELP, которые будут переданы декодеру.
Далее описывается фиг. 4b. Опять же, в блоке 400 вычисляются данные LPC середины кадра и конца кадра. Однако так как имеем режим кодирования TCX, только данные LPC конца кадра передаются декодеру, а данные LPC середины кадра не передаются декодеру. В частности, непосредственно коэффициенты LPC не передаются декодеру, а передаются значения, полученные после преобразования ISP и квантования. Следовательно, является предпочтительным, чтобы, как и данные LPC, квантованные значения ISP, полученные из коэффициентов данных LPC конца кадра, передавались декодеру.
Однако в кодере должны быть выполнены процедуры этапов 406-408 для получения весовых коэффициентов для получения весовых коэффициентов для взвешивания спектральных данных MDCT текущего кадра. С этой целью интерполируются данные LPC конца кадра текущего кадра и данные LPC конца кадра предыдущего кадра. Однако предпочтительно не интерполировать непосредственно коэффициенты данных LPC, полученные непосредственно из анализа LPC. Вместо этого предпочтительно интерполировать квантованные и снова подвергнутые обратному квантованию значения ISP, полученные из соответствующих коэффициентов LPC. Следовательно, данные LPC, используемые в блоке 406, так же как данные LPC, используемые для других вычислений в блоке 401-404, всегда, предпочтительно, являются данными ISP, подвергнутыми квантованию и обратному квантованию, полученными из исходных 16 коэффициентов LPC на каждое окно анализа LPC.
Интерполяция в блоке 406 является предпочтительно чистым усреднением, то есть соответствующие значения складываются и делятся на два. Затем, в блоке 407 спектральные данные MDCT текущего кадра взвешиваются с использованием интерполированных данных LPC и, в блоке 408, выполняется дальнейшая обработка взвешенных спектральных данных, чтобы в конце получить закодированные спектральные данные, которые будут переданы от кодера декодеру. Следовательно, процедуры, выполняемые на этапе 407, соответствуют блоку 312, а процедура, выполняемая в блоке 408 на фиг. 4b соответствует блоку 314 на фиг. 3a. Соответствующие операции фактически выполняются на стороне декодера. Следовательно, те же самые интерполяции необходимы на стороне декодера, чтобы вычислить коэффициенты спектрального взвешивания с одной стороны или вычислить коэффициенты LPC для отдельных подкадров путем интерполяции с другой стороны. Поэтому фиг. 4a и фиг. 4b одинаково применимы к стороне декодера в отношении процедур в блоках 401-404 или 406 на фиг. 4b.
Настоящее изобретение в частности полезно для вариантов осуществления кодека с низкой задержкой. Это означает, что такие кодеки разработаны так, чтобы иметь алгоритмическую или систематическую задержку предпочтительно менее 45 мс и, в некоторых случаях, даже равную или менее 35 мс. Тем не менее, часть опережающего просмотра для анализа LPC и анализа TCX необходима для получения хорошего качества звука. Поэтому необходим хороший компромисс между этими двумя противоречивыми требованиями. Было обнаружено, что хороший компромисс между задержкой с одной стороны и качеством с другой стороны может быть получен посредством переключаемого аудиокодера или декодера, имеющих длительность кадра 20 мс, но также было найдено, что значения для длин кадров между 15 и 30 мс также обеспечивают приемлемые результаты. С другой стороны, было обнаружено, что часть опережающего просмотра в 10 мс приемлема, когда речь идет о проблемах задержки, но значения между 5 мс и 20 мс также полезны в зависимости от соответствующего применения. Кроме того, было обнаружено, что соотношение между частью опережающего просмотра и длиной кадра является полезным, когда оно равно 0,5, но и другие значения между 0,4 и 0,6 также полезны. Кроме того, хотя изобретение было описано с ACELP с одной стороны и MDCT-TCX с другой стороны, другие алгоритмы, работающие во временной области, такие как CELP или любые другие алгоритмы с предсказанием или формой сигнала также полезны. Что касается TCX/MDCT, также могут применяться другие алгоритмы кодирования области преобразования, такие как MDST или любые другие основанные на преобразовании алгоритмы.
То же самое справедливо для конкретного варианта осуществления анализа LPC и вычисления LPC. Предпочтительно полагаться на процедуры, описанные выше, но и другие процедуры для вычисления/интерполяции и анализа также могут использоваться, если эти процедуры полагаются на окно анализа LPC.
Хотя некоторые аспекты были описаны в контексте устройства, очевидно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют этапу способа или свойству этапа способа. Аналогично, аспекты, описанные в контексте этапа способа также, представляют описание соответствующего блока или элемента или свойства соответствующего устройства.
В зависимости от некоторых требований варианта осуществления варианты воплощения изобретения могут быть реализованы в виде аппаратных средств или в виде программного обеспечения. Вариант осуществления может быть выполнен с использованием цифрового носителя данных, например гибкого диска, DVD, CD, ROM, PROM, EPROM, EEPROM или флэш-памяти, имеющего сохраненные в нем считываемые электронным образом управляющие сигналы, которые взаимодействуют (или способны взаимодействовать) с программируемой компьютерной системой так, что выполняется соответствующий способ.
Некоторые варианты воплощения настоящего изобретения содержат невременный носитель данных, имеющий считываемые электронным образом управляющие сигналы, которые могут взаимодействовать с программируемой компьютерной системой так, что выполняется один из способов, описанных здесь.
Как правило, варианты воплощения настоящего изобретения могут быть реализованы в виде компьютерного программного продукта с кодом программы, кода программы, исполняемого для выполнения одного из способов, когда компьютерный программный продукт выполняется на компьютере. Код программы может, например, храниться на машиночитаемом носителе.
Другие варианты воплощения содержат компьютерную программу для выполнения одного из способов, описанных здесь, которая хранится на машиночитаемом носителе.
Поэтому, другими словами, вариантом воплощения способа согласно изобретению является компьютерная программа, имеющая код программы для выполнения одного из способов, описанных здесь, когда компьютерная программа выполняется на компьютере.
Еще одним вариантом воплощения способов согласно изобретению является носитель информации (или цифровой носитель данных, или машиночитаемый носитель), содержащий записанную на нем компьютерную программу для выполнения одного из способов, описанных здесь.
Еще одним вариантом воплощения способа согласно изобретению является поток данных или последовательность сигналов, представляющих собой компьютерную программу для выполнения одного из способов, описанных здесь. Поток данных или последовательность сигналов могут быть, например, сконфигурированы для передачи через соединение для передачи данных, например через Интернет.
Еще один вариант воплощения содержит средство обработки, например компьютер или программируемое логическое устройство, сконфигурированное или адаптированное выполнять один из способов, описанных здесь.
Еще один вариант воплощения содержит компьютер, имеющий установленную на нем компьютерную программу для выполнения одного из способов, описанных здесь.
В некоторых вариантах воплощения может использоваться программируемое логическое устройство (например, программируемая пользователем вентильная матрица) для выполнения некоторых или всех функций способов, описанных здесь. В некоторых вариантах воплощения программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором для выполнения одного из способов, описанных здесь. В общем случае способы предпочтительно выполняются любыми аппаратными средствами.
Описанные выше варианты воплощения просто иллюстрируют принципы настоящего изобретения. Подразумевается, что модификации и вариации компоновок и деталей, описанных здесь, будут очевидны для специалистов области техники. Поэтому предполагается, что изобретение ограничено только объемом прилагаемой формулы изобретения, а не конкретными деталями, представленными здесь в виде описания и пояснения вариантов воплощения.